中车长春轨道客车股份有限公司 流程与数字化部 长春 130062
摘要 近年来,随着公司内外部用户对于软件质量要求的不断提高,软件质量水平在很大程度上影响着用户体验、软件推广程度及企业经营效率,传统的软件测试验证和质量管理方法已无法满足如今发展迅速的软件产品。笔者首先从软件生命周期分析了软件测试的重要程度,然后对于软件缺陷进行修正方法的讨论,并进一步针对软件测试如何提升软件质量进行应用研究。
关键词 软件质量 软件测试 体验 效率
1软件生命周期概述
软件生命周期是从软件的需求产生开始的,主要包括软件需求分析、软件设计、软件编码、软件测试和软件运维等阶段,软件测试是一个系列过程,包括软件测试需求分析、软件测试计划设计、软件测试用例设计、软件测试执行等等,软件生命周期的各个阶段均应进行不同目的和内容的测试活动,因此,软件测试存在于整个软件项目生命周期,是保障软件质量的重要手段。进而可以分析得出,软件质量控制的一个明显的特点,就是问题发现的越早,解决该问题的成本就越低。
2软件缺陷修正
软件缺陷:软件在使用过程中存在的任何问题都称为软件缺陷,包括问题、错误,或者是隐藏的功能缺陷。
缺陷等级:按照缺陷对于被测软件或系统的影响程度,可分为关键缺陷、严重缺陷、一般缺陷、建议改进缺陷[1]。
关键缺陷:非常严重的缺陷,比如软件或系统瘫痪、异常退出、频繁的死机等(重新安装或重新启动软件或系统不属于更正办法)。
严重缺陷:严重影响软件或系统运行,或与设计方案存在严重偏离,主要功能无法执行、数据被破坏、或产生错误结果。
一般缺陷:软件或系统基本满足用户业务要求,但次要功能需通过变通手段解决,对应的业务流程功能未实现,但有替代方法来解决,或系统响应时间长、入参校验规则与方案不一致等影响有限的问题,具体包括性能问题、安全问题、校验问题、乱码等。
建议改进缺陷:使操作者不方便或操作麻烦,但不影响执行工作功能或重要功能,包括界面设计、提示信息、易用性、统一性等问题。
具体缺陷产生原因详见表1所示[2]。
表1 软件缺陷产生原因
软件生命周期阶段 | 缺陷产生原因 | 软件生命周期阶段 | 缺陷产生原因 |
需求分析 | 需求二义性 | 软件编码 | 开发工具问题 |
需求不合理 | 编码遗漏 | ||
需求前后不一致 | 编码错误 | ||
纯粹性错误 | 软件测试 | 测试环境配置错误 | |
需求遗漏 | 测试标准不一致 | ||
软件设计 | 设计与需求不符 | 测试遗漏 | |
设计前后不一致 | 测试人员对需求不了解 | ||
纯粹性错误 | 集成测试问题 | ||
设计遗漏 |
修正软件缺陷应根据软件缺陷产生的阶段和原因,并结合缺陷的优先级,区分亟待解决、可进入队列排队解决、自主选择解决时间等级别,精确定位,充分沟通且按修正计划进行修正,且修正进度在团队内部及时共享,便于回归测试的执行,同时还需要加强专业测试手段应用,包括测试工具和测试方法两方面的能力提升,保障软件修正过程标准、有序、高效、低风险。
3软件质量评价
软件测试的重要目的是要评估和保障软件产品的质量[3]。可以通过引入测试执行率,需求通过率,缺陷的修正成本,累积测试时间,缺陷有效率,缺陷修复率,测试通过率等度量指标,来评估软件产品的质量。详见表2所示。
表2 软件测试度量指标
度量角度 | 度量指标 | 定义 |
进度度量 | 测试执行率 | 实际执行测试用例数/测试用例总数 |
需求通过率 | 已测试需求通过数/需求总数 | |
成本度量 | 缺陷的修正成本 | 测试、提交、修正、验证缺陷等合计时间 |
累积测试时间 | 执行的每一轮测试时间之和 | |
测试质量度量 | 缺陷有效率 | 有效缺陷/缺陷总数 |
产品质量度量 | 缺陷修复率 | 已解决的缺陷/缺陷总数 |
测试通过率 | 执行通过的测试用例数/测试用例总数 |
结语
软件需求是软件测试的本质,软件测试是软件质量保证的基石,软件测试有效性的保证需要很强的实践性研究。本文所做的研究探索,还需要在项目中具体实践,不断积累研究经验。
参考文献
[1]刘易斯,维拉皮莱.软件测试与持续质量改进[M].陈绍英译.北京:人民邮电出版社,2008.
[2]钱鸿生.基于风险管理的软件生命周期模型研究 [D].上 海:同济大学,2006.
[3]刘宇柯.基于CMMI的软件开发项目管理研究 [D].广州:广东工业大学,2015.