软件测试
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足设计要求进行评估的过程
测试分类
- 单元测试(unit testing),是指对软件中最小可测试单元进行检查和验证。通常是一个函数或者方法
- 单元测试是已知代码结构进行的测试,属于白盒测试。
- 集成测试是将多个单元相互作用,形成一个整体,对整体协调性进行测试。
- 一般从构成系统的最小单元开始,持续推进到单元之间的接口直到集成为一个完成的软件系统为止。
- 白盒测试(white-box testing),全面了解程序内部的逻辑结构,对所有的逻辑路径都进行测试,一般由程序员完成
- 黑盒测试(black-box testing),有名功能测试,不考虑程序内部结构和内部特性,检查程序功能是否按照需求规格说明书的规定正常使用,一般由独立的使用者完成。
- 自动测试,用测试程序批量,反复的 测试功能程序,并可以自动检查程序输出结果是否满足要求。
- 手动测试,手动执行程序,手动输入需要的参数,手动检查程序的输出是否满足要求。
- 回归测试,修改旧代码后,重新进行测试以确认修改没有引用新的错误或导致其他代码产生错误。
测试策略
基于main函数的策略
优点:简单
缺点:
- 无法自动判断被测对象的行为是否符合
- main方法添加大量代码,这些代码在发布时需要手动删除
- 分散程序员开发时的关注点
基于自动化测试框架的策略
初始化–输入测试数据被执行代码–获取系统实际结果–比较结果是否一致—输出测试结论
JUnit 一种JAVA语言的单元测试框架
在主程序中写入实际代码,下面是判断输出的年份是否为闰年
package dateUtil;
public class DateUtil {
public boolean isLeapYear(int year) {
boolean result = false;
if (year > 0 && year < 10000) {
return true;
}
if (year % 4 == 0