白盒测试
关注被测单元的内部结构和程序逻辑
白盒测试方法
1、语句覆盖
每条语句至少执行一次
2、判定覆盖
每个判定的每个分支至少执行一次
3、条件覆盖
每个判定的每个条件应取到各种可能的值
4、判定-条件覆盖
同时满足判定覆盖条件覆盖
5、条件-组合覆盖
判断条件中的所有可能至少出现一次,并且每个判断本身的判断结果也至少出现一次
6、路径覆盖
覆盖程序中的所有可能的执行路径
7、基本路径覆盖
- 程序的流程控制图
- 计算程序环路复杂度 V(G) = 边界数目 - 节点数目 + 2
- 确定基本路径
黑盒测试
完全不考虑程序内部结构和内部特性,直接对软件进行测试
黑盒测试方法
1、等价类划分法
将要输入的数据域,分为几部分,然后从每个部分选取少量代表性数据进行测试,等价类分为有效等价类和无效等价类
2、边界值分析法
取输入条件边界上的值,进行测试
3、判定表分析法
分析和表达多种输入条件下系统执行不同动作的工具
4、因果图法
描述系统输入输出之间的因果关系
5、正交实验法
从大量的试验点中挑选出适量的、有代表性的点,从而安排实验
6、功能图法
使用功能图形式化地表示程序的功能说明
7、场景法
运用场景来对系统的功能点或业务流程的描述
8、错误推测法
根据自己的工作经验和直觉推测出程序可能出现的错误,从而进行针对测试
静态测试法和动态测试法
1、静态测试
程序不运行,人工进行代码检查、静态结构分析、代码质量度量、(需求规格说明书的复审)文档测试
2、动态测试
执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等
回归测试
对修复的缺陷进行重新测试,对软件的新版本或新功能进行测试
α测试:用户在开发者的场所来进行的,在一个受控的环境中进行
β测试:软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者,开发者对系统进行最后的修改,并开始准备发布最终的软件
自动化测试和手工测试的优缺点
手工测试缺点:
- 大量重复的手工测试,代价昂贵、容易出错
- 过于依赖于测试人员的能力
手工测试优点:
- 测试人员具有经验和对错误的猜测能力
- 测试人员具有对软件的审美能力
- 测试人员具有是非判断和逻辑推理能力
自动化测试的缺点:
- 不能取代手工测试
- 手工测试比自动测试发现的缺陷更多
- 测试自动化不能提高有效性
自动化测试的优点:
- 可以执行一些手工测试困难或不可能进行的测试,如,大量用户的测试
- 增加软件信任度
- 更方便的对程序进行回归测试
- 短时间可以运行更多更繁琐的测试
- 更好地利用资源
|