软件工程项目质量管理存在的问题及发展趋势

2021-11-21 01:24靳同欣卢华燕
电子技术与软件工程 2021年6期
关键词:开发人员软件测试生命周期

靳同欣 卢华燕

(1.河北经贸大学 河北省石家庄市 050064 2.中科恒运股份有限公司 河北省石家庄市 050000)

1 引言

信息技术的飞速发展给人们生活带来了便利,这使人们对软件越来越依赖,对软件工程项目的质量要求也更加苛刻,正因如此,高效的软件工程项目质量管理成为了各软件组织研究的重点,也是软件组织能够持续发展的根本。通过分析软件工程项目质量管理中存在的问题,提出软件工程项目应如何进行有效的过程控制,以提高整个软件工程项目质量管理水平和软件工程项目质量。

2 软件工程项目质量管理存在的问题

现阶段企业管理朝着精细化、复杂化的方向发展,软件工程项目的质量管理也逐渐成为了软件企业管理的重中之重,而软件工程项目的质量管理水平也常常成为制约企业发展的瓶颈。

2.1 缺乏适合组织的完善的质量管理体系

著名的质量管理专家费根堡姆认为,在制造及传递某种合乎特定质量标准的产品时,必须配合适当的管理及技术作业程序,这些程序所组成的结构,称为质量体系[2]。

质量体系起源于英国,早在1978年英国就发布了质量管理和质量管理体系国家标准BS5750,通过该标准的应用显著改善了英国企业的产品质量。质量体系发展至今,国外已形成了多种成熟的质量模型,如:ISO9000、CMM/CMMI、SPICE 等[3]。

我国根据实际国情制定了相关的软件质量标准供国内企业参考,如GB/T 16260 《软件工程 产品和质量》、GB/T 9385《计算机软件需求说明编制指南》、GB/8567《计算机软件文档编制规范》等。同时,我国不少企业也通过了ISO9000 或CMM/CMMI 等体系的认证。2020年中国大陆通过CMMI 认证的企业数量共2864 家企业,相比2019年数量(2430 家)增加了434 家企业,其中2020年通过Level5 的企业数量共454 家,比2019年的348 家增加了106 家企业。这些数据一定程度上可以看出,我国软件企业在质量方面逐渐在向国际水平靠拢,但另一方面这些通过认证的企业中相当一部分未能完全按照企业实际情况结合模型进行质量管理体系的贯彻实施,这就导致了软件质量管理缺乏系统性。

2.2 软件工程项目需求分析不足

高质量的软件需求分析是软件成功的最有力保障,需求分析是一个循序渐进的过程,因而软件项目经常会出现对用户需求分析不足的情况,主要体现在以下几个方面:

(1)在展开软件开发工作前期没有进行深入、有效的市场调研工作,项目团队对客户的需求掌握不清楚,使其研发的软件产品与用户需求不符[4]。

(2)部分软件企业缺乏经验,或为了降低项目成本,导致软件产品性能或安全不符合用户需求而降低了软件开发质量[4]。

(3)由于与用户沟通的需求分析人员一般并非项目开发人员,开发人员对需求规格说明书的理解与用户的实际需求容易产生偏差[5]。

(4)用户对自己的实际需求也并不明确,这也是前期需求调研难以做到充分、有效的原因之一。

2.3 变更控制不规范

软件的变更贯穿了软件项目的整个生命周期,因此是否能够有效的控制变更也成为了软件质量控制的关键之一。变更控制不规范主要表现在三方面:

(1)变更提出不规范。由于软件需求提出者与软件实际使用者常常并不相同,加之部分业务人员对需求调研不充分,甚至出现“一拍脑袋”定需求的情况,这导致了在研发阶段,对需求变更提出的随意性[6]。

(2)变更实施不规范。变更提出后仅项目经理或技术负责人和客户沟通并实施变更,未经业务需求部门、产品经理等相关负责人进行有效的评审/评估,这给整个项目带来了难以预估的风险。

(3)变更跟踪不到位。变更实施完成后,项目团队未对变更进行跟踪,未及时更新与变更有关的成果物,导致提交的产品无法在成果物中溯源。

2.4 软件工程项目生命周期缺少分阶段质量控制

软件工程项目生命周期主要分为计划、需求分析、设计、编码、测试、运行与维护等六个阶段。国内不少企业,尤其是中小型软件企业对软件产品的质量管理缺乏过程控制,他们仅关注最终成果物[7],如:软件项目各里程碑评审流于形式,或不进行评审;编码阶段,代码完成后未进行有效的自测和代码走查,导致软件产品的缺陷直到系统测试阶段才被发现,这些都大大增加了软件产品的质量成本。

2.5 对软件工程项目质量的保证寄希望于软件测试

开发人员对其所写的代码具有主观认同感、缺乏测试经验和方法,常使开发人员更多的将软件质量保证看成是软件测试人员的职责,更倾向于由测试人员发现问题,他们进行解决。

2.6 软件测试流程不严谨

软件测试流程不严谨,一方面因测试工程师水平不同而使测试设计的侧重点不同,另一方面测试过程不可控,因软件测试过程缺陷数量和缺陷修复的难易程度未知,导致软件工程师对缺陷修复时间不确定,这导致测试进度与测试计划容易产生偏差;另外,软件测试阶段的工期因前期需求不明确或设计不合理等造成的返工而不得不压缩。

3 软件工程项目质量管理优化建议

3.1 结合组织实际情况建立符合组织切身发展的质量管理体系

无论是国际上的ISO 质量管理体系、CMM/CMMI 模型还是我国制定的国家标准,组织应灵活运用,切忌照搬照抄标准、模型。建立一套符合组织发展的质量管理体系、标准,一方面可以通过引入专业质量管理人员,对组织的质量管理进行指引;另一方面目前市场上存在众多的咨询服务机构,组织可以根据需要选择性引入,使其对组织进行质量管理方面的专业指导。

3.2 尽早明确、规范需求

需求调研人员一方面对用户的实际业务要从专业的角度进行考虑并予以清晰、准确的描述,在专业站位上要与需求提出者在同一水平;另一方面需求调研人员需具有很强的沟通能力,无论在何种情形下都能够和用户进行有效、充分的沟通,并引导用户对需求进行明确描述。

在用户对自己需求不明确或需求分析人员对需求表述存在歧义时,设计和开发人员应在工作过程中对需求规格说明书进行严格把关,有任何疑问应及时与需求分析人员甚至用户进行沟通、确认。

3.3 变更控制的规范化

结合组织实际,建立从变更申请的提交,到接收、评估、决策直至项目结项的规范的变更控制流程。在变更提交阶段进行相关变更请求的记录,并根据变更起源及目的,对变更进行分类;在变更接收环节,明确变更接收人、处理变更请求的负责人,并确认变更请求;项目组在收到变更请求后,应对变更可能带来的影响进行评估,包括对内部和外部的影响;根据评估结果做出变更决策,即:是批准变更还是拒绝变更,又或者是推迟变更至下一版本,无论做出何种变更决策,都需要将决策传达至项目所有相关干系人,并对变更进行记录[8]。

3.4 对软件生命周期各阶段严格质量控制

如果能够控制好软件生命周期各阶段的质量,那么也就控制了整个软件生命周期的质量,一方面要求软件生命周期每一阶段的负责人员都要有“不接受不良品、不制造不良品、不流出不良品”的质量意识;另一方面每一阶段完成后,组织评审会议对重要成果物进行合理、有效的评审,必要时邀请用户参加,以尽早发现和排除歧义和错误,防止将问题遗留到后续阶段。比如需求分析完成后,邀请用户、设计人员、开发人员、测试人员、经验丰富的需求人员等参加需求评审会议,对需求规格说明书进行详尽的评审。

3.5 质量管理应贯穿软件整个生命周期,测试仅是质量控制的最后一道关卡

软件质量是在开发过程中逐渐构建起来的,软件质量管理应贯穿软件整个生命周期。软件测试是通过执行软件来发现缺陷,它是控制软件质量的重要手段和关键活动,也是软件质量控制的最后一道关卡。若将所有问题都遗留到测试阶段发现、解决,无疑会大大增加软件的质量成本。

3.6 规范测试流程,按流程对测试进行管理

为保证测试工作顺利进行,必须成立一个独立于开发小组的测试小组,以排除测试期间开发人员可能遇到的心理上的“利益冲突”。针对测试的设计重点出现偏离的情况,可安排一名测试人员在其完成测试后,由经验丰富的测试人员、项目设计人员对测试设计进行评审,尽量使测试设计能够全面覆盖软件需求和设计;针对测试过程不可控的情况,在项目前期制定开发计划时,测试负责人根据前期资料制定对应的测试计划,并在测试过程中及时对比计划与实际进度。当进度出现延期风险时,可采用快速跟进或申请调整资源的方法及时调整进度。

4 软件工程项目质量管理未来发展趋势

4.1 与组织契合的质量管理体系、标准的应用

软件工程项目终将落地于实践,越来越多的软件组织愿意接受审核,并通过审核获取相关资质证书,只有在统一的体系、标准的管理下才能促使软件工程的质量得到提高[9]。组织首先应明确质量方针和质量目标,并根据组织的实际架构,将质量目标进行逐层分解,使组织中每个人都明确自己的质量责任与质量目标。其次结合当前国内外相关体系、标准,建立起一套与自身实际相契合的统一的质量管理体系,并使体系得到有效运行。

4.2 分阶段的质量管理

高效的软件工程项目质量管理是软件组织能够良性、持续发展的根本。基于契合组织自身发展的统一质量管理体系建立的基础上,组织对软件工程项目根据软件工程项目生命周期的特点进行分阶段质量控制[10-11],每一阶段开始前,根据合同和需求拟定该阶段质量控制计划,在执行过程中严格按质量计划执行;在每一阶段结束之后进行该阶段总结,以对该阶段所有成果物的质量管理情况进行复盘。

5 结语

加强软件工程项目的质量管理已成为促进软件企业发展的必要工作,高效的质量管理能够有效解决项目过程中存在的管理不规范、需求不明确等问题,但软件工程项目质量管理追求质量的最优策划,而非越大/严格越好,质量管理的程度需要有上限,同时也要考虑组织的内外部环境因素[12]。为避免出现低质量的软件产品,软件企业一方面应严格按照相关质量体系、标准执行,甚至在一定时期可采取强制措施保证软件工程项目的质量;另一方面需要综合考虑企业内外部环境的影响,对软件工程项目质量管理进行最优策划、有效控制、落地执行,企业才能够得到良性、持续的发展。

猜你喜欢
开发人员软件测试生命周期
全生命周期下呼吸机质量控制
基于OBE的软件测试课程教学改革探索
从生命周期视角看并购保险
民用飞机全生命周期KPI的研究与应用
Semtech发布LoRa Basics 以加速物联网应用
EXCEL和VBA实现软件测试记录管理
企业生命周期及其管理
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究
后悔了?教你隐藏开发人员选项