logo资料库

实验六:实验报告 白盒测试 - .doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
一 实验目的和要求
二 实验相关知识简介
三 白盒测试工具综述
四 心得
南京工程学院 上机实 验 报 告 课 程 名 称: 软件质量保证与测试 实验项目名称: 白盒测试 学生班级: 学生学号: 学生姓名: 指导教师: 实 验 时 间: 彭焕峰 2019.4.25 实 验 地 点: 图书馆 实验成绩评定: 2018-2019-2 学期
一 实验目的和要求 目的与要求: 1.通过上机实验加深对白盒测试的理解。 2.了解常用的白盒测试工具,并进行综述。 二 实验相关知识简介 白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻 辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆 盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径 覆盖。 三 白盒测试工具综述 1 JTEST JTEST 是 parasoft 公司推出的一款针对 java 语言的自动化白盒测试工具, 它通过自动实现 java 的单元测试和代码标准校验,来提高代码的可靠性。Jtest 先分析每个 java 类,然后自动生成 junit 测试用例并执行用例,从而实现代 码的最大覆盖,并将代码运行时未处理的异常暴露出来;另外,它还可以检 查以 DbC(Design by Contract)规范开发的代码的正确性。用户还可以通 过扩展测试用例的自动生成器来添加更多的 junit 用例。Jtest 还能按照现有 的超过 350 个编码标准来检查并自动纠正大多数常见的编码规则上的偏差, 用户可自定义这些标准,通过简单的几个点击,就能预防类似于未处理异常、 函数错误、内存泄漏、性能问题、安全隐患这样的代码问题。 工具名称: 价格: 主要功能: 优点: JTEST 昂贵 ◆静态代码分析 ◆自动化单元测试 ·白盒测试 ·黑盒测试 ·回归测试 1)使预防代码错误成为可能,从而大大节约成本,提高 软件质量和开发效率; 2)使单元测试——包括白盒、黑盒以及回归测试成为可 能; 3)使代码规范检查和自动纠正成为可能; 4)鼓励开发团队横向协作来预防代码错误。 1)通过简单的点击,自动实现代码基本错误的预防,这 包括单元测试和代码规范的检查
工具特征: 2)生成并执行 junit 单元测试用例,对代码进行即时检 查 3)提供了进行黑盒测试、模型测试和系统测试的快速途 径 4)确认并阻止代码中不可捕获的异常、函数错误、内存 泄漏、性能问题、 安全弱点的问题 5)监视测试的覆盖范围 6)自动执行回归测试 7)支持 DbC 编码规范 8)检验超过 350 个来自 java 专家的开发规范 9)自动纠正违反超过 160 个编码规范的错误 10)允许用户通过图形方式或自动创建方式来自定义编 码规范 11)支持大型团队开发中测试设置和测试 文件的共享 12)实现和 IBM Websphere Studio /Eclipse IDE 的安全 集成 2 JUNIT JUnit 是一个开源的 java 测试框架,它是 Xuint 测试体系架构的一种实现。在 JUnit 单元测试框架的设计时,设定了三个总体目标,第一个是简化测试的编写,这种简化包 括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第三个则 是可以利用既有的测试来编写相关的测试。 工具名称: 价格: 优点: 特征: JUNIT 免费 1)使用丰富的断言; 2)开发代码与测试代码分离; 3)某一个类的测试方法可以以较少的改动快速复用到另一个类 的测试。 4)JUnit 测试检验其结果并提供立即的回馈。 1) 撰写 JUnit 测试所费不多。 2) JUnit 测试提升软件的稳定性。 3) JUnit 测试是开发者测试。JUnit 测试是高度区域性(localized) 测试;用以改善开发者的生产力及程序代码品质。 4) JUnit 测试是以 Java 写成的。使用 Java 测试 Java 软件形成一 个介于测试及程序代码间的无缝(seamless)边界。 5) 使用方便。在你提升程序代码的品质时 JUnit 测试仍允许你更 快速的撰写程序 6)使用 JUnit 你可以快速的撰写测试并检测你的程序代码并逐步 随着程序代码的成长增加测试。
3 VcTester VcTester 由深圳市领测科技有限公司自主研发,专业服务于嵌入式白盒测试领域的 测 试 工 具 , 它 遵 循 第 4 代 白 盒 测 试 方 法 ( 4GWM , The 4th Generation White-box-testing Methodology),为有效实施针对 C 语言的单元测 试、集成测试与协议测试,提供系统化的测试解决方案。VcTester 仅支持 VC 平台下 C 源代码的白盒测试, 主要应用于通信设备、嵌入式手持终端、医疗器械等实时嵌入式产 品的源码级测试。 工具名称: 网址: 价格: 共享版特征: 商用版特征: VcTester http://www.eztester.com 共享版免费,商用版参考 http://www.eztester.com 1. 脚本化测试驱动 VcTester 使用 CSE 脚本语言编写测试用例, CSE 语言风格与 C 语言接近,简单易用,很容易上手。编写 CSE 脚本可读取全局变量、给变量赋值、调用函数等。 2. 脚本桩 被测目标机运行后,VcTester 允许用户定义一个脚本函 数,给被测 C 函数打桩,使运行中脚本函数替代 C 函数。脚本桩函 数中可编写特定的测试处理,或返回特定数值用于测试。 3. 在线测试 运行目标测试程序后,在线设计用例、运行用例,并 根据测试结果改进或添加用例,持续在线的进行测试。VcTester 这 一特性使单元测试过程更加简捷明了,所见即所得,操作过程更富 人性化。 4. 即时调测 VcTester 配合 VC 中的调试程序,可支持目标代码单 步调试,用户可借助 VC 设置断点,进行单步跟踪,同时,在测试 用例设计过程中,测试驱动与脚本桩都可以选中部分或全部来执 行。被测代码调试与测试脚本调试都是在线进行,可以即时的交叉 着调试。 5. 测试工程管理 支持直观的树状测试用例管理,支持 单用例、单测试集,或多用例、多测试集批量执行,支持命令行启 动全工程自动测试。 1. 支持符合第 4 代白盒测试方法的测试评估体系 商用版提供 LICC 与 LDCC 两种代码覆盖率统计,对测试设计程度也提供评估, 评估结果可以在线、直观的方式显示,还支持测试报告自动生成。 2. 调测一体,支持将调试操作自动转化成测试脚本 商用版的检视 器支持调试操作转脚本,该功能可以促进大家养成自发测试的习 惯,摆脱不自觉的被动测试状态,检视器还支持更强大的脚本桩功 能,如条件桩、PreCheck 与 PostCheck 定义等。 3. 提供集成化的工作平台,可大幅提高开发效率 商用版的源码与 测试用例在同一个 IDE 平台编辑、维护,以相同形式同时支持测试 脚本与源码的一体化调试,集成界面支持设置断点,进行单步跟踪。 4. 支持完善的测试消息构造与解析 商用版提供用户数据 UDT 编 辑器,可快速构造测试数据。商用版还提供通用消息编辑器、消息 解析器,可以自定义消息模板。 5. 支持测试设计重构 当被测代码有大幅调整,经过一次或多次重
构时,商用版支持快捷的测试设计重构,该功能可确保持续集成的 操作过程不因代码重构而断链。 4 CodeTest CODETEST 是 全 球 第 一 台 专 为 嵌 入 式 系 统 软 件 测 试 而 设 计 的 工 具 套 件 , CODETEST 为追踪嵌入式应用程序,分析软件性能,测试软件的覆盖率以及存储体的 动态分配等提供了一个实时在线的高效率解决方案。CODETEST 还是一个可共享的网 络工具,它将给整个开发和测试团队带来高品质的测试手段。 工具名称: 价格: 获取途径: 功能特色: CodeTest 每套约 30 万人民币 国内深圳市华唐科技有限公司代理 1. 性能分析 CODETEST 能够同时对多达 32000 个函数进行非采样 性测试,精确计算出每个函数或任务(基于 RTOS 下)的执行时间或 间隔,并能够列出其最大和最小的执行时间。对于每两个函数或任务 之间的调用也能够计数,从而确认出其中失败的调用。CODETEST 的 性能分析功能也能够为嵌入式应用程序的优化提供依据,使软件工程 师可以有针对性地优化某些关键性地函数或模块,以及改善整个软件 地总体性能。 2. 测试覆盖分析 CODETEST 提供程序总体概况,函数级代码以及源 级覆盖趋势等多种模式来观测软件地覆盖情况。由于 CODETEST 是一 种完全地交互式工具,测试者可以在对系统进行操作地同时追踪覆盖 情况。 CODETEST 覆盖率信息包括程序实际执行的所有内容,而不 是采样的结果,它以不同颜色区分运行和未运行的代码,CODETEST 可以跟踪超过一百万个分支点,特别适用于测试大型嵌入式软件。 CODETEST 还能够生成一个融合多种测试结果地综合性报告,以使测 试者看到整套测试地总体效果。 3. 动态存储器分配分析 在 CODETEST 诞生之前,动态地存储器分 配情况是难以追踪观测的。CODETEST 的分析能够显示有多少字节的 存储器被分配给了程序的哪一个函数。这样就不难发现那些函数占用 了较多的存储空间,那些函数没有释放相应的存储空间。测试者甚至 还可以观察到存储体分配情况随着程序运行动态的增加和减少,即 CODETEST 可以统计出所有的内存的分配情况。随着程序的运行, CODETEST 能够指出存储体分配的错误,测试者可以同时看到其对应 的源程序内容。 4. 执行追踪分析(TRACE) CODETEST 可以按源程序,控制流以及高级模式来追踪嵌入式软件。 最大追踪深度可达 150 万条源级程序,其中高级追踪模式显示的是 RTOS 的事件和函数的进入退出,给测试者一个程序流程的大框图;控 制流追踪增加了可执行函数中每一条分支语句的显示;源级追踪则又 增加了对被执行的全部语句的显示。在以上三种模式下,均会显示详 细的内存分配情况,包括在那个代码文件的那一行,那一个函数调用 了内存的分配或释放函数,被分配的内存的大小和指针,被释放的内 存的指针,出现的内存错误。
⑤C++ Test C++ Test 是 Parasoft 公司针对 C/C++的一款自动化测试工具,C++test 支持 编码策略增强,静态分析,全面代码走查,单元与组件的 测试,为用户提供一 个实用的方法来确保其 C/C++代码按预期运行。 C++Test 能够在桌面的 IDE 环境或命令行的批处理下进行回归测试。 C++test 和 Parasoft GRS 报告系统相集成,为用户提供基于 Web 且具备交 互和向下钻取能力的报表以供用户查询,并允许团队跟 踪项目状态并监控项目 趋势。 工具名称: 最新版本: 主要特性: 优点: 功能: C++ Test Parasoft C++ Test 9.6 1)在不需要执行程序的情况下识别运行时缺陷; 2)自动化代码分析以增强兼容性; 3)支持嵌入式和跨平台开发; 4)高度的可定制化; 5)提高团队代码走查的效率和全面性 6)为即时验证和回归测试提供自动化单元及组件测试 7)WindRiver®Workbench 和 ARM®RVDS 的 C++test 插 件 1)提高团队开发的效率应用全面的最佳实践集合以缩减测试时 间,降低测试难度,减少 QA 阶段遇到的错误。 2)在现有开发资源下完成更多任务自动解决琐碎的编码问题从 而更多的时间可被分配到需要人来解决的问题上。 3)可靠的构件代码高效地构造,可持续执行和全面的回归测试 套件以检测版本更新是否破坏既有功能。 4)提供 C/C++代码质量完成状态的可视化报告按需访问目标代 码的评估,并跟踪其过程以提高质量和完成预期目标。 5)削减支持成本自动对广泛的潜在用户路径进行负面测试以查 找出只有在真正使用时才能发现的问题。 1)根据用户选定的编码规范对代码做静态分析来增强兼容性; 2)提供一个图形化的 RuleWizard 编辑器来定制用户编码规则; 3)对代码路径做静态模拟以定位潜在运行时错误; 4)提供图形化接口和动态跟踪使代码走查自动化; 5)自动生成并执行单元和组件级的测试; 6)灵活的桩函数机制; 7)完全支持回归测试; 8)代码高亮显示的代码覆盖率分析; 9)使用图形或命令行方式进行全面团队部署。
四 心得 通过本次实验,我了解了一些常用的白盒测试工具,加深了对于白盒测 试的理解。 白盒测试主要用在具有高可靠性要求的软件领域,例如:军工软件、航 天航空软件、工业控制软件等等。白盒测试工具在选购时应当主要是对开发语言 的支持、代码覆盖的深度、嵌入式软件的测试和测试的可视化等。 白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与 语法分析、静态错误分析、动态检测等。但是对于不同的开发语言,测试工具实 现的方式和内容差别是较大的。测试工具主要支持的开发语言包括:标准 C、C++、 Visual C++、Java 和 Visual J++等。 优点: 1.迫使测试人员去仔细思考软件的实现 2.可以检测代码中的每条分支和路径 3.揭示隐藏在代码中的错误 4.对代码的测试比较彻底 5.最优化 缺点: 1.昂贵 2.无法检测代码中遗漏的路径和数据敏感性错误 3.不验证规格的正确性
评语:
分享到:
收藏