软件测试按照测试技术分类可以分为:黑盒测试、白盒测试、灰盒测试。
灰盒测试——gray-box testing
- 介于黑白盒之间的一种测试方式,在白盒测试交叉使用黑盒测试,在黑盒测试交叉使用白盒测试。
- 【对象】系统功能模块接口
- 【优点】介入时间早于黑盒测试
- 【要求】需要测试人员有代码能力
- 【特点】通常用于网页测试
白盒测试——while-box testing
- 也叫结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试,它根据程序的控制结构设计测试用例。
- 研究软件源代码和程序结构,检查程序内部的逻辑结构,对所有的逻辑路径进行测试。
- 【原则】1)保证一个模块中的所有独立路径至少被测试一次;2)所有逻辑值均需要测试真(TRUE)和假(FALSE)两种情况;3)检查程序的内部数据结构,保证其结构的有效性;4)在上下边界及可操作范围内运行所有循环。
- 【对象】代码、函数
- 【优点】介入时间早,检测内部代码的实现,更容易检测代码内部的逻辑
- 【缺点】无法坚持代码中遗漏的路径和数据敏感性的错误;不能直接验证需求的正确性
- 【要求】需要测试员有代码能力
- 【特点】通常用于单元测试,可视化
- 【测试方法】静态测试、动态测试
- 【逻辑覆盖】语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
- 六种覆盖标准发现错误的能力呈由弱到强的变化ÿ