软件测试在军用软件质量管理中的应用分析

网友投稿 1153 2022-11-16

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

软件测试在军用软件质量管理中的应用分析

1 引言

随着武器装备的信息化程度不断提高,软件的“核心地位”和“中枢神经”作用也日益突出。统计数据显示,现代武器装备90%以上的功能通过软件实现,军用软件正呈现出多样化、复杂化和智能化等特点,在提升信息能力方面扮演着越来越重要的角色,其质量直接影响着军事指挥和武器装备作战效能的发挥。为确保军事装备能够最大限度地发挥其作战效能,提高军用软件质量管理水平已经成为一项十分紧迫的任务。

软件测试是提高软件产品质量的有效手段,从20世纪70年代就在软件行业得到广泛应用。目前,软件测试已发展成为一个独立的专业学科。根据有关数据,通过使用正确的软件测试方法,软件产品的缺陷数至少降低80%。在微软等大型软件公司,软件测试人员与程序员的比例为1:1,甚至达到2:1。

为了规范军用软件测试工作, 1995年总装备部就发布了《GJB 2423 军用软件测试与评估通用要求》军用标准,2004年又更新为《GJB 141 军用软件测试指南》,明确了军用软件测试的内容、方法、程序和要求,有效的保证了军用软件的质量。但随着军用软件开发规模不断扩大、应用范围不断增加,对软件质量管理提出了新的挑战,对软件测试工作提出了新的要求。

2 军用软件测试存在的主要问题

目前,随着军用软件种类、功能和复杂性的增加,软件测试在各开发单位越来越受到重视,对确保军用软件质量、提高软件可靠性起到了积极的促进作用。但由于大部分开发单位的软件测试起步较晚,测试技术落后,专业测试人员匮乏,测试管理不完善,与军用软件质量管理的要求还有较大差距,存在许多亟待解决的问题。

(1)对软件测试的认识不充分,简单的将软件测试等同于验收测试。软件测试是一个贯穿于整个软件开发过程的系统工程,测试工作应在需求分析和系统设计阶段就开始展开。但部分开发单位的软件测试工作是在编码完成之后和软件产品交付运行之前进行,主要针对成型软件产品开展验收测试,无法及时发现软件单元和组件内部的错误,并且发现错误返回修改的代价也相当高昂。有关数据表明,如果在验收阶段才发现内部错误,其修改代价是单元测试阶段发现错误的300到400倍,并且许多错误还会因修改代价过高而被有意忽略,从而带来更大的隐患。

(2)软件测试管理的水平不高、随意性大,专业管理人员紧缺。有关数据显示,软件测试成本已占到软件开发总成本的40%以上,并且应在软件开发的初期就进行测试设计,剪裁测试标准,制定测试计划,规范测试流程,明确测试重点,分配测试资源。因此,高水平的测试管理人员是决定测试工作效果的关键因素。由于目前各单位普遍缺乏专业测试管理人员,测试工作普遍缺乏系统分析和整体设计,测试人员往往根据自己的理解和经验来决定取消或增加测试的步骤,并且测试管理人员也不能明确当前测试进行的状态,给测试工作带来了极大的随意性和不确定性。

(3)测试技术和测试手段单一,缺少自动化测试工具。先进的测试技术和自动化的测试工具能够有效提高测试的质量和效率,这也是确保软件质量的重要条件。受经费投入的限制,绝大部分单位主要采用人工测试的方法,测试效率低、覆盖率有限,无法充分发现软件中存在的问题和错误。缺乏自动化的测试数据管理工具,对测试过程中发现的软件缺陷缺少数据库管理手段,不能对发现问题及时进行统计、分析和处理,导致新旧问题混杂,问题修改后也无法及时进行验证,软件质量无法保证。

3 对策与分析

军用软件测试是一项跨部门、覆盖多学科、涉及多技术领域的复杂系统工程。要有效解决存在的困难和问题,就必须根据软件项目的自身特点,运用系统工程方法,建立综合解决方案。

3.1 推进软件测试队伍专业化建设

要根据软件测试的专业特点,建立以专业人员为骨干的软件测试队伍,负责从需求分析到交付用户的全寿命周期测试组织与管理工作。要随着软件生命周期各阶段的转换,及时调整软件测试人员组成。在需求分析阶段,测试人员应由项目管理者、系统分析员和软件测试管理者参加,负责对软件的需求进行审查,确保需求的正确性;在系统设计阶段,测试人员应由项目管理者、系统分析员、系统设计员和测试管理者参加,对软件的体系结构、功能结构和数据结构等进行审查,确保设计的正确性;编码阶段则由测试管理人员、程序员和测试人员组成;最后的验收阶段则全部由测试人员组成。

3.2 加强专业测试手段应用

测试手段包括测试工具和测试方法两部分,采用先进的软件测试手段是提高军用软件测试工作质量和效益的根本途径。在测试工作中,要根据不同的系统架构采用相应的测试工具。例如对于B/S结构应选择对客户端并发操作、网络性能和服务器端数据库压力进行测试的工具,C/S结构应选择对分布式事务的处理逻辑、系统输入边界条件等进行测试的工具。同时,还要根据不同系统要求采用相应的测试方法。例如,对于安全和抗毁性较高的作战软件就要加强对系统的恢复性测试、安全性测试和强度测试;对于实时性、界面友好型要求较高的仿真训练软件就要加强网络通信测试和UI界面测试。软件测试要贯穿问题定义与规划、需求分析、软件设计、程序编码、运行维护等软件生命周期全过程。通过利用专业测试工具对软件生命周期的各阶段所形成的体系结构模型、功能结构模型、业务流程模型和数据流程模型等以形式化的方法和工具进行模型检测,尽早地发现需求和设计中的错误,不仅可有效提高软件质量,还可大大减少软件开发成本。

3.3 大力建设专业软件测评中心

在软件测试过程中,测试人员自身素质和测试工具质量将直接影响软件产品质量。受单位规模和经费所限,绝大部分军用软件研制单位无法建立专业的测试人员队伍,也无力承担昂贵的专业测试软件。软件测评中心作为从事软件测评工作的第三方专业机构,具有专业化程度高、工作效率高、过程管理水平高的显著优势,可以建设高质量的测评管理体系、专业化的测评人员队伍和高水平的软硬件测试环境,不仅可以承担各类测试任务,还可指导协助各软件开发项目组开展测试工作。因此,各单位可以从自身情况出发,建设本单位的软件测评中心或专业软件测评中心开展合作,提高软件测试工作的专业化、正规化水平,有效评价软件产品的质量情况,满足军用软件产品质量管理的要求。

上一篇:软件性能测试方法
下一篇:软件开发的性能测试与研究
相关文章

 发表评论

暂时没有评论,来抢沙发吧~