华唐产品 | 解决方案 | 技术支持 | 成功案例 | 下载中心 | 培训中心 | AEP理论中心
 >  首页 > 产品
华唐产品导航
  高频EDA设计仿真工具
  自动化软件测试工具
   
C/C++测试
   
  C++test
  Insure++
  CodeTEST
  VectorCAST
   
Java测试
Web应用测试
WEB服务测试
.NET测试
  软件开发工具
  仿真器
  数字建模系统
  协议一致性测试
  无线网桥
     

 

变异测试:一种自动错误检测的新方法

介绍

    变异测试(Mutation Testing)是发现软件错误的一种强有力方法。在今天以前没有工具能够将这种先进的技术带给程序员。Insure++是错误检测领域中第一个也是目前唯一实现了创新的变异测试方法的自动工具。

什么是变异测试?

    变异测试在计算机科学界已经闻名多年了。其方法是“重写”源代码(因此得名变异)以消除代码中可能存在的多义性或模糊性。如果开发人员不能检查出并改正这种多义性,则可能导致软件故障。但这些故障通常是非常微妙的,它们能够轻易地通过传统的测试/调试过程而到达用户手上。

    变异测试虽然很好,却极为复杂,如果没有工具支持需要消耗大量的时间。工具的匮乏使得变异测试技术未能商业化,因此在研究领域之外它还尚未被广泛使用。研究人员的长期目标是一个高效且使用方便的自动测试系统。随着Insure++ v4.0的发行,这一技术取得了突破性的进展,它将变异测试自动地结合到错误检测技术中。现在任何软件开发人员和测试人员都能享受到这一最强大的错误检测能力,以及高效和易于使用的自动化运行时调试工具。

变异测试的传统方法

    变异测试的本意是建立更有效的测试数据。通过建立更有效的测试数据,测试人员会更有把握是否对程序进行了充分测试。

    传统的变异测试方法首先建立程序的多个版本,每个版本是一个"变形"以引入一个故障。这些"变形"程序然后运行对应的测试数据,每当一个测试数据导致一个故障版本失败,该变形程序的使命就结束了,并且将该测试数据保存下来。当所有的变形程序完成后,保存的测试数据就组成了一个测试数据集合,用于测试原来的程序。

    这种方法对建立测试数据非常有用,但很繁琐,同时对于在原始程序中找出错误帮助不大。Insure++采取全新的变异测试方法,将焦点从测试数据转移到程序本身,这种改变使得Insure++能够发现原始代码中存在的错误。

创新的变异测试技术

    Insure++采用创新的变异测试方法,建立多个“等价”(而非“故障”)变形版本。这种技术能够进行更有效的错误检查,并能发现源代码中可能存在的任何多义性。然后Insure++的源码加工(SCI)专利技术提供深层次的调试信息使得开发人员能够快速而方便地发现和改正错误。

    在检查时,Insure++对原始程序进行语法分析并转换成一个新的功能等价的源代码。该等价的代码作为一个临时文件提交给编译器。(值得注意的是,Insure++并不修改原始程序,也不需要用户增加额外的工作。整个过程是完全自动的并且对用户透明。)

    当所有源文件已经“变形”成等价代码后,它们就可以编译连接成可执行文件,能够用于运行时错误检测了。

    在检测错误时,“功能等价”的变形版本就象原代码一样运行。而不象故障变异测试,"等价变形版本"期望的是通过,而不是失败。如果原始程序是正确的,那么变形版本就不取消;如果某变异版本被取消掉,则意味着原始程序中存在一个错误必须被改正。通过这种方法,Insure++能够发现其它方法或工具所无法检测到的代码多义性。

    一旦发现错误,Insure++自动报告故障及相关代码行。提供调试信息是Insure++与其它传统的变异测试方法最大的差别,这也正是开发人员的关心所在。Insure++的SCI技术使得它能够正确定位和报告程序执行中发现的错误。

    Insure++变异测试方法的附带好处是用户可以根据自己的需要控制变形版本的数量。用户能够为任何代码建立等价变形版本,从单个函数到整个项目。当然,建立越多的变形版本,错误检测越充分。

    新的变异测试方法使得Insure++能够达到研究人员期望的高效和方便的目标。更多的调试信息则显著提高了调试效率,检测过程的完全自动化大大方便了用户的使用。

变异测试的好处

    变异测试对软件开发人员来说将错误检测提高到一个全新高度。这一强力方法能够发现代码中的多义性或不正确性,而在以前要做到自动检测是无法想象的。通过将变异测试技术结合到最先进的错误检测手段,Insure++能够比任何其它工具发现更多的软件缺陷。

    使用Insure++的软件开发和测试人员将从变异测试中获得巨大好处,Insure++能够比任何其它工具自动报告更多的错误,同时正确而详细的错误诊断信息将使得调试和维护工作更快捷更方便,从而保证软件具有更好的可靠性和稳定性。

 

数据清单

产品概述
产品特性
系统要求
演示
PDF文档

Insure++视频介绍
Insure++视频演示

n 加速开发软件过程
n 变异测试:一种自动错误检测的新方法
n Threads++:多线程错误检测
n TCA:测试覆盖性分析
n Inuse:优化内存使用
n Insure++:自动化的运行时错误检测工具

v C/C++解决方案

试用软件下载
  试用须知

查看Insure++原厂商美国Parasoft公司介绍

 

 

版权所有 深圳市华唐软件技术有限公司   粤ICP备06057501号