摘 要:近年来随着软件测试技术的不断发展,军用软件对自动化测试的需求越来越大。首先,介绍了军用软件自动化测试的涵义及其现状;然后,深入地探讨了军用软件自动化测试框架的系统结构、原理,构建了军用软件自动化系统性能测试的框架;最后,阐述了对软件测试过程的质量进行监督时应重点关注的问题,以期为军用软件测试过程质量监督做出有益的探索。
关键词:军用软件;自动化测试;框架;质量监督
前 言:近十几年来,随着现代化信息技术的飞速发展,软件在军用装备中的使用已涉及各个领域,软件质量严重影响军用装备的质量,因此军用软件质量在整个行业中受到高度重视。原中国人民解放军总装备部和中央军委装备发展部合同监管局先后颁布了GJB9001C《质量管理体系要求》、GJB8000《军用软件研制能力等级要求》和GJB5000A《军用软件研制能力成熟度等级》三个标准,用以指导军工行业各单位,提高科研生产管理能力,提升产品的质量水平。
1 0GJB5000A标准
GJB5000A标准是软件研制能力成熟度模型,它是以CMMI1.2版本为基础制定的适用于软件开发全过程的通用标准。成熟度模型这一概念最早是在20世纪70年代中期由卡内基梅隆大学提出的,我国直到1989年才开始逐步深入了解这套体系,2003颁布了第一个GJB5000标准,规定了软件研制和维护活动中软件管理过程和开发过程所需完成的工作,2008年进行修订并重新颁布。该标准可以帮助组织评价软件研制能力,并实施评估和改进组织的软件过程。GJB5000A是一个软件组织对软件开发过程进行控制并提供渐进过程的模型指南。体系结构由软件成熟度等级、过程域、过程能力和关键过程构成。成熟度模型有5个等级22个过程域构成,模型等级从最高级至初级划分为优化级、已定量管理级、已定义级、已管理级、初始级,其中二级包含7个过程域,三级增加到了11个过程域、四级增加了2个过程域,五级又增加了2个过程域。过程域又分为4类,分别为项目管理类、过程管理类、工程类和支持类,其中项目管理类覆盖6个过程域,过程管理类覆盖5个过程域,工程类覆盖6个过程域,支持类覆盖5个过程域。
2 软件确认测试方法
2.1 静态测试
静态测试是指不运行程序,通过人工对软件程序和文档进行分析与检查。静态测试的主要方式有人工审查、符号执行、需求确认等。软件系统确认测试的静态测试主要是对被测软件的需求规格书文档等进行静态测试,目的是满足安全软件需求规格书的可测试性、正确性、一致性、完备性、向前和向后的追溯性要求。静态测试需满足以下准则:系统功能的可行性、软件的可测性、系统需求的测试覆盖率、所用测试方法与标准的适合性、对预期结果的依从性、运行和维护的可行性。
2.2 动态测试
动态测试是指通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。软件系统确认测试的动态测试,一般包括概率测试、过程仿真、建模、功能和黑盒测试(black-boxtesting)。其中:功能和黑盒测试是软件确认测试的必要测试方法,其余测试方法均适用于安全要求较高的软件;而概率测试主要适用于安全要求最高的软件(如核级安全软件件)。黑盒测试又称功能测试、数据驱动测试或基于软件需求规格说明的测试。在完全不考虑程序内部结构和内部特性的情况下,仅依据程序功能的需求规格书确定测试用例和推断测试结果的正确性。概率测试的目的是为了得到被测软件的可靠性属性的定量数值。该定量数值与置信度的要求密切相关,并能给出每一个功能要求的一个失效概率、在某一时段的一个失效概率和错误控制的一个概率。概率测试的用例选择方法有:随机选择、依概率大小选择、选取特殊状态插入到序列中、用区间估计的方法对总体进行抽样测试、直接在期望值附近抽样取值、基于马尔可夫链的序列选择等。这些方法各有如下优势。①在输入域内选择随机的均匀分布的测试数据。②可靠性预测,通过测试软件来预测软件的使用性能。③自动生成测试用例,通过软件测试工具和编制程序自动生成测试序列。
期刊文章分类查询,尽在期刊图书馆④通过对软件的量化处理,序列中每个操作都有明确的概率。
3 军用软件自动化测试
3.1 自动化测试运行环境
为了提升自动化测试技术,建议从自动化工具运行环境进行优化。首先,让软件运行解除特殊硬件设备的绑定。分析软件的运行环境,完善所有程序覆盖率信息统计,实现对被测目标文件的有效性分析。此时,若分析结束,就可以直接利用覆盖率信息数据,实现了软件自动化、监控管理运行。
3.2 自动化测试流程
自动化测试能降低测试成本,提高产品运行质量,因此该技术具有较好的发展前景。由于测试阶段不同,传统的软件自动化测试可分为“需求测试”、“设计测试”、“单元测试”、“集成测试”、“确认测试”、“系统测试”几个方面。针对单元测试而言,其代表着软件基本组成单元的运行测试,能够测试各个单元组成是否符合性能需求和可行性需求,因此单元测试也被称之为模块测试。该阶段测试的目的是最大限度地检测程序错误。集成测试也被称为联合测试,其测试的对象是由若干个单元组成融合的子系统。在实现单元测试后,其能够保证系统的正常运行。而测试中常见问题有接口数据丢失、系统数据出错等。确认测试的目的是检验软件可运行性。因此也常被称之为“可行性测试”。该阶段是检测软件性能是否符合客户需求的重要阶段。系统测试是在基于集成测试和确认测试后,对软件各个系统接口进行的统一测试,其目的是检测系统和其他设备之间的兼容性和系统建设目标一致性。
3.3 自动化测试技术
软件测试技术体现在以下三个方面,一是对目标环境测试。测试人员利用手工测试方式,对真实的终端进行测试,但是此方式并不自动化,且耗时耗力。二是非侵入式自动化测试,其通过交叉测试方式,实现对所有内存文件和程序实施测试,能够克服环境和程序内存影响。三是宿主环境测试,这种方式通过建立模拟数字化环境,对软件进行运行测试,不过这项方式在运行时候会受到外界环境干扰,且其测试结果并不能真实反应后期运行效果,因此该项测试也仅仅是作为数据参考和模拟分析,适合软件开发人员使用。
4 军用软件测试过程的质量监督
4.1 控过程,增强质量监督效果
军用软件测试过程的质量监督非常重要,需要严格把控,注重质量监督的效果。要强化专项监督,使基本要素受控。要重视软件产品质量历史状况与数据,找出自身薄弱环节和隐患所在,有针对性地选取若干监控要素,现场重点监督验证,强化软件测试的过程质量意识,确保软件质量。
4.2 严把关,确保软件测试质量
要遵循测试程序。软件的测试既是对产品自身质量的一次测试,更是对软件质量工作的一次把关。基于此,我们应该严格地按照规范及标准的要求,按程序和步骤监督测试的各项工作。测试前,要认真学习需求技术文件,熟悉相关标准要求;测试中,要按规范一丝不苟地认真监督,把控测试过程,审查测试记录数据;测试后,会同测试单位召开总结会,通报测试结果,总结经验教训,为下一步的质量控制提供依据。要吃透标准。即要对军用软件测试标准烂熟于心,对测试规范了然于胸,如此方能做到驾轻就熟,确保软件测试质量。
结束语:
军用软件自动化测试具有效率高、能快速全面地实行回归测试等特点,因而正在成为军用装备中主要的软件测试方法之一。尽管如此,军用软件自动化测试还不能解决软件潜在的所有问题。21世纪是质量的世纪,武器装备的快速发展,对军用软件设计开发和测试质量监督工作提出了更高的要求。
参考文献:
[1]中国人民解放军总装备部司令部.军用软件测试指南:GJB/Z141-2004[S].北京:总装备部军标出版发行部,2004.
[2]中国人民解放军总参谋部军事代表局.军用软件质量监督要求:GJB4072A-2006[S].
[3]朱少民. 软件测试方法和技术(第2版)[M].北京:清华大学出版社,2014.
论文作者:杨晓伟
论文发表刊物:《当代电力文化》2019年第04期
论文发表时间:2019/7/15
标签:测试论文; 软件论文; 过程论文; 程序论文; 质量论文; 概率论文; 需求论文; 《当代电力文化》2019年第04期论文;