3.1 软件测试过程模型
3.1.1 软件测试过程
ISO 9000将过程定义为:一组将输入转化为输出的相互关联或相互作用的活动。过程的任务是基于确定的人、机、料、法、环,将输入转化为输出。过程管理是指以结果为导向,使用一组实践方法、技术和工具,对过程绩效进行持续监视测量,通过有效反馈,持续改进过程,获得持续稳定的过程增值及过程能力提升。增值是过程的目标,改进是过程的方向,演化是过程的活力。一个完整的过程包括过程策划、过程设计、过程实施和过程改进四项基本活动,如图 3-1 所示。
图3-1 过程活动及其关系
过程策划是根据组织战略,确定过程活动的目标、要求、流程、输入、输出及过程监视测量的指标、技术、方法和手段,识别关键过程,确定关键过程目标、过程测量指标、过程关键要求、过程有效性、过程敏捷性等要求,为过程活动有效开展及过程改进提供依据。
过程设计是基于过程类别,建立可测量的过程KPI;确定价值创造过程和支持过程,明确过程输入及输出对象;确定过程顾客和其他相关方及要求;基于过程要求,融合相关要求、相关信息、相关技术,组织实施过程设计。
过程实施是遵循相关标准规范,采用适宜的技术、方法和工具,持续采集并分析内外部环境因素变化及来自顾客和其他相关方的信息,在过程设计的柔性范围内,对过程设计进行调整、修偏和优化;基于监视测量信息,应用统计过程控制(Statistical Process Control,SPC)方法,控制过程输出的关键特性,确保过程处于受控状态并具有足够的过程能力。
过程改进是为了优化、改善软件过程开展的一系列活动,包括目标驱动和缺陷驱动两种改进方式。目标驱动的过程改进方式是根据一个预定的目标,自顶而下,建立过程度量和评价模型,有目的地进行过程改进;缺陷驱动的过程改进方式是根据实际产生的关于过程缺陷的反馈信息,实施针对性的改进。在实际工作中,过程改进包括渐进式改进和突破式改进。渐进式改进是对现有过程的持续性改进,是集腋成裘式的改进;突破式改进是对过程的重大变更或使用全新过程取代已有过程。
过程监视和测量包括过程实施中及实施后的监测,旨在通过设计评审、验证确认、试验验证、过程审核,以及为实施SPC、过程改进进行的过程因素、过程输出抽样测量,检查验证过程实施是否遵循过程策划与设计要求,评价过程绩效。
基于系统工程过程思想及测试流程,解耦软件测试与软件开发过程模型的相关性,将软件测试过程活动划分为测试策划、测试设计、测试执行、测试总结四个阶段,以及贯穿于软件测试周期活动的监视和测量,构成如图3-2所示的软件测试过程模型。当然,测试过程的每个阶段活动也构成一个过程。
图3-2 软件测试过程模型
依据CNAS-CL01等标准规范,采用层次分析、结构化分解等方法,确定测试过程活动的输入、输出,以及测试人员、测试资源、过程控制及监视测量要求,实现过程闭环,确保过程活动受控并得以持续改进。这是一个标准化、基于流程的软件测试过程模型。