软件测试是提高软件质量的重要手段,但不唯一。
测试无法保证100%覆盖,所以无法保证程序100%正确。因此测试的目的是尽可能地发现错误。
单元测试:一个模块一个模块测试
集成测试:把单元凑一起测试
系统测试:在用户端进行测试,类似游戏里的一测二测
回归测试:防止bug越修越多,
静态测试:不运行程序进行测试,就看
动态测试:运行程序测试
白盒测试:对程序内部代码结构进行测试
黑盒测试:对程序外部表现出来的行为进行测试,看不到程序内部
单元测试工具:junit
junit
assertEquals,assertTrut,assertFalse判断结果是否和期望一样
@Test告诉编译器接下来的代码是测试
测试时无法将所有可能都测一遍,所以一般是把程序划为等价类,然后测试每个等价类(考点)
等价类划分标准:首先是有效等价类与无效等价类
1.有效等价类:输入合法的值(检测正确性)
2.无效等价类:不合法输入(检测健壮性)
划分例子(根据输入划分):n为正奇数
正数:>0,<0
奇数:偶数,奇数
整数:整数,非整数(非奇非偶)