基于模型的软件测试技术探析论文

时间:2021-08-31

  摘 要:近年来,随着科技信息的快速发展,软件的功能性和复杂性增强,软件测试与可靠性评估的难度逐步加大。笔者主要分析了现在广泛应用的面向对象软件开发技术和软件自动化测试技术的现状,总结了基于模型的软件测试特点及不足,并简单介绍了基于模型的软件测试流程。

基于模型的软件测试技术探析论文

  关键词:软件产业;模型;测试流程

  软件产业在国家信息化,工业化进程中发挥越来越重要的作用,是推动我国经济社会发展的基础性、战略性和先导性产业。保障软件质量,维护国家和社会信息安全已是国家必须解决的重点问题。进行软件测试是保证软件质量的关键阶段,是保证软件生存期的重要步骤。软件测试,即在软件正式投入运行前,对软件需求分析、设计规格说明和编码进行最终复审的活动。其目的是为了检验软件系统是否满足需求并针对发现的问题进行改进。 目前,我国软件质量测试研究中,对软件质量测评模型与测试数据自动生成方法的研究,已经成软件工程领域的研究热点。基于模型的软件测试方式是软件编码阶段的主要测试方法,通过故障排除法,检测软件质量,具有运行速度快,效率高、检测性能佳等特点。但是也存在误报、漏报和故障机理等程序问题。笔者通过分析国内外软件质量相关技术现状,对基于模型的软件测试技术特点和存在的主要问题进行了分析,阐述了基于模型的软件测试流程。

  1 国内外软件质量相关技术现状

  近几年,国家对软件安全问题越来越重视,不少高校和国家研究机构从事软件测试研究,通过借鉴国外先进理论和引进技术,结合我国软件质量问题,基于模型的软件测试技术得到了快速发展并应用到实际测试中。但是还是远远落后于国外软件测试技术,一方面,在欧美发达国家,软件测试工作是一个非常独立的职业,是软件质量控制必不可少的环节;在我国,很多软件企业软件测试工作只停留在单元测试,功能测试等环节,甚至根本不进行质量测试,专业的测试工作人员所占比例小;另一方面,我国软件产业质量较低,软件测试标准化、规范化操作尚未形成,而软件测试的通用化、网络化和智能化水平与国外相比,更是相差甚远。

  2 模型的软件测试技术特点

  2.1 软件测试评价一体化

  基于模型的软件测试技术根据被测试应用程序的分析设计模型,自动生成测试模型、产生测试用例和进行测试结果评价。

  2.2 软件测试自动化水平及测试效率高

  基于模型的软件测试在测试过程中,首先提高了软件测试效率,减少了测试人员的工作量;其次在软件成本降低的同时,软件产品质量提高了;最后,可以随时生成各种统计数据,提高高层监控整个软件测试过程的能力。

  2.3 有效解决了测试失效辨识问题

  基于模型的软件测试技术是对其他软件测试技术的有效补充,往往能发现其他测试技术难以发现的故障,尤其是对逻辑复杂故障测试效果好,保障了软件质量。

  3 模型的软件测试存在的主要问题

  模型的软件测试工作是一项具体且全面的工作过程。首先,工作人员方面,不仅需要测试人员具备一定的理论基础,还要掌握相关工具使用方法。其次,在实际应用过程中,我们发现基于模型的软件测试技术存在不少软件质量问题,尚不能取代已有的其他测试技术,还需从事此行业的工作人员进一步研究和实践,更好的补充其他测试技术不足之处。以下简述了存在的几个主要问题并进行了简要分析。

  3.1 误报问题

  误报问题是系统没有发生故障而报警,误报信息是模型的软件测试技术普遍存在的问题。这是由于一些故障的发生和确定是在动态的信息执行中形成的,而基于模型的软件测试技术大多是静态分析技术,误报问题在静态分析的测试工具工作中是不可避免的。以下以OCL在建模的进程调度系统中的静态模型为例,见图1。 图1 静态模型 上图是对系统的静态描述,虽然可以形成所需模型,但是显然对该系统的描述还是不精确的。我们知道,处在就绪状态的进程和等待进入就绪状态的进程集合之间是不相交的,而系统中始终只能有一个处于活动状态的进程,活动进程与前两个进程也不会发生集合。这样,静态图的生成并不是准确的,误报问题由此产生。现在不少高校和研究所将动态测试与静态测试进行互配测试,以期解决测试中的误报问题。

  3.2 漏报问题

  漏报是指系统发生了故障而没有报警,是系统故障中又一常见问题。基于模型的软件测试是由模型定义和模型检测算法进行软件质量测试的,由于模型定义和模型检测算法在具体软件模型检测中存在差异,漏报问题也是不可避免。 我们知道,由于模型定义是由故障本身及所用工具决定的,而软件模型多种多样,测试工具因模型变化,具体的模型所用的检测工具在设计过程中从检测的效率性和降低软件复杂性出发,都会设计形成自己认为最简便合理的检测算法,这样就形成了软件检测中普遍存在漏报问题,即使是相同的模型,由于检测工具的差异,导致检测故障结果也存在差异性。