1.确保程序正确性和健壮性的最普遍手段:测试
(1)设计测试用例
(2)用JUnit写测试用例
(3)自动化测试过程
2.静态测试VS动态测试:靠眼睛看VS撸起袖子加油干
3.测试:发现是否存在错误 调试:识别错误根源,消除错误
4.测试用例:={输入+执行条件+期望结果}
5.好的测试用例的特点:最可能发现错误,不重复不冗余,最有效,既不简单也不复杂
6.测试优先的编程,有助于更好的理解规约
7.Unit Testing单元测试
针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试
接口:测试输入输出
数据的一致性,所有语句均被执行到
8.Junit
在每个测试方法前面使用@Test标注指明
assertEquals(2,math.max(1,2));
参数的顺序:expected在前,actual在后
测试方法之间互不影响
9.等价类划分
基于等价类划分的测试:将被测函数的输入域划分为等价类,从等价类中导出测试用例
针对每个输入数据需要满足的约束条件,划分等价类
每个等价类代表着对输入约束加以满足或违反的有效或无效数据的集合
基于的假设:相似的输入,将会展示相似的行为,故可以从每个等价类中选一个代表作为测试用例即可,从而可以降低测试用例的数量
10.边界值分析是对等价类划分的补充
11.黑盒测试:用于检查代码功能,不关心内部实现细节
白盒测试:要考虑内部实现细节
12.代码覆盖度:已有的测试用例有多大程度覆盖了被测程序,通常用百分比衡量覆盖度
分为函数覆盖,语句覆盖,分支覆盖,条件覆盖,路径覆盖。
测试效果:路径>分支>语句
测试难度:路径>分支>语句
13.测试策略:根据什么来选择测试用例。
目的:其他人可以理解我的测试为什么这样写。