首页 . 理学 . 计算机科学技术 . 软件工程 . 软件工程管理

软件验证

/software verification/
条目作者潘江

潘江

最后更新 2022-12-23
浏览 123
最后更新 2022-12-23
浏览 123
0 意见反馈 条目引用

检验软件开发周期中的一个给定阶段的产品是否满足需求、质量、约束的过程。

英文名称
software verification
所属学科
计算机科学技术

早期的软件开发规模都很小、复杂程度低、过程混乱无序、对验证的投入极少、验证介入也晚,常常是等到形成代码,产品已经基本完成时才进行验证。到了20世纪80年代初期,软件和IT行业进入了大发展时代,软件趋向规模化、复杂化,软件验证的地位越来越重要。它再也不是一个一次性的、只是开发后期的活动,而是与整个开发流程融合成一体、覆盖全流程。软件验证已成为一个专业,需要运用专门的方法和手段,需要专门人才和专家来承担。进入20世纪90年代,软件行业开始迅猛发展,软件的规模变的非常大,在一些大型软件开发过程中,验证活动需要花费大量的时间和成本,而当时的验证手段几乎全是手工方式,验证效率非常低,并且随着软件复杂度的提高以及应用场景多样化,出现了很多通过手工方式无法完成验证的情况。于是促成了应用验证工具和自动化验证方法的发展,提高了软件验证的自动化程度,让验证人员从烦琐和重复的验证活动中解脱出来,专心从事价值更高的验证分析和设计等活动。随着测试工具、测试平台、测试语言的蓬勃发展,很多软件企业实现了7*24小时无人值守验证。21世纪揭开了互联网软件快速发展,诞生了持续交付、DevOps开发模式,更是促使了从设计验证、单元验证、服务验证、集成验证、系统验证、上线监控等全流程验证的自动化。

软件验证是为了发现错误而执行程序的过程。验证的目的是为了发现和证明软件有错,而不是证明程序无错。在软件开发过程中,需求分析、设计与编码等工作都是建设性的,唯独验证是带有“破坏性”的,软件验证可视为分析、设计和编码3个阶段的“最终审查”,在软件质量保证中具有重要地位。

从是否关心软件内部结构和具体实现的角度可划分:白盒验证、黑盒验证、灰盒验证。从是否执行程序的角度划分:静态验证、动态验证。从软件开发的过程按阶段划分有:单元验证、集成验证、系统验证、软件验收、运营验证。从软件质量目标角度划分:功能验证、性能验证、可靠性验证、安全性验证、兼容性验证。从验证手段划分:手工验证、自动化验证。从被验证对象划分:需求验证、规约验证、设计验证、软件验证。

软件验证主要包括:①验证计划。主要对软件验证全流程活动的范围、进度、人力、物料、方法、风险等做总体筹划,一般由验证部经理或验证子项目经理主导完成。验证需求分析。负责解决测什么的问题。对于被测软件进行场景化分析,从功能、性能、安全性、可靠性、兼容性、易用性、生命周期可服务性等质量维度输出验证规格,为验证设计提供输入。③验证用例设计。基于详尽的验证规格,结合明确软件运行的场景和上下文,将验证规格实例化成可操作的验证步骤和执行预期结果,使得验证工程师能够独立完成验证工作。④验证脚本实现。基于软件进度和成本要求,大量的验证用例需要自动化执行,需要将验证用例转化为机器可执行的脚本(通常也是采用一种计算机解释性语言)。⑤验证策略。基于软件成熟度、需求交付计划、软件运行环境、人员技能等综合要素,将验证用例按不同抽样比重、执行先后、覆盖范围等执行策略,以取得测试投入、缺陷发现、缺陷定位、缺陷去除等综合最优。验证执行。按照既定计划和策略,准备好验证环境,将用例付诸自动化或手工执行,并记录详尽的缺陷触发条件、异常现象和相关数据,并及时通过缺陷追踪系统记录。验证报告。一般情况下,执行的用例结果(通过、不通过、阻塞),以及发现的缺陷就是验证执行的输出,验证系统能自动生成过程和结果报告。对于期望持续改进的组织和个人,还可以对软件研发和验证各个阶段进行全面和深入的分析总结,为后续软件开发、验证活动改进提供参考。

对于特别复杂的软件系统,还涉及验证工具的研发。

软件验证的发展趋势主要包含:①软件需求实例化。是指软件需求采用合适的形式化方法描述,软件需求暨验证需求,根据形式化的软件需求自动生成验证用例,减少验证投入、提升需求和验证质量。②模型驱动验证。通过UML等建模工具,完成软件需求、设计、开发、验证,减少验证投入。用户验证。可以通过特定质量受控的方法,让最终用户参与验证,尽早获得用户评价。④A/B验证。对于两种不同的方案交付用户验证或使用,通过对比获得最佳软件方案。精准验证。在快速迭代和故障程序修复场景,往往会引入其他软件bug,为获得最佳质量就必须需进行全面的大量的用例来验证,而通过精准验证可获得最小的验证投入。

  • 朱少民.软件质量保证和管理.北京:清华大学出版社,2014.

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!