软件测试理论(二)
测试覆盖率
覆盖率是用来度量测试完整性的一个手段,同时也是测试技术有效性的一个度量
特点:1.通过覆盖率数据,可以检测我们的测试是否充分
2.分析出测试的弱点在哪方面
3.知道我们设计能够增加覆盖率的测试用例,有效提高测试质量,但是测试用例设计不能一昧追求覆盖率,因为测试成本会随着测试率增加而增加
软件测试的原则
- 所有的测试都应追溯到用户需求
- 测试工作应该尽早启动
- pareto法则应用于软件测试(28效率法则,在分析,设计,实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找到其余缺陷的中的80%,最后4%的缺陷可能只有在用户的大范围,长时间使用后才能暴露出来)
- 穷尽测试是不可能,测试始终需要停止
- 杀虫剂怪事(测试人员必须不断编写不同的测试程序,对程序的不同部分进行测试,已找出更多缺陷)
- 前进两步,后退一步(测试中的一个基本问题是----缺陷修复会以20%-50%的几率引入新的缺陷,每次修复后,必须重新运行先前所有的测试用例,从而确保系统不会以隐蔽的方式被破坏)
- 三心二意(【细心耐心信心】,团队沟通意识,保持怀疑的态度且有缺陷预防意识)
需求分析
1.测试人员参与需求分析,对需求了解很深刻,减少与开发人员的交互,节省时间
2.早期确定测试用例的编写思路,为测试打好了基础
3.可以获取到一些测试数据,业务场景,为测试用例设计提供帮助
4.可以发现需求不合理的地方(如违反正常操作准则的),降低测试成本
需求测试的作用
1.测试需求的分析用来确认整个测试工作,明确测试对象以及测试工作的范围和作用,并作为测试覆盖的基础
2.被确定的测试需求项必须是可以核实的,测试需求必须有一个可观察,可评测的结果
3.如果无法核实的需求就不是测试需求
4.测试需求的优先级,哪些更重要
5.确保风险承担者尽早地对项目达成共识
6.并对将来的产品有个清晰的认识
测试需求是制定测试计划的基本依据
测试需求是设计测试用例的指导
确定了要测什么,测哪些方面才能有效设计用例
需求验证过程
1.审查需求文档
对需求文档及相关模型进行仔细检查
在需求开发期间所做的非正式评审也是有所裨益的
2.以需求为依据编写测试用例
编写用户手册(简洁版)
(在需求开发期间起草一份简略,浅显易懂的用户手册,用以描述出所有对用户可见的功能,并用他作为需求规格说明的参考并辅助需求分析)
3.确定合格的标准
让用户描述什么样的产品才算满足他们的要求和适合他们的使用
将确认合格的测试建立在使用情景描述或使用实例的基础之上