软件构造学习心得(1)

软件构造的多维度视图:

软件构造学习心得(1)
按动态性划分:Moment View和Period View
按阶段划分:Build-time view和Run-time View
按构造对象划分:Code-level view 和Component-level view

举例介绍
先看biuld-time view 中code-level view对应的部分
Moment view包含source code,即被创造后就存在的源代码,period view包含code churn,代码改动,是一个阶段、过程。
再看,component-level view的对应部分
Moment View包含Package,File,Static Linking,Library,Testcase等创造后就存在的部件,Period View包含的是配置项,版本这些会动态改变的。

正确性:最重要的质量指标

软件测试部分:
学习目标
认可“测试”的价值,搞清楚“测试优先”的哲理
学会用等价划分和边界值分析方法为模块设计测试用例
可用工具度量一组测试用例对代码的“覆盖度”

确保程序正确性/健壮性的最普遍的手段:测试
1 设计测试用例
2 用JUnit写测试程序
3 自动化测试过程

即使是最好的测试,也无法达到100%的无错误
静态测试 vs 动态测试:靠眼睛看 vs 撸起袖子使劲干

白盒测试:对程序内部代码结构的测试。白盒测试要考虑内部实现细节
黑盒测试:对程序外部表现出来的行为的测试。黑盒测试完全从函数spec导出测试用例,不考虑函数内部实现

测试优先的编程:
先写spec
再写符合spec的测试用例
写代码、执行测试、有问题再改、再执行测试用例,直到通过它

针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试

等价类划分:
基于等价类划分的测试:将被测函数的输入域划分为等价类,从等价类中导出测试用例。
针对每个输入数据需要满足的约束条件,划分等价类
每个等价类代表着对输入约束加以满足/违反的有效
/无效数据的集合
等价类具有对称、传递、自反的性质

边界值分析方法是对等价类划分方法的补充,大量的错误发生在输入域的“边界”而非中央

笛卡尔积:全覆盖
测试完备,但用例数量多,测试代价高

覆盖每个取值:最少1次即可
测试用例少,代价低,但测试覆盖度未必高。

代码覆盖度:已有的测试用例有多大程度覆盖了被测程序。代码覆盖度越低,测试越不充分,但要做到很高的代码覆盖度,需要更多的测试用例,测试代价高

测试效果:路径覆盖>分支覆盖>语句覆盖
测试难度:路径覆盖>分支覆盖>语句覆盖

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月1日
下一篇 2021年6月1日

相关推荐