高新
摘 要:风险管理在软件质量管理系统中起着非常重要的作用,软件设计和产品开发过程具有不确定性,这种不确定性威胁整个软件的质量,所以需要识别软件测试期间的风险,分析并控制此类风险,以不断提高软件质量。文章介绍了软件测试风险评估的3个方面,分析了软件测试的一般风险,并提出了纠正措施及建议。因此,该研究将对专家和科学家的未来研究有所启发。
关键词:软件测试;质量管理;风险应对目前,中国的软件测试行业与发达国家的差距相对较大,这主要体现在软件测试技术和标准的普及上,欧洲和美国的软件业具有很高的早期成熟度,开发人员可以严格控制软件质量。我国软件产业滞后、发展不成熟、软件测试处于弱势地位,虽然,国家软件制造商拥有多项国际标准化组织(International Organization for Standardization,ISO)和容量成熟度模型(Capacity Maturity Model,CMM)的高级证书,但是,非标准软件开发也很普遍,许多方面都没有标准化,远远不是国外软件行业1∶1的比例。形成测试服务系统,以响应用户对软件质量要求的软件测试需要依靠技术和服务,如何吸引用户和提高测试质量,需要引入HJ的风险管理技术以最大限度地降低测试风险,风险管理系统迫切需要识别与项目相关的风险,尽快采取适当的措施,消除潜在的风险因素,并在事件发生时减少对软件项目的影响,所以可以制定一个计划。
1 风险与测试
1.1 风险相关介绍
在软件测试期间,可能会出现最坏的情况,即存在测试目标可能受到严重损害或出现故障的风险。软件测试风险管理是规划、识别、评估、响应和监控潜在风险的整个过程的总称。
1.2 风险与测试的关系
测试软件是一种风险测试策略,可用于确认产品是否满足功能需求。内容测试可降低软件风险。然而,在当前的测试过程中,帕累托80/20理论表明“80%的危险从20%的功能开始”,它更接近相对危险的比率,风险和测试之间的关系如图1所示。
如图1所示,测试人员应使用更合理的测试策略来优化工作负载分配,换句话说,首先需要注意区域F。这降低了测试的风险。因为高优先级负载测试在高优先级区域中最为重要,所以它应该占测试项目风险的50%。
2 风险管理过程
风险管理的目标是控制与软件开发周期相关的风险,尽可能地消除影响测试项目的因素。风险管理包括与国际软件测试和认证委员会相关的3项活动:危害识别、风险分析和风险管理,本文以国际软件测试和认证委员会计划为例,讨论这3种类型的危害。
图1 测试人员基于危险的优先
2.1 风险识别
需要在项目早期进行风险识别,并在测试计划开始时对其进行测试,以澄清威胁项目以及促进项目计划和战略制定的因素。风险识别过程以明确的危险声明记录不确定性,根据项目的特征,可以使用不同的风险识别方法,所以,不管产品的特征如何,都可以使用多种技术识别,例如专家建议、独立评估、风险规划、头脑风暴方法和核对表方法等。
2.2 风险分析
风险分析是对所识别风险的概率和重要性以及每种风险的研究,该质量特性在ISO/IEC9126中有描述,危险的可能性分为5类:非常低、低、中、高、非常高,测试人员可以使用定量或定性的方法来确定风险的可能性和严重性,一般而言,定量风险分析更复杂,定性分析相对容易,因此,通常在质量上确定风险在检查过程中的潜力和重要性。此外,可以结合定性和定量的方法,通过定量获取风险水平并与风险标准值进行比较,将风险的概率和重要性相乘,并用适当的值代替,如果计算出来的风险水平超过某个阈值,则需要采取适当的措施缓解风险。
2.3 风险控制
2.3.1 风险减轻
风险程度取决于风险发生的可能性,因此,减少可以降低风险以便响应到可以容纳的水平。
2.3.2 风险应急
一旦风险得以实现,就需要采取适当的紧急行动来减少事故的影响。如果想提高风险管理的效率,需要关注风险的“非常高优先级”,并采取即时风险策略来管理风险。
2.3.3 风险转移
风险可以不是自身的风险,而是将风险转移给第三方。示例:将保险和软件功能模块开发中的风险转移给第三方。
2.3.4 忽视或接受风险及其产生的后果
一旦识别出风险,就要立刻对其进行评估,这样就可以识别它们并将其控制在允许的范围内。其次,風险管理的成本可能比没有响应的成本高,如果没有避免危险,并且无法采取适当措施来避免、延迟或减少危险,则只能承担风险[1]。除了防止承包商项目工作人员到期外,确保数据传输过程中信息的机密性也很重要。对于外包测试,必须发送各种信息端口,有电话、电子邮件连接和软件版本,如果可以,需使用虚拟专用网络(Virtual Private Network,VPN)等根据需要将传输的数据进行加密。
2.3.5 风险追踪
一旦风险得到控制,需要及时监控风险,通过跟踪风险以便确保能够及时采取风险应对策略,不断识别新风险,并通过后续机制尽可能建立对策。通过改善研究人员、测试人员和客户之间的沟通,或通过创建一个僵化的系统,可以避免风险。对于不可避免的风险,使用有效的风险管理方法来降低,例如在设置测试环境中,检查所有其他项目,当需要显示和检查所有元素时,如果仍有“未发现的缺陷”,仍可在程序中改进测试范围。为了减轻这些风险,例如在最大的情况下为99.9%,在新功能出现严重缺陷之前,尽可能经常引入产品。由于源函数错误可能产生风险,因此,回归测试可以避免部分相关的风险,但通常与时间和成本有关。
3 软件测试中的主要风险及应对措施
风险是不可避免的,并且会持续存在,与软件测试相关的主要风险是:(1)不了解产品风险,质量要求低,对产品功能的理解有误。(2)控制人员风险。在正确的测试阶段开始时,正确的测试仪不起作用。(3)计划风险。改变或重新测试,缺乏测试时间,增加投资成本。(4)需求的快速变化导致目标质量风险,没有透露能力测试和可用性测试等质量标准。(5)有效性测试风险没有测试套件设计,并且在某些约束、详细逻辑和用户场景中,很难忽略错误和其他风险[2]。由于没有特殊的测试环境,测试会导致风险测试工具出错。(6)无法正确使用此测试工具或测试人员不了解新工具的用法。
对于上述出現的软件风险,可以使用以下风险管理方法:(1)可以增加员工风险认识的教育,包括基础项目教育、质量标准培训、软件测试工具教育和初学者教育,以促进测试人员具备关键技术[3]。(2)测试计划的安全性及工作量的合理安排,以上措施优先考虑测试案例和测试人员,它可用于优化测试策略、确定测试范围以及选择关键测试以降低风险。(3)如果测试环境出现问题,那么这种情况下可以提前列出需要检查的所有项目并配置测试环境。(4)改善测试套件的覆盖范围(例如99.9%)以降低风险。(5)如果系统质量低或不完整,则必须调用应测试的内容、不应测试的内容以及确定过程的测试深度要求规范。(6)某些风险试验会产生严重后果,这种风险需要在低风险出现之前转换,在产品发布之前发现致命缺陷并且不是很重要,但纠正错误可能导致原始功能出现故障,删除当前错误的风险非常高,并且可能出现新风险。
4 结语
本文首先从风险相关介绍以及风险与测试的关系等两个方面对风险与测试进行了分析,然后从风险识别、风险分析以及风险控制等3个方面对风险管理过程进行了分析,对软件测试中的主要风险及应对措施进行了分析。风险管理与测试是软件测试过程中不可或缺的一部分,本文使用基本的软件风险管理测试流程来说明风险与测试之间的关系,描述了关键风险和对策。在实施测试项目时,需要根据风险管理计划密切管理项目的风险,以避免风险。最后,希望通过本文的研究,对今后专家学者的研究与对软件测试过程中的质量管理及风险应对相关的课题的研究有一定的借鉴与帮助作用。
[参考文献]
[1]刘杨.邮储银行软件测试体系研究[D].北京:北京邮电大学,2018.
[2]吴刚.基于敏捷模式软件质量管理过程的改进方法研究[D].成都:电子科技大学,2017.
[3]储海华.离岸外包软件测试的质量管理方法研究与应用[D].上海:上海交通大学,2013.
Analysis of quality management and risk in the process of software testing
Gao Xin
(Hengyin Financial Technology Co., Ltd., Tianjin 300308, China)
Abstract:Risk management plays a very important role in software quality management system, there is uncertainty in software design and product development process, which has many hidden dangers to the quality of the whole software, so it is necessary to identify the risk during software testing, analyze and control this kind of risk in order to improve the software quality. This paper introduces three aspects of software testing risk assessment, analyzes the general risks of software testing, and puts forward some suggestions for corrective measures. Therefore, the research in this paper will enlighten the future research of experts and scientists.
Key words:software testing; quality management; risk response