深入开展软件质量保证工作的探讨

2020-09-26 11:43刘红
电脑知识与技术 2020年24期
关键词:过程控制软件工程

刘红

摘要:软件质量危机的问题伴随着软件的产生,一直层出不穷,从未得到过真正的解决。事实上,软件质量保证(SQA)在整个软件开发甚至后期的软件使用中发挥的作用非常大。要保证软件质量问题,要严格把控软件质量的工作要求、软件质量保证工作人员的工作内容、目前面临的主要问题以及解决措施等几个方面。注重每一个环节和每一个细节,并不断提高。该文对实施相关软件质量保证工作的相关问题进行了总结归纳。

关键词:软件质量保证;过程控制;软件工程

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2020)24-0074-02

1 引言

软件危机的概念是20世纪70年代提出的,此后国家,企业以及学术界对软件质量保证的研发侵入了大量的财力,物力以及人力。当然也取得了很多有效地成果。但不可否认,目前取得的成绩并没有达到我们所期望的效果。

软件质量问题在全国乃至全球都备受关注。目前,国内许多研究院所和企业单位都为此开展了相关工作。软件质量保证至关重要,它作为存在于软件评审、开发、使用和维护整个过程的评价活动,在一些公共特性,如纠错和验证中都有很大作用,甚至很多关键过程域系统都离不开软件质量。

那么,究竟什么是软件质量,软件质量的评价标准是什么,它的工作内容和工作要求是什么,从业人员有何责任与义务,目前软件质量存在问题的原因是什么以及如何解决,是本文着重关注的事情。

2 软件质量保证的概念

“反映软件产品满足规定需求和潜在需求能力的特征和特征的总和。”这是国际化标准组织给出的软件质量的概念。它将软件质量概括为以下六项特性:功能性、可靠性、易使用性、效率、可维护性和可移植性。

经过多年的研究和发展,软件质量保证的过程目前如下:首先,要使整个项目的软件过程透明化,管理人员可以实时监控和研究。通过根据实际项目需要,管理层需要建立一套客观具体并且可以加以实施的方法,方法中制定的计划标准、实时方法和具体步骤都具有可行性,可以被项目组直接采用。接下来就需要软件质量保证组与项目负责人和工作人员一起,全程参与项目的具体实施过程,以便保证这些软件项目能够满足实际生产需要和上级领导的要求。

当然,除此之外,我们还希望软件质量保证可以作为软件开发小组的得力助手,能够在软件研发甚至之后的使用中收集项目中好的实施方法,和出现问题的原因,为修改企业内部软件开发的整体规范提供既有用又可靠的依据,同时也为本企业其他项目的工作提供思路和经验教训。

3 软件质量保证的评价标准

“软件质量保证”是指向社会和用户提供满意的高质量软件产品而进行的有组织、有计划的活动。要验证在软件开发和使用过程中是否遵循了合理的过程和标准,主要包括以下几个方面:

1)对软件开发过程实施监控以保证产品质量。

2)软件开发过程以及开发出来的软件要符合领导的要求,在达到目标要求的同时,要安全、高效,尽量将人力和物力成本降到最低,并符合相应标准与规程。

3)软件产品的生产过程如若发现问题,应及时处理,如果项目内部无法解决,必要时要将问题反馈给上级。

4)确保项目组制定的计划、标准和规程是项目组所需要的,既能通过上级领导的审核,同时也满足评审和审计的要求。

5)在后续软件产品使用过程中,如果发现生产问题或者效率低下的问题,应及时找出原因并纠正,即在后期产品使用时要做好售后和维修工作。

4 软件质量保证的工作内容

我们可以通过开发项目的整个过程来认识软件质量保证的作用和工作内容。软件质量保证是通过过程控制来协助提高软件运行质量,以保证获取高质量的软件产品,提高工作效率,最终获得高收益。软件质量保证的主要工作内容如下:

首先要制定软件质量保证计划。在项目早期,SQA工作人员应在早期例会上,按照上级领导的要求和生产中要求项目最终想要完成的作业和目标,制定出切实可行的软件质量保证计划,在计划书中提前考虑到各个阶段的重点,并将相应的难点和目的标记出来,方便工作人员阅读;把每一个检查和用于审计的产品对象,包括满足审计条件的输出产品标识出来。注意将计划制定得尽量详细,这样更有利于今后的指导工作。

然后要组织软件质量保证的工作评审人员,将制定完成的计划交与评审人员进行审计。重点是审查计划是否清晰、正确、可行。然后将通过评审的SQA计划发送给领导层和相关技术人员。SQA工作人员也应对项目工程组成员进行有关质量保证职责和权力等方面的培训,以便使他们明白质量保证工作的内容和要求。

接下来就是检查项目日常活动及规程的符合性。这一环节是软件质量保证的日常工作内容。如果只在阶段点进行检查和审计,那么出现的弊端是难以及时反映项目组的工作过程,当问题已经暴露出来并出现了不太好的结果才能进行补救,此时为时已晚。所以软件质量保证小组要不定时地经常突击检查,来监督软件项目的进展。为此,软件质量小组最好是根据项目的规划,将项目划分为几个阶段,再在每个阶段点之间设置若干个便于监督的跟踪点,将跟踪到的问题及时填写到检查单上,注意标明日期。工作完成后,根据检查单来填写相关偏离问题报告,如有必要,将问题报告上呈各层领导和相关技术人员加以指正。这样才可以防患于未然,从根本上发现问题并及时解决。

保证项目的日常活动和规程的符合性之后,就要对检查过程中发现的问题及时纠正和解决。项目组可以自行解决的问题就由项目组内部自行解决,如果内部无法解决,就将问题报告上交给高层领导者。

還有很重要的一点是引进相关技术。软件质量保证小组在必要时需要引进一些相应的技术来有效确保软件质量。这些技术涉及软件开发的各个阶段,目的是解决实际项目中出现的问题和提高效率。在具体实施中,可以对项目的技术人员进行培训。比如,根据SQA以往的经验总结,建议以功能点估算法代替代码行估算法进行估算。那么就应向技术人员介绍功能点估算法的概念及如何应用。

最后,SQA还要提供过程改进的建议。比如PDCA环和在此基础上提出的IDEAL模型,都是软件过程改进的基本方法。在开发过程中,由开发人员记录项目各个阶段的错误,软件质量保证应用一些错误类型分析技术,如缺陷排查效率,测试良率等,进行错误的收集,再进行问题归类,统计和原因分析,然后再将问题根据解决的时间顺序排序,纠正问题,形成这样一个自反馈系统。

5 SQA工作人员的工作内容与责任

软件质量保证人员的工作很多,内容很复杂。比如,对文档的有效管理。项目前期,软件质量保证方面要做很多文字方面的工作。其次,SQA工作人员的沟通协调能力也要很强。软件质量一旦出现问题,可能会涉及很多部门和相关工作人员,此时想要解决问题,良好的沟通必不可少。同时,工作人员要熟悉软件开发过程,以及单位内部已有的过程规范。质量保证人员会参与到评审分配需求中,与项目软件经理一起确定适合项目使用的一系列计划和章程。项目级质量保证人员还要在固定时间(一般以周为单位),对所有正使用的软件,其工作中的运行过程及相关活动进行评价,提前提示项目工程组成員依据之前制定好的行动计划和开发标准展开一系列的活动并进行监督,减少和避免问题的发生。

SQA工作人员还要参与到软件的测试过程。包括:单元测试,集成测试,系统测试和验收测试等。所谓单元测试,就是用程序员编写审查代码来代替传统的动态单元测试。集成测试时要判断该项目的集成测试计划是否与之前已有的测试计划有冲突以及是否覆盖了内外部接口,如果是配置项级或系统级集成,那么还要判断工作环境与计划环境是否一致,如果不一致,是否会影响结果的输出。系统测试是指判断测试环境是否与计划环境一致,以及是否完成了系统测试计划中规定的全部测试,未完成时是否进行了分析和说明。验收测试要注意的问题是,验收前软件是否生产完成,软件是否符合批准,验收的产品是否出自产品库。如果在测试过程中SQA工作人员发现不符合规范的项目,应告知责任人,对不能在项目内解决的问题逐级上报,这个过程中工作人员要一直跟踪直到问题完全解决,并编辑成报告进行记录,关闭问题。

除上述工作内容之外,对项目中出现的意外和紧急情况处理的应急反应、协助公司的ISO或CMM认证、软件质量保证工作的使用等等,也都是SQA人员的工作范畴。作为一名SQA人员,应及时介入项目,积极与项目组合作,不仅要熟练掌握业务知识,而且要具有一定的业务技巧,灵活运用CMM的标准,才能保证软件产品的质量和可靠性,逐步提高软件过程的成熟度。

6 结束语

目前,从国际市场上看,软件加工行业的人才处于紧缺形式,软件开发的发展潜力和发展空间非常大,而我国目前软件技术在世界上来说虽没有达到引领行业发展的水平,但也处于相对先进的地位。再加上我国软件技术人员普遍具有良好的专业技术和职业素养,劳动成本相对发达国家又相对低廉,因此国际上很多国家都很有意愿跟我们国家进行合作,开展人才共同培养。只要组织得法,技术先进,迅速发展软件加工出口,就会有良好的发展前景。毫无疑问,软件企业的SQA工作是重要而且必要的,所以软件企业应该倡导、推行和建立规范的质量保证体系,以提高软件企业的综合实力和竞争力。

参考文献:

[1] 陈宏刚,林斌.软件开发的科学与艺术[M].北京:电子工业出版社,2002.

[2] Philip Metzger,John Boddie.软件项目管理:过程控制与人员管理[M]. 陈勇强,费琳,译.北京:电子工业出版社,2002.

[3] 张维迎.产权、政府与信誉[M].北京:三联书店,2001.

[4] 卡纳基梅隆大学软件工程研究所.能力成熟度模型(CMM):软件过程改进指南[M].刘孟仁,译.电子工业出版社,2001.

【通联编辑:代影】

猜你喜欢
过程控制软件工程
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
关于如何创新和完善计算机软件工程管理的探讨
创新管理,完成鞍钢自主集成的冷轧2130工程生产线