ImageVerifierCode 换一换
格式:DOC , 页数:2 ,大小:16KB ,
资源ID:6062636      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6062636.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++test静态分析之BugDetective.doc)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

C++test静态分析之BugDetective.doc

1、1、准备工作1. BugDetective 的原理BugDetective 是一类新的静态分析技术,该技术使用了几种分析技巧,包括模拟应用程序执行路径,以识别可能触发运行时缺陷的路径。检测到的缺陷包括,使用未初始化的内存、引用空指针、除数为零、内存和资源泄漏。由于该分析涉及到识别和跟踪复杂路径,它会暴露通常可逃避编码规则静态分析和单元测试的错误,这些错误难以通过手动测试或检查找到。对于那些具有遗留代码库和嵌入式代码(这些情况下,此类错误的运行时检测效果较差或根本不可能)的用户而言,BugDetective 可在不执行代码的情况下显露错误的功能,就特别重要。BugDetective 独特的静态分

2、析通过搜索代码中的 “可疑点” ,开始分析正在测试的源码。可疑点是潜在的错误点。这些可疑点在 BugDetective 规则中被定义。只要识别了可疑点,BugDetective 就调查导致该可疑点的可能执行路径,并检查是否有任何确实违反BugDetective 规则的路径存在。如果找到了这样的路径,就报告一个违例。例如,检测可能的“除数为零”情形的规则就规定,任何使用了“/“ 或“%“ 运算符的点都是可疑的。然后它检查分母中的变量,在导致它为零的任何可能执行路径的点中,是否能保持零值。如果是的话,则会报告一条错误。对于每个发现的错误,分层结构流路径数据都会详细准确地列出导致被识别错误的完整执行

3、路径,并以显现出错误的那一代码行作为结束。为减少每个被发现问题的诊断和纠正所需要的时间和工作量,流路径详细信息还会补充扩展注释(例如,一条关于“避免引用空指针”违例的描述就包含这样的注释,描述哪些变量、在流路径的哪一点包含 null 值) 。为使分析过程更灵活、更适合于项目的独特要求,可以参数化某些规则。因此,BugDetective 甚至可以用来检测与特定的 API 使用相关的违例。2. BugDetective 的功能Parasoft 的静态代码分析技术支持基于数据流以及基于模式的这两种静态代码分析方法。Parasoft 的这种基于数据流的静态代码分析技术被称为 BugDetective,

4、它能方便地为用户检测出跨越多个方法、类或者文件的运行时问题以及程序不稳定性因素(诸如空指针引用、数组越界、除零、SQL 以及其它注入、资源泄漏以等) 。通过在应用程序甚至是相当复杂的应用程序(包含跨越多个方法、类和/或文件并且含有多个顺序调用路径的程序)中自动追踪及模拟其路径,BugDetective 能及时发现很多程序中的缺陷,若通过人工测试的方法来查找这些缺陷是相当困难且耗时的,并且若将问题留到程序发布时来修改,往往会耗费巨大的资源。使用 Parasoft BugDetective,开发者能在早期发现、诊断并且修复基于模式的静态代码分析和/或单元测试所不能检测到的软件错误。在早期发现这些缺

5、陷能节省软件开发过程中花在诊断以及可能的重复工作上的大量时间。3. 导入待测工程BugDetective 测试的项目非常多,以选取除零作为例,按照前面的方法导入 divisionByZero工程。二、C+test 静态分析之 BugDetective1.配置 BugDetective(1)在 C+test 下拉菜单下选择 “Test Configurations(测试配置) ”,如图 2-1 所示。(2)在出现的窗口左侧,展开 Static Analysis(静态分析)文件夹,右键单击BugDetective,选择 Duplicate(副本) ,此后在 User-defined 文件夹下会出现

6、BugDetective,如图 2-2 所示。(3)选择 User-defined 文件夹下的 BugDetective,在右边面板中选择 Static,根据需要选择测试规则,在此选择 Possible Bugs 下的 Avoid division by zero,单击 Apply,然后单击Close,如图 2-3 所示。2.运行 BugDetective(1)右键单击工程名 divisionByZero,选择 C+test-Test Using-User-Defined-BugDetective,如图 2-4 所示。(2)运行 BugDetective 过程,如图 2-5 所示。3.查看运行 BugDetective 的结果(1)选择 C+test 面板查看测试结果,如图 2-6 所示。(2)双击 divisionByZero.c(18):p-daysWorkedInPassedMonth = 0,显示出错源代码的位置,如图 2-7 所示。(3)将 p-daysWorkedInPassedMonth = 0 改为 p-daysWorkedInPassedMonth = 1,保存后在测试,既不会再提示该错误lilycheng

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报