5.1.1 测试的独立性
测试任务可以由特定测试角色的人完成,也可以由其他角色的人(例如客户)完成。由于作者和测试人员之间存在认知偏差,一定程度的独立性往往使测试人员能更有效地发现缺陷(见第1.5节)。然而,独立性并不能代替熟悉性,开发人员可以高效地在自己的代码中发现许多缺陷。
测试中的独立性程度包括(从独立程度低到高):
• 没有独立的测试人员;唯一可用的测试形式是开发人员测试自己的代码
• 开发团队或项目团队中的独立开发人员或测试人员;这可能是开发人员测试同事的产品
• 独立的测试小组或组织内的小组,向项目管理或执行管理汇报
• 来自商业组织或用户社区的独立测试人员,或专门从事特定类型测试的人员,如易用性、安全性、性能、监管/合规性或可移植性
• 组织外部的独立测试人员,在现场工作(内包),或在外部工作(外包)
对于大多数的项目类型,通常情况下最好有多个测试级别,其中一些级别由独立测试人员处理。开发人员应参与测试,特别是在较低的级别,以便对自己的工作质量进行控制。
测试独立性的实现方式取决于软件开发生命周期模型的不同。例如:敏捷开发中,测试人员可能是开发团队的一部分。一些使用敏捷方法的组织中,这些测试人员也可能被认为是更大的独立测试团队的一部分。此外,在此类组织中,产品负责人可以在每次迭代结束时执行验收测试以验证用户故事的实现。
测试独立性的潜在优点包括:
• 相对开发人员,独立测试人员由于不同的背景、技术视角和倾向,通常可以识别不同类型的失效
• 独立测试人员可以核实、质疑或反驳利益相关者在系统规范和实现期间作出的假设
测试独立性的潜在缺点包括:
• 与开发团队隔
5.1测试组织
最新推荐文章于 2023-06-12 22:50:11 发布