- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
基于Insure++的软件内存使用测试
?
?
论文导读:0引言软件测试是信息系统开发过程中不可缺少的一个重要步骤,随着信息技术的发展,软件变得日益复杂,软件测试也变得越来越重要。2Insure++运行环境2.1运行平台Insure++支持多种MSWindows和Unix平台(包括某些64位平台)。3两种基本工作模式3.1监护模式监护模式不需要任何重新编译和链接或改变环境变量,直接检测现有的执行程序,包括:检查一个进程所产生的所有数据内存引用,检测并报告读取未初始化内存、内存读写越界和内存泄露等分配错误,检测未释放的内存块。
关键词:Insure++,软件测试,内存
?
0引言软件测试是信息系统开发过程中不可缺少的一个重要步骤,随着信息技术的发展,软件变得日益复杂,软件测试也变得越来越重要。软件测试的工具是提高测试效率的重要手段,也是软件理论和技术发展的重要标志。本文将介绍一种针对C/C++程序代码进行自动检测的白盒测试工具Insue++。
1Insure++简介Insure++是美国Parasoft公司出品的一个针对C/C++应用的运行时错误自动检测工具,能够快速准确地指出算法异常、程序错误和缺陷。主要特性如下:
·检测众多不同类型的错误,如内存破坏、内存泄露、内存分配错误、变量初始化错误、变量定义冲突、指针错误、库错误、逻辑错误和算法错误等等;
·精确定位引起内存泄露的代码位置,不仅是泄露的内存位置;
·支持所有流行的编译器,如CC、gcc和acc等等;
·能够检查第三方库和函数以及非C语言所写的模块接口。
2Insure++运行环境2.1运行平台Insure++支持多种MSWindows和Unix平台(包括某些64位平台)。
·WindowsNT/2000;
·UNIX,包括:DEC(Alpha4.x,TruUnix645),HP(HPUX10.x11.x),IBM(AIX4.3.x),Linux(glibc2.2.4orhigher),SGI(Irix6.5),Solaris/Sparc(7,8)以及Solarisx86(7,8)。
2.2编译器Insure++支持各种流行的编译器。
·Windows:集成于VisualC++6.0;
·UNIX:包括CC、gcc和HPC++等编译器。
3两种基本工作模式3.1监护模式监护模式不需要任何重新编译和链接或改变环境变量,直接检测现有的执行程序,包括:检查一个进程所产生的所有数据内存引用,检测并报告读取未初始化内存、内存读写越界和内存泄露等分配错误,检测未释放的内存块。
当监护模式下检测到不正常的行为,Insure++报告一个错误信息,指出错误的类型和出现的地方。不正常的行为包括任何对逻辑上未分配区域的存取,读(或更新)已分配但尚未写入的字节,以及malloc/free使用问题,如试图两次释放同一内存块。
3.2源码插入模式3.2.1变异测试变异测试的本意是建立更有效的测试数据。通过建立更有效的测试数据,测试人员会更有把握是否对程序进行了充分测试。免费论文参考网。传统的变异测试方法首先建立程序的多个版本,每个版本是一个“变形”以引入一个故障。这些“变形”程序然后运行对应的测试数据,每当一个测试数据导致一个故障版本失败,该变形程序的使命就结束了,并且将该测试数据保存下来。当所有的变形程序完成后,保存的测试数据就组成了一个测试数据集合,用于测试原来的程序。这种方法对建立测试数据非常有用,但很繁琐,同时对于在原始程序中找出错误帮助不大。
Insure++采取全新的变异测试方法,将焦点从测试数据转移到程序本身,建立多个“等价”(而非“故障”)变形版本。这种技术能够进行更有效的错误检查,并能发现源代码中可能存在的多义性,然后Insure++的源码加工(SCI)专利技术提供深层次的调试信息,使得开发人员能够快速、方便地发现和改正错误。
不同于传统的故障变异测试,“功能等价”的变形版本在检测错误时就像源代码一样运行。“等价变形版本”期望的是通过,而不是失败。如果原始程序是正确的,那么变形版本就不取消;如果某变异版本被取消掉,则意味着原始程序中存在一个错误必须被改正,同时自动报告故障及相关代码行。
3.2.2运行时指针跟踪该技术使用一个有关指针和内存块的综合数据库检查对内存的每一次读写操作。当执行诸如malloc、new、delete和free等内存管理指令时,Insure++更新内存使用数据库,精确性跟踪对所有内存段的内存存取操作,其结果是不但能检测到内存错误,还能指出何时、在哪一行代码上造成了这个错误。免费论文参考网。
4测试实例分析4.1内存引用错误实例1,考虑下列C程序:
1:/*
2:*File:hello.c
3:
您可能关注的文档
- 传承红色文化精髓探索特色德育新途径.docx
- 加强土木工程施工管理的措施探讨.docx
- 丹参川芎嗪联合注射用磷酸肌酸钠治疗心梗后心衰的疗效观察.docx
- 加强农业水利水电工程施工管理切实减少灾害发生几率.docx
- 存款保险制度的国际比较及我国的路径选择.docx
- 共享经济对中国旅游产业创新发展的影响.docx
- 兵团产业结构与经济规模关系的实证分析-格兰杰因果检验.docx
- ZYJ7型电动液压道岔的常见故障和处理策略.docx
- 加氢裂化工艺技术特点和开发现状.docx
- 医院外科病房的护理管理.docx
- 《中国通史》文字稿第12集春秋争霸.docx
- java教程--类与对象-讲义课件(演讲稿).ppt
- Vue应用程序开发-(1).pptx
- 东北师大版社劳动实践与评价指导手册一年级上册主题二活动一寻找五彩的树叶课时课件.pptx
- 外研版英语四年级上册 Module 4 Unit 2 How much is it单元教学设计.docx
- 外研版英语四年级上册Module 4 单元整体教学设计.docx
- 6《上课之前》课件 鄂科技版 心理健康教育一年级.pptx
- 《1~5的认识》说课课件(共25张PPT)人教版一年级上册数学.pptx
- 六《解决问题(1)》说课课件 人教版 三年级上册数学.pptx
- 七《解决问题》说课课件 人教版 二年级上册数学.pptx
文档评论(0)