江南机电设计研究所 贵州贵阳 550000
摘要:敏捷开发方法是90年代提出的一种全新的、以人为本的、循序渐进的开发方式。敏捷开发以及时、连续地提供有价值的软件为最终目标,而软件质量保证是敏捷开发中的关键问题,对提升软件质量起着至关重要的作用。通过对软件质量保证的概念、行为的分析,阐述了在敏捷软件开发过程中常见的质量保证行为,并对其在敏捷模式下的应用进行了分析。
关键词:敏捷,迭代,质量保证
一、前言
软件质量保证(Software Quality Assure,SQA)指的是构建一套有计划、有系统的方法,并向管理者保证制订出的标准、步骤、实践、方法可以正确地被所有项目采用。软件质量保证的重点是确认软件工作产品与软件活动是否符合规范。
《CMMI for Development》1.3版本的发布将关于如何运用灵活方式的说明添加到了与项目的策划、风险的管理和质量的保证有关的过程领域。在我国,中兴公司,华为公司,腾讯公司等众多公司纷纷采取了这种策略。
文章根据敏捷技术的特征,讨论了如何利用质量保证技术对敏捷技术进行标准化,并对Scrum模式在敏捷技术中的应用进行了阐述。
二、质量保证介绍
(一)质量保证定义
软件质量保证是软件能力成熟度二级(CMM)中的关键环节,它是贯穿软件全生命周期的第三方独立评估活动,在CMM中发挥着重要作用。软件质量保证指的是以独立审查的方式对软件生产任务的完成情况进行监控,使得软件生产任务符合相关标准和规范的要求,给开发者和管理层提供反应产品质量的信息和数据,帮助软件工程组得到高质量的产品。主要包括以下几点:
(1)对软件开发过程进行监控,以确保产品的质量;
(2)保证所生产的软件工作产品及软件处理程序满足相关标准规范的要求;
(3)保证存在的不符合项得到解决,并向高级管并人员反映。
(二)质量保证活动
软件质量保证活动包括以下内容:
(1)确定标准、规范和应遵守的惯例;
(2)审查对象标识;
(3)使客观评价准则清晰化
(4)制定一项质量保证方案
(5)对软件过程及工作产品进行客观评价;
(6)对不合格的软件进行处理;
(7)对质保工作进行总结.
三、敏捷软件开发中的质量保证活动
敏捷软件开发方法是一种循序渐进的,以人为本的,循序渐进的开发方法。它具有迭代开发,增量交付,团队自组织,以高优先级为特征。这一部分将介绍在敏捷的方法下,为小组带来更多的协助。
(一)制定质量保证计划
质量保证方法是项目规划中的一个关键环节,在制定该方案时,必须将客户对产品整个生命周期的质量需求纳入考量,并与项目中的其它方案相互配合。
在敏捷软件开发过程中,将一个项目划分为若干个阶段,每一个阶段被称为一个循环。迭代是一种时间观念,在这段时间内,我们需要完成一系列的功能开发和测试。因此,当开发质量保证计划时,敏捷项目是分阶段迭代策划的,这一点与传统的质量保证不同。
1.确定应遵循的标准、规程及约定
在实施质量保证活动之前,首先要确定产品生命周期内客户的质量需求,包括客户对产品质量的需求和客户对生产过程质量的需求。并以确定的软件质量要求和客户标准为依据,确定项目在整个生命周期内应该遵循的标准、规程和惯例。
2.识别审查对象
对于敏捷项目来说,确定评审对象是保证质量的最关键步骤。在项目循环中,确定软件过程以及与之相关的工作产品是最重要的。在敏捷软件开发中,每次迭代都需要制定迭代计划,进行迭代需求分析,迭代设计,迭代编码,迭代测试。因此,相对于传统的质量保证而言,敏捷质量保证要求每一次迭代都能识别出要执行的软件活动以及要输出的工作成果。
在敏捷软件开发中,在需求清单中已经包括了所有的用户描述,并且软件需求规范是可以选择性地被定制的,这样就不需要把软件需求规范作为审核的目标。
在敏捷软件开发过程中,当每一次迭代都完成了一组功能的开发后,就必须对相应的功能进行设计和测试。当最后一个迭代结束时,整个文档就完成了。所以,对于敏捷质量保证审查对象的标识,除了最后的完整文档之外,还应当包含在每一次迭代过程中所生成的文档,这些文档都会用版本号来表示区别。
3.明确客观评价准则
在软件质量保证中,对过程与工作产品进行客观评估的标准主要包括评估内容、评估方法、评估时机与频率。在敏捷开发过程中,每一次迭代活动和工作产品的审查都应该基于这一次迭代的目标和完成准则,而不应该都基于这一次迭代的目标和完成准则。
在此基础上,结合敏捷开发的特点,可以采用《审查表》确定评价内容和评价方法。在进行质量保证策划时,项目质保员根据敏捷开发方法的特点,对软件质量要求,标准,规范,惯例,过程及工作产品的客观性,对《审查表》进行了定制。在定制审查表的时候,要保证审查表的内容是客观的,完整的,并且符合标准,规范和惯例。
每个过程和工作产品审查的频率取决于过程和工作产品所带来的迭代,并且按照迭代中出现的次序来定义迭代的频率。此外,因为整个文档是在上一个循环中进行的,所以文档审查的时间和频率应该是在全部循环结束后进行的。
(二)客观评价软件过程和工作产品
项目质量保证人员按照《检查表》所列的检查内容,逐个检查软件过程及工作产品,凡不符合《检查表》要求的,均视为不合格。同时,由项目质保人员负责与有关各方沟通,判定其严重性,并确定其责任。
(三)处理软件不符合项
(1)由不合格的责任人负责纠正,并由项目质保人员跟踪确认,直到结束;
(2)如果不能及时纠正不符合项,则由项目质量员向项目主管汇报,并重新确定停工时间;
(3)如果不合格的问题不能在软件团队中得到解决,则由项目质保人员逐级向项目高层报告。
四、质量保证在Scrum模型中的应用
目前已有很多的敏捷模型,如Scrum模型,极限编程模型,测试驱动开发模型,重构模型,持续整合模型等。这一部分描述了Scrum模型中的质量保证活动,见图4-1。在进行项目规划的过程中,首先要确立要遵循的标准、程序和惯例,然后要确认要评审的目标,最后要澄清目标的目标,最后要制定出一套质量保证方法。在每一次迭代时,需要对迭代所产生的工作产品和过程活动做出一个客观的评价,并且在迭代时找到的不一致的软件也要加以解决。在最终的迭代中,除了对当前迭代所产生的工作产品和过程的活动做出一个客观的评价之外,还应该评价文档的审查活动。
图4-1.Scrum模型中的质量保证活动图
结论
敏捷的方法更能包容变更,并且提倡项目所有者、开发者和使用者之间更密切的关系,从而能够更早地、不断地提供有价值的产品。将软件质量保证应用于敏捷软件的开发,可以让软件过程及工作产品符合相关的标准,规范及惯例,提升软件质量。在对质量保证的概念和活动进行了详细的阐述之后,文章提出了在敏捷软件开发中的确定应该遵循的标准、规范及约定,对审查对象进行了辨识,明确了客观评价准则,对软件过程和工作产品进行了客观的评价,并对质量保证在Scrum敏捷模型中的应用进行了阐述。
参考文献
[1]秦航——软件质量保证与测试(第2版).清华大学出版社,2017
[2]【美】罗伯特.C.马丁——敏捷整洁之道:回归本源.人民邮电出版社,2020