为了在有限的时间内、人和环境下发现软件中潜藏的各种缺陷,仅仅靠投入更多的人力、物力以及其他各种资源不是做好软件测试的最好方法。为了更好地进行软件测试,我们对测试人员、测试环境和生产环境进行配置管理。据实际调査,软件缺少配置管理将会带来严重的后果,在软件测试时遇到很多问题,如文件频繁流动和测试环境变动较大等问趣 果没有设计配置管理流程和使用必要的配置管理工具,那么可能就会造成不可估量的损失,甚至导致整个软件项目的瘫痪。既然软件测试配置管理如此重要,那么该如何实现软件测试配置管理的目标?
实现软件测试配置管理目标的步骤如下。
(1)在测试过程中控制和审计测试活动的变更。
(2)在测试过程中根据测试项目的里程碑,同步建立相应的基线。
(3)在测试过程中记录,并且跟踪测试活动过程中的变更请求。
(4)在测试过程中针对相应的软件测试活动或者产品,测试人员应将他们标识为被测试和控制,并且是可用的。
以上目标是在设定的限制条件下,尽可能发现和排除软件缺陷。软件测试配置管理是软件配置管理的子集,作用于测试的各个阶段。其管理对象为测试阶段输出的文档类、测试工具及环境、测试过程记录和缺陷。
对整个测试阶段实施配置管理时,需测试人员按照测试流程执行,具体执行的承诺如下所示.。
(1)每个测试项目的配制管理责任明确。
(2)配置管理贯穿项目的整个测试活动。
(3)配置管理应用于所有的测试配置项,包括支持工具。
(4)建立缺陷库和受控库。
(5)定期评审基线库内容和测试配置项活动。
根据上述描述的配置管理的目标和测试流程的执行承诺,需制订软件测试控制程序来控制整个测试阶段,规范测试配置管理。软件测试控制程序规范了测试和研发的交互过程,每个阶段要求输出相关的测试资料,如测试计划、测试方案、测试用例和测试报告等。测试配置管理主要指对各种配置库的架构和人员职责等规定相关内容的规范,如缺陷库和受控库架构的制定、缺陷生命流程规定等。
1、软件配置管理过程中主要涉及的角色和分工
■项目经理(Project Manager, PM)
项目经理是整个软件研发活动的负责人,他根据软件配置控制委员会的建议批准配置管理的各项活动并控制它们的进程。其具体职责为以下几项。
•制订和修改项目的组织结构和配置管理策略。
•批准和发布配置管理计划。
•决定项目起始基线和开发阶段。
•接受并审阅配置控制委员会的报告。
■配置控制委员会(Configuration Control Board, CCB)
负责指导和控制配置管理的各项具体活动的进行,为项目经理的决策提供建议。其具体职责为以下几项。
•定制开发子系统。
•定制访问控制。
•制订常用策略。
•建立和更改基线的设置,审核变更申请。
•根据配置管理员的报告决定相应的对策。
■配置管理员(Configuration Management Officer, CMO)
根据配置管理计划执行各项管理任务,定期向CCB提交报告,并列席CCB的例会。其具体职责为以下几项。
•软件配置管理工具的日常管理与维护。
•提交配置管理计划。
•各配罝项的管理与维护。
•执行版本控制和变更控制方案。
•完成配置审计并提交报告。
•对开发人员进行相关的培训。
•识别软件开发过程中存在的问题并拟定解决方案。
■系统集成员(System Integration Officer,SIO)
系统集成员负责生成和管理项目的内部和外部发布版本,其具体职责为以下几项。
•集成修改。
•构建系统。
•完成对版本的日常维护。
•建立外部发布版本。
■开发人员(Developer, DEV)
开发人员的职责就是根据组织确定的软件配置管理计划和相关规定,按照软件配置管理 工具的使用模型来完成开发任务。
2.软件测试配置管理过程概述
一个软件从出现一个构思之日起,直到最后决定停止使用之时止,包括可行性与计划研宄、需求分析、设计、编码、测试、运行与维护等阶段,我们称之为软件生命周期。我们把 软件开发和维护及相关产品(如项目计划、文档、代码和手册等)的一套行为、方法、实践 及变换过程称为软件过程,软件过程是软件生存周期的框架。
软件测试和软件开发一样,都有一个过程,测试过程的管理显得尤为重要,过程管理已成为测试成功的重要保证。测试过程同样需要规定测试活动的流程和方法,为软件测试管理 工作提供指导作用。
测试过程是软件过程的组成部分,明确自己的软件过程,才能明确自己的测试过程。所以在测试过程中应遵循以下理念。
(1)尽早测试。
测试人员早期参与软件项目,及时开展测试的准备工作,包括制订测试计划、制订测试 方案以及编写测试用例,尽早地开展测试执行工作。
(2)全面测试。
①对产品进行全面的测试,包括需求、设计文档、代码和用户文档等。
②软件开发及测试人员(有时包括用户)全面地参与到测试工作中。
(3)全过程测试。
①测试人员要充分关注开发过程,对开发过程的各种变化及时做出响应。
②测试人员要对测试的全过程进行全程的跟踪。
(4)独立的与迭代的测试。
在遵循尽早测试、全面测试和全过程测试理念的同时,应当将测试过程从开发过程中独立出来,作为一个独立的过程进行管理。时刻把握独立的与迭代的测试理念,减少因开发模型的繁杂给测试管理工作带来的不便。对于软件过程中不同阶段的产品和不同的测试类型, 只要测试准备工作就绪,就可以及时开展测试工作,把握产品质量。
●作者李龙,山东织雀信息科技有限公司负责人,织雀教育首席讲师,中国民主同盟盟员,北京人文大学云测学院院长、高工,国内软件测试“川模型”的提出者,全国大学生软件测试大赛评审委员会专家,致力于软件测试人才培养
閱讀更多 說說軟件測試那些事兒 的文章