模型驱动的软件测试技术

发表于:2011-11-11 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:蒋发群    来源:51Testing软件测试网采编

  一、引言

  模型驱动的软件测试(Model-Driven Test)技术是针对软件中的一些常见的软件模型而提出的一种测试技术,如故障模型、安全模型、死锁模型等。模型驱动的软件测试以明确描述系统预期行为的抽象模型为依据,根据模型覆盖测试准则自动生成抽象的测试用例,自动地产生测试脚本,执行测试并自动评价测试结果,从而有效提高测试效率。这一技术正成为当前软件工程学术界研究的一个重要方向。

  近年来,基于模型的软件测试技术得到快速的发展,大量的软件测试工具被研制出来从而可以自动地检测软件中的故障,并且在对一些大型商业软件和开源软件的测试中发现了大量的以前测试没有发现的软件故障和安全隐患。

  二、模型驱动的软件测试技术的特点

  与其他测试技术相比,基于模型的软件测试技术具有如下特点:

  (1)故障模型根据被测试应用程序的分析设计模型及其生成测试模型、产生测试用例和进行测试结果评价。

  (2)大大提高了测试自动化水平以及测试效率。

  (3)部分解决了测试失效辨识问题,往往能发现其他测试技术难以发现的故障,保证了软件质量。

  (4)有利于测试用例的重用,并可以应用成熟的理论和技术获得比较完善的分析结果。

  三、软件模型分类

  软件模型是对软件行为和软件结构的抽象描述。软件模型通常可以分为以下7 类:

  (1)故障模型

  故障模型主要是会引起错误的常见软件模型, 应该尽量避免, 如内存泄漏故障(MLF) 、使用空指针故障(NPDF) 、数组越界故障(OOBF) 、非法计算类故障(ILCF) 、使用未初始化变量的故障(UVF) 、不完备的构造函数故障(ICF) 以及操作符异常故障(OAF) 等。

  (2)安全漏洞模型

  安全漏洞模型为他人攻击软件提供可能。而一旦软件被攻击成功,系统就可能发生瘫痪,所造成的危害可能更大。因此,此类漏洞应当尽量避免,如:缓冲区溢出漏洞模型、被感染数据漏洞模型、竞争条件漏洞模型等。

  (3)差性能模型

  该模型在软件动态运行时效率比较低下,因此建议采用更高效的代码来完成同样的功能。这类模型主要包括调用了不必要的基本类型包装类的构造方法、空字符串的比较、拷贝字符串、未声明为static 的内部类、参数为常数的数学方法、创建不必要的对象以及声明未使用的属性及方法等。

  (4)并发故障模型

  该模型主要是针对程序员对多线程的编码机制不十分了解,对各种同步的方法、Java 存储器模型和Java 虚拟机的工作机制不是很清楚,而且由于线程启动的任意性和不确定性使用户无法确定所编写的代码具体何时执行而导致对公共区域的错误使用,如死锁等。

  (5)不良习惯模型

  该模型主要是由于程序员编写代码的不好习惯造成的一些错误。包括文件的空输入、垃圾回收的问题,类、方法和域的命名问题,方法调用,对象序列化,域初始化等。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号