根据测试可见度:黑盒测试,白盒测试
根据状态:静态测试,动态测试
根据执行方式:手工测试,自动化测试
简介:
黑盒测试:在测试中将被测系统或软件看成一个不能打开的盒子,在完全不考虑程序内部结构,通过相关暴露出来的接口来对程序进行测试。黑盒测试只检查程序的功能是否按照需求能够正常的使用。程序能够适当的接受输入数据,并产生正确的输出。着重与外部结果,不考虑内部逻辑。一般认为针对软件的界面或者是可见的功能来进行测试。黑盒测试更多的是从用户的视角,通过不同的数据和事件来驱动系统,通过结果来判断。
黑盒测试优点
- 容易实施,不需要关注内部的实现
- 更贴近用户的使用角度
黑盒测试缺点:
- 测试覆盖率较低,一般只能覆盖代码量的不到40%
- 针对黑盒的自动化测试,测试用例复用率较低,维护成本高
黑盒测试关注点:
- 是否有不正确或者遗漏的功能?
- 在接口上,输入是否能正确介绍?能否正确输出结果
- 是否有数据结构错误或外部信息(例如数据文件)访问错误?
- 性能是否能够满足要求
(系统测试阶段更多使用黑盒测试)
黑盒测试主要设计方法:
- 等价类划分法
- 边界值分析法
- 错误推测法
- 因果图法
- 正交试验分析法
- 状态迁移图法
- 流程分析法
白盒测试:又称结构化测试或透明盒测试。测试人员对内部逻辑结构很了解。是针对程序的逻辑结构来设计测试用例,用逻辑的覆盖率来衡量测试的完整性。
白盒测试优点:
- 迫使测试人员去仔细思考软件的实现,理解原理。
- 可以检测代码中每条分支和路径。
- 揭示隐藏在代码中的错误。
- 对代码的测试比较彻底
白盒测试的缺点:
- 成本昂贵, 因为覆盖率高
- 无法检测代码中遗漏的路径和数据敏感性错误
- 不能直接验证需求的正确性
白盒测试的主要测试方法:
- 代码检测法
- 静态结构分析法
- 静态质量度量法
- 逻辑覆盖法
- 基本路径测试法
灰盒测试: 介于黑白盒测试之间,关注输出对于输入的正确性,同时也关注内部表现
静态测试:是指无需执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写程序的不足之处,减少错误出现的概率
动态测试:通过运行被测程序,检查运行结果和预期结果的差异,并分析运行效率、正确性和健壮性等
手工测试:由专门的测试人员从用户的视角来验证软件是否满足设计要求的行为。更适用针对深度测试和强调主观判断的测试
众包测试和探索式测试都是手动测试
自动化测试:使用单独的测试工具软件控制测试的自动化执行及对预期和结果进行自动检查。
单元测试,接口测试,性能测试由自动化完成。
手工测试与自动化测试对比:
手工测试优点
- 易发现缺陷
- 容易实施
- 创造性、灵活性
手工测试缺点
- 覆盖量化难
- 重复测试效率低
- 不一致性、可靠性低
- 人力资源依赖
自动化测试优点:
- 高效率、速度快
- 高复用性
- 覆盖率容易度量
- 准确、可靠
- 不知疲劳
自动化测试缺点:
- 机械、发现缺陷率低
- 一次性投入较大