本文着重介绍如何确定测试目的,划定测试范围,制订测试策略,组件测试团队,准备测试工具和环境,制订测试计划。
凡事预则立,不预则废。个人事项,团队协作都离不开计划。外出游玩有出行计划,产品立项有商业计划,下图中是笔者在某博物馆看到的上个世纪老电影的计划表,是不是很像软件项目里分角色的开发计划。同样地,做软件测试,尤其在涉及到团队协作时,需要制定测试计划。
团队开展测试活动之初,制定相应的测试计划,以指导整个测试周期中测试人员的测试活动。测试计划描述了测试目的、测试对象、测试范围、测试策略、测试活动、测试方法、测试资源和进度等,确定测试项、被测特性、测试任务、谁执行任务、各种可能的风险。测试计划可以有效预防计划的风险,保障计划的顺利实施。
为什么要制定测试计划
• 确保测试活动围绕测试目的开展工作,服务于明确的测试目标
• 确定测试对象的被测特性和需求清单,框定测试范围
• 选取适合于团队技术能力和工具组合的测试策略和方法
• 尽早识别测试活动开展中可能面临的风险因素,及时解决
• 合理预估测试工作量和人员、资源需求,编制测试项目计划
• 帮助测试人员分解测试活动和任务,编排个人工作计划
• 指导测试执行活动,及时纠正和补救执行偏差
• 作为相关文档,与利益干系人汇报沟通
什么时间做测试计划
测试活动包含测试计划、测试设计、测试执行等。一般而言,测试计划排在首位,在测试周期的早期阶段开展。实际上根据不同的项目使用的开发模式、团队组织形式等,测试计划可能在多个时间节点中开展,例如:
• 某企业面向客户的移动APP产品,在第一个版本发布前,测试部门在接收到产品的测试申请后,接收测试需求做上线前系统测试计划。
• 某内部软件项目,产品立项完成需求确认后,架构师已经设计出产品架构方案和设计方案,产品未进入实质开发阶段,开发组织制定开发计划,测试组长制定测试计划。
• 某对外商用产品,例行提交做专项安全测试,安全测试部门根据历史安全测试计划和测试报告,评估新增产品特性变更,制定新版本的安全专项测试计划。
• 某软件测试团队有明确的功能测试、性能测试、安全测试等分工,测试团队主管制定主测试计划后,各类型测试专家制定类型的测试计划。
整体来讲,建议尽早开始测试计划相关工作,因为测试计划制定时间越早,越容易在早期阶段指导、规范产品的质量活动,提高产品的可测试性,测试人员从攻击者的视角指导产品架构和设计中的质量要素,符合测试左移的思想。
但越在产品的早期阶段,测试计划的粒度越粗,缺少细节可执行层面的测试用例、可供使用的测试环境等,需要随着项目的推进不断细化。测试计划不是一成不变的,随着测试项目的开展,测试计划逐步详细,包含越来越多的信息。测试计划的细化和完善过程中需要注意审视初始的测试目的、测试范围和测试设计和策略等。
那么谁来制定测试计划?
• 测试项目、测试团队负责人
• 安全、性能、可靠性等专项测试负责人
• 经验丰富的测试工程师、测试架构师
测试计划需要包含哪些内容
ISO、IEEE等有关于测试文档的相关标准,在项目实践中可以选择在测试计划中包含哪些内容,内容多少与项目、团队规模相关,小团队测试可以精简测试计划。
• 测试目的
概述为什么要做这个测试,需要实现什么样的测试目标。测试目的是测试计划的源头,测试需要聚焦产品的业务价值。如果是产品整体测试计划,需要结合产品的业务属性,将质量的功能、安全、性能、易用性、兼容性、扩展性等维度融入测试目的,例如金融类产品对安全性要求很高。
• 测试范围
详述被测系统(测试对象)的名称、版本、特性、需求、环境、测试项,明确需要测试什么,不测试什么。
• 测试策略
明确测试类型、测试场景、测试方法,策略性说明如何测试。
• 测试方案
详述测试使用的方案,例如集成步骤和顺序、测试步骤和顺序、测试方法、测试工具、测试用例设计和执行方法等。
• 测试环境
描述测试所需要的硬件、软件、测试工具的名称、规格、数量、版本、账号等信息,以及测试环境的准备、预定、还原、释放等管理策略。
• 测试人员
详述测试人员数目、分工、职责,如测试架构师、测试开发工程师、性能测试工程师、测试环境管理人员等。
• 测试进度计划
说明测试的计划开始和结束时间,测试总体进度安排,关键的阶段性进度检查点。测试进度计划结合开发计划,需要综合考虑测试方案、环境、人员等资源和任务的约束依赖关系。
• 测试准入条件
明确接纳启动测试的准入条件,如产品规格说明书中的功能已经实现、基本流程和准入测试用例通过等,以避免由于测试基础条件不具备影响测试计划实施。
• 测试发布标准和交付件
明确测试完成需要满足的条件、测试通过/不通过的标准、测试完成后需要产出的交付件,例如测试报告,说明测试报告需要包含的内容。
• 风险
分析当前项目运作中可能存在的风险,以及应对风险的规避、解决等措施。风险举例:人力到位风险、人员技能和领域知识风险、开发转测试时间风险。
最后,测试计划评审
测试计划编写完成后,邀请关键干系人,如项目经理,测试经理,产品经理,架构师,运维经理等对测试计划的正确性、全面性以及可行性等进行评审。