软件测试的手段
按软件测试的手段分类:
按可见度:黑盒测试、白盒测试
按状态:静态测试、动态测试
按方式:手工测试、自动化测试
黑盒测试:
以用户的视角进行业务测试,软件具体实现内容不可见。
优点:
- 容易实施,不需要关注内部实现
- 更贴近用户的使用角度
缺点:
- 测试覆盖率低,一般只能覆盖代码的40%
- 针对黑盒的自动化测试,复用率较低,维护成本较高
关注点:
- 是否有不正确或遗漏的功能
- 在接口上,输入能否正常接受,输出结果是否正确?
- 数据结构是否错误或外部信息(数据文件)访问正确?
- 性能上是否满足要求
主要设计方法:
白盒测试:
内部逻辑结构可见
主要逻辑单位
优点:
- 迫使测试人员去仔细思考软件的实现,理解原理
- 可以检测代码中的每条分支与路径
- 揭示隐藏代码中的错误
- 对代码的测试比较彻底
缺点:
- 昂贵
- 无法检测代码中遗漏的路径和数据敏感性的错误
- 不能直接验证需求规格的正确性
主要测试方法:
灰盒测试:
介于黑白盒之间,关注输出对于输入的正确性,同时也关注内部表现
静态测试:
无需执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,介以发现编写程序的不足之处,减少错误出现的概率
例如:白盒测试
动态测试:
通过运行被测程序,检查运行结果和预期结果的差异,并分析运行效率、正确性和健壮性等。
例如:黑盒测试
手工测试:
由专门的测试人员从用户视角验证软件是否满足设计要求的行为。更适用于深度的测试和强调主观判断的测试。
例如:众包测试、探索式测试。
自动化测试:
使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
例如:单元测试、接口测试、性能测试。
手工测试vs自动化测试: