5.1测试组织

本文探讨了测试的独立性及其对项目的影响,包括独立性的好处和缺点。测试独立性可以从低到高分为五个级别,而测试人员的职责则因项目、产品背景和组织而异。测试经理负责测试过程的整体成功,包括制定策略、规划测试活动和管理测试团队。测试人员则涉及测试依据的评审、测试用例设计和执行等任务。在敏捷开发中,某些任务可能由开发团队内的测试人员处理。
摘要由CSDN通过智能技术生成

5.1.1 测试的独立性
测试任务可以由特定测试角色的人完成,也可以由其他角色的人(例如客户)完成。由于作者和测试人员之间存在认知偏差,一定程度的独立性往往使测试人员能更有效地发现缺陷(见第1.5节)。然而,独立性并不能代替熟悉性,开发人员可以高效地在自己的代码中发现许多缺陷。
测试中的独立性程度包括(从独立程度低到高):
• 没有独立的测试人员;唯一可用的测试形式是开发人员测试自己的代码
• 开发团队或项目团队中的独立开发人员或测试人员;这可能是开发人员测试同事的产品
• 独立的测试小组或组织内的小组,向项目管理或执行管理汇报
• 来自商业组织或用户社区的独立测试人员,或专门从事特定类型测试的人员,如易用性、安全性、性能、监管/合规性或可移植性
• 组织外部的独立测试人员,在现场工作(内包),或在外部工作(外包)
对于大多数的项目类型,通常情况下最好有多个测试级别,其中一些级别由独立测试人员处理。开发人员应参与测试,特别是在较低的级别,以便对自己的工作质量进行控制。
测试独立性的实现方式取决于软件开发生命周期模型的不同。例如:敏捷开发中,测试人员可能是开发团队的一部分。一些使用敏捷方法的组织中,这些测试人员也可能被认为是更大的独立测试团队的一部分。此外,在此类组织中,产品负责人可以在每次迭代结束时执行验收测试以验证用户故事的实现。
测试独立性的潜在优点包括:
• 相对开发人员,独立测试人员由于不同的背景、技术视角和倾向,通常可以识别不同类型的失效
• 独立测试人员可以核实、质疑或反驳利益相关者在系统规范和实现期间作出的假设
测试独立性的潜在缺点包括:
• 与开发团队隔离从而导致缺乏合作,在向开发团队提供反馈方面出现延误,或与开发团队形成敌对关系
• 开发人员可能会失去对质量的责任感
• 独立测试人员常被看作是延迟发布的瓶颈或受到指责
• 独立测试人员可能缺乏一些重要信息(例如:关于测试对象的信息)
许多组织能够成功地实现测试独立性的优点,同时避免这些缺点。
5.1.2 测试经理和测试人员的任务
本大纲包含两个测试角色:测试经理和测试人员。这两个角色所执行的活动和任务取决于项目和产品背景、该角色的技能以及组织。
测试经理的任务是全面负责测试过程和测试活动的成功。测试管理角色可以由专业的测试经理,或由项目经理、开发经理或质量保证经理担当。在较大的项目或组织中,多个测试团队可以向测试经理、测试教练或测试协调人报告,每个团队由测试组长或主要测试人员领导。
测试经理的典型任务包括:
• 为本组织制定或评审测试方针和测试策略
• 通过考虑上下文和理解测试目标和风险来规划测试活动。这可能包括选择测试方法、估算测试时间、工作量和成本、获取资源、定义测试级别和测试周期以及规划缺陷管理
• 编写和更新测试计划
• 与项目经理、产品所有人和其他人协调测试计划
• 与其他项目活动分享测试视角,例如集成规划
• 开始分析、设计、实现和执行测试,监视测试进度和结果,并检查出口准则(或已完成的定义)的状态
• 根据收集的信息准备和提交测试进度报告和测试总结报告
• 根据测试结果和进度情况调整规划(有时记录在测试进度报告和/或记录在测试总结报告中的其他已经完成的测试),并为测试控制采取合适的行动
• 支持建立缺陷管理系统和针对测试件的适当的配置管理
• 采用合适的度量测量测试进度和评估测试和产品的质量
• 支持工具的选择和实施以支持测试过程,包括工具选择(和可能购买和/或支持)所需的预算,为试点项目分配时间和工作量,并为工具的使用提供持续的支持
• 确定测试环境的实施
• 在组织内促进和激励测试人员、测试团队和测试专业化
• 发展测试人员的技能和职业(例如:通过培训计划、绩效评估、辅导等)
测试经理角色的执行方式取决于软件开发生命周期的不同。例如,例如:敏捷开发中,上面提到的一些任务是由敏捷团队处理的,特别是那些与团队内进行的日常测试有关的任务,通常是由团队内的测试人员处理的。一些跨多个团队或整个组织的任务,或与人事管理有关的任务,可能由开发团队以外的测试经理完成,他们有时被称为测试教练。请参见Black 2009,以了解更多关于测试过程管理的信息。
典型的测试人员任务包括:
• 评审测试计划并提供支持
• 分析、评审和评估需求、用户故事和验收准则、规格说明和可测试性模型(即测试依据)
• 识别和文档化测试条件,并获取测试用例、测试条件和测试依据之间的可追溯性
• 设计、建立和验证测试环境,并经常与系统管理员和网络管理员协调
• 设计和实现测试用例和测试规程
• 准备和获取测试数据
• 制定详细的测试执行时间进度表
• 执行测试,评估结果,并文档化与预期结果之间的偏差
• 使用适当的工具促进测试过程
• 根据需要实现测试自动化(可能得到开发人员或测试自动化专家的支持)
• 评估非功能性特性,如性能效率、可靠性、易用性、安全性、兼容性和可移植性
• 评审其他人员开发的测试
从事测试分析、测试设计、特定测试类型或测试自动化工作的人可能是这些角色的专家。根据产品风险与项目风险,以及所选择的软件开发生命周期模型,不同的人会在不同的测试级别上承担测试人员的角色。例如,例如:在组件测试级别和组件集成测试级别,测试人员的角色通常由开发人员完成。在验收测试级别,测试人员的角色通常由业务分析师、专题专家和用户完成。在系统测试级别和系统集成测试级别上,测试人员的角色通常由独立的测试团队完成。在运行验收测试级别,测试人员的角色通常由运行和/或系统管理人员完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值