Parasoft-c++test测试平台介绍

上传人:桔**** 文档编号:584175902 上传时间:2024-08-30 格式:PPT 页数:36 大小:2.41MB
返回 下载 相关 举报
Parasoft-c++test测试平台介绍_第1页
第1页 / 共36页
Parasoft-c++test测试平台介绍_第2页
第2页 / 共36页
Parasoft-c++test测试平台介绍_第3页
第3页 / 共36页
Parasoft-c++test测试平台介绍_第4页
第4页 / 共36页
Parasoft-c++test测试平台介绍_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《Parasoft-c++test测试平台介绍》由会员分享,可在线阅读,更多相关《Parasoft-c++test测试平台介绍(36页珍藏版)》请在金锄头文库上搜索。

1、Parasoft软件测试自动化工具软件测试自动化工具 C+Test使用介绍使用介绍C+test的概况C+Test的功能C+test支持编译器C+test的团队开发解决方案C+test的静态测试单元测试回归测试覆盖率测试嵌入式系统测试议程议程美国Parasoft公司成立于成立于1987总部在美国总部在美国蒙罗维亚蒙罗维亚全球全球15个个office技术创新:在美国软件技术领域拥有技术创新:在美国软件技术领域拥有15项专利项专利目前为止目前为止,全球客户数量超过全球客户数量超过10,000+ 代码撰写规范检查代码撰写规范检查代码撰写规范检查代码撰写规范检查 单元测试单元测试单元测试单元测试 集成集

2、成集成集成测试测试测试测试 运行测试运行测试运行测试运行测试 功能功能功能功能测试测试测试测试 回归测试回归测试回归测试回归测试 代码撰写规范检查代码撰写规范检查代码撰写规范检查代码撰写规范检查 单元测试单元测试单元测试单元测试 集成集成集成集成测试测试测试测试 功能功能功能功能测试测试测试测试 回归测试回归测试回归测试回归测试 代码撰写规范检查代码撰写规范检查代码撰写规范检查代码撰写规范检查 单元测试单元测试单元测试单元测试 集成集成集成集成测试测试测试测试 功能功能功能功能测试测试测试测试 回归测试回归测试回归测试回归测试 自自自自动动搜搜搜搜寻寻如如如如 内存泄漏内存泄漏内存泄漏内存泄漏

3、,指指指指针针异常等众多内存使用异常等众多内存使用异常等众多内存使用异常等众多内存使用上上上上的的的的错误错误 代码撰写规范检查代码撰写规范检查代码撰写规范检查代码撰写规范检查 运行测试运行测试运行测试运行测试 功能功能功能功能测试测试测试测试 回归测试回归测试回归测试回归测试 压力压力压力压力/ / / /负载测试负载测试负载测试负载测试 代码撰写规范检查代码撰写规范检查代码撰写规范检查代码撰写规范检查 单元测试单元测试单元测试单元测试 运行测试运行测试运行测试运行测试 功能功能功能功能测试测试测试测试 回归测试回归测试回归测试回归测试 压力压力压力压力/ / / /负载测试负载测试负载测试

4、负载测试 监监控开控开控开控开发发流程及决策流程及决策流程及决策流程及决策等等等等支援支援支援支援系統系統系統系統Parasoft测试软件功能概要集成测试集成测试集成测试集成测试用户自定义用户自定义用户自定义用户自定义测试用例测试用例测试用例测试用例软件质量软件质量软件质量软件质量投资回报率投资回报率投资回报率投资回报率回归测试回归测试回归测试回归测试/ /覆盖率分析覆盖率分析覆盖率分析覆盖率分析自动代码撰写规范检查自动代码撰写规范检查自动代码撰写规范检查自动代码撰写规范检查代码代码代码代码撰写规范撰写规范撰写规范撰写规范自动自动自动自动“ “坚固性坚固性坚固性坚固性” ”测测测测试试试试自动

5、生成自动生成自动生成自动生成测试用例测试用例测试用例测试用例%$#!%$#!“ “功能性功能性功能性功能性” ”单元测单元测单元测单元测试试试试用户自定义用户自定义用户自定义用户自定义测试用例测试用例测试用例测试用例BugDetective 静静静静态态态态测测测测试试试试动动动动态态态态测测测测试试试试C+testC+test为整个软件生命周期提供即时测试为整个软件生命周期提供即时测试返回返回C+TestC+Test的功能的功能的功能的功能根据用户选定的编码规范对代码做静态分析提供一个图形化的RuleWizard编辑器来定制用户编码规则对代码路径做静态模拟以定位潜在的运行时错误提供图形化接口

6、和动态跟踪使代码走查自动化自动生成并执行单元和组件级的测试灵活的桩函数机制完全支持回归测试代码高亮显示的代码覆盖率分析使用图形或命令行方式进行全面团队部署返回返回n n运行平台运行平台运行平台运行平台Windows NT/2000/2003/XP/VistaWindows NT/2000/2003/XP/VistaWindows NT/2000/2003/XP/VistaWindows NT/2000/2003/XP/VistaLinux kernel 2.4 or 2.6 or higher with glibc 2.2 or Linux kernel 2.4 or 2.6 or highe

7、r with glibc 2.2 or Linux kernel 2.4 or 2.6 or higher with glibc 2.2 or Linux kernel 2.4 or 2.6 or higher with glibc 2.2 or higher and an x86-compatible processorhigher and an x86-compatible processorhigher and an x86-compatible processorhigher and an x86-compatible processorLinux kernel 2.6 or high

8、er with glibc 2.3 or higher and Linux kernel 2.6 or higher with glibc 2.3 or higher and Linux kernel 2.6 or higher with glibc 2.3 or higher and Linux kernel 2.6 or higher with glibc 2.3 or higher and an x86_64-compatible processor (32-bit compatibility an x86_64-compatible processor (32-bit compatib

9、ility an x86_64-compatible processor (32-bit compatibility an x86_64-compatible processor (32-bit compatibility package is required)package is required)package is required)package is required)Solaris 7Solaris 7Solaris 7Solaris 7,8 8 8 8,9 9 9 9,10 and an UltraSPARC 10 and an UltraSPARC 10 and an Ult

10、raSPARC 10 and an UltraSPARC P P P Processorrocessorrocessorrocessorn n支持支持支持支持IDEIDEIDEIDE插件(插件(插件(插件(Plug-inPlug-inPlug-inPlug-in)Eclipse 3.1Eclipse 3.1Eclipse 3.1Eclipse 3.1,3.2 (32-bit)3.2 (32-bit)3.2 (32-bit)3.2 (32-bit),3.3 (32-bit)3.3 (32-bit)3.3 (32-bit)3.3 (32-bit)Visual Studio .NET 2003/20

11、05/2008Visual Studio .NET 2003/2005/2008Visual Studio .NET 2003/2005/2008Visual Studio .NET 2003/2005/2008Wind River Workbench 2.6 (for embedded development)Wind River Workbench 2.6 (for embedded development)Wind River Workbench 2.6 (for embedded development)Wind River Workbench 2.6 (for embedded de

12、velopment)ARM RVDS 3.x (for embedded development)ARM RVDS 3.x (for embedded development)ARM RVDS 3.x (for embedded development)ARM RVDS 3.x (for embedded development)C+testC+test主要支持的主要支持的环境环境n n宿主编译器宿主编译器宿主编译器宿主编译器WindowsWindowsWindowsWindows:Microsoft Visual C+ 6.0Microsoft Visual C+ 6.0Microsoft

13、Visual C+ 6.0Microsoft Visual C+ 6.0,.NET.NET.NET.NET,.NET 2003, .NET 2003, .NET 2003, .NET 2003, 2005,2008 2005,2008 2005,2008 2005,2008 ;GCC 2.95.xGCC 2.95.xGCC 2.95.xGCC 2.95.x,3.2.x3.2.x3.2.x3.2.x,3.3.x3.3.x3.3.x3.3.x,3.4.x3.4.x3.4.x3.4.x;Green Hills Green Hills Green Hills Green Hills MULTI for

14、 Windows x86 Native v4.0.xMULTI for Windows x86 Native v4.0.xMULTI for Windows x86 Native v4.0.xMULTI for Windows x86 Native v4.0.xLinux (x86 processor)Linux (x86 processor)Linux (x86 processor)Linux (x86 processor):GCC 2.95.xGCC 2.95.xGCC 2.95.xGCC 2.95.x,3.2.x3.2.x3.2.x3.2.x,3.3.x3.3.x3.3.x3.3.x,3

15、.4.x3.4.x3.4.x3.4.x,4.0.x4.0.x4.0.x4.0.x,4.1.x4.1.x4.1.x4.1.xLinux (x86_64 processor)Linux (x86_64 processor)Linux (x86_64 processor)Linux (x86_64 processor):GCC 3.4.xGCC 3.4.xGCC 3.4.xGCC 3.4.x,4.0.x4.0.x4.0.x4.0.x,4.1.x4.1.x4.1.x4.1.xSolarisSolarisSolarisSolaris:GCC 2.95.xGCC 2.95.xGCC 2.95.xGCC 2

16、.95.x,3.2.x3.2.x3.2.x3.2.x,3.3.x3.3.x3.3.x3.3.x,3.4.x3.4.x3.4.x3.4.x,4.0.x4.0.x4.0.x4.0.x,4.1.x4.1.x4.1.x4.1.x,Sun C+ 5.3 (Sun Forte C+ 6 Update 2)Sun C+ 5.3 (Sun Forte C+ 6 Update 2)Sun C+ 5.3 (Sun Forte C+ 6 Update 2)Sun C+ 5.3 (Sun Forte C+ 6 Update 2),Sun C+ 5.5 (Sun Sun C+ 5.5 (Sun Sun C+ 5.5 (

17、Sun Sun C+ 5.5 (Sun ONE Studio 8)ONE Studio 8)ONE Studio 8)ONE Studio 8),Sun C+ 5.6 (Sun ONE Studio 9)Sun C+ 5.6 (Sun ONE Studio 9)Sun C+ 5.6 (Sun ONE Studio 9)Sun C+ 5.6 (Sun ONE Studio 9),Sun C+ Sun C+ Sun C+ Sun C+ 5.7 (Sun ONE Studio 10) Sun C+ 5.8 (Sun ONE Studio 11)5.7 (Sun ONE Studio 10) Sun

18、C+ 5.8 (Sun ONE Studio 11)5.7 (Sun ONE Studio 10) Sun C+ 5.8 (Sun ONE Studio 11)5.7 (Sun ONE Studio 10) Sun C+ 5.8 (Sun ONE Studio 11);Green Hills MULTI for SPARC Solaris Native v4.0.xGreen Hills MULTI for SPARC Solaris Native v4.0.xGreen Hills MULTI for SPARC Solaris Native v4.0.xGreen Hills MULTI

19、for SPARC Solaris Native v4.0.xC+testC+test主要支持的主要支持的编译器编译器n n目标硬件编译器目标硬件编译器目标硬件编译器目标硬件编译器Wind RiverWind RiverWind RiverWind River:EGCS-2.90EGCS-2.90EGCS-2.90EGCS-2.90;GCC-2.96GCC-2.96GCC-2.96GCC-2.96,GCC 3.4.x and DIAB 5.4+GCC 3.4.x and DIAB 5.4+GCC 3.4.x and DIAB 5.4+GCC 3.4.x and DIAB 5.4+GCC 2.9

20、5.x - 4.1.x cross-compilersGCC 2.95.x - 4.1.x cross-compilersGCC 2.95.x - 4.1.x cross-compilersGCC 2.95.x - 4.1.x cross-compilersGreen Hills 4.0.xGreen Hills 4.0.xGreen Hills 4.0.xGreen Hills 4.0.xARMARMARMARM:ADS 1.2ADS 1.2ADS 1.2ADS 1.2,RVCT 3.0RVCT 3.0RVCT 3.0RVCT 3.0,RVCT 3.1RVCT 3.1RVCT 3.1RVCT

21、 3.1Microsoft Visual C+ 8.0/9.0 For Windows Mobile 5.0/6.0Microsoft Visual C+ 8.0/9.0 For Windows Mobile 5.0/6.0Microsoft Visual C+ 8.0/9.0 For Windows Mobile 5.0/6.0Microsoft Visual C+ 8.0/9.0 For Windows Mobile 5.0/6.0Microsoft Embeded C+ 4.0Microsoft Embeded C+ 4.0Microsoft Embeded C+ 4.0Microsof

22、t Embeded C+ 4.0C+testC+test主要支持的主要支持的编译器编译器返回返回C+testC+test的团队开发解决方案的团队开发解决方案的团队开发解决方案的团队开发解决方案在所有团队开发人员的机器上安装和许可C+test Professional Edition在架构设计师或开发领导的机器上安装和许可C+test Architect Edition在团队服务器上安装和许可C+test Server EditionParasoftGRS(组报告系统)是一种决策支持系统,使得软件开发流程具有可视性和受控性ParasoftTCM(团队配置管理器)是一款软件,用来管理TestCon

23、figurations(团队配置)、规则、规则映射、Suppressions(抑制)、跳过的资源和结果在团队范围的分配和共享。所有的团队C+test机器都应连接到TCM(团队配置管理器),以实现对测试做法的集中化管理和应用将所有C+test安装连接至您的源码控制器存储库源码控制器存储库 C+test目前支持以下源码控制器系统团队开发人员团队开发人员 Professional架构设计师架构设计师/领导领导Architect团队服务器团队服务器ServernCVSnSubversion (SVN) 1.2.x, 1.3.x, or 1 .4xnClearCase 2003.06.00nStarTe

24、am 2005nCM Synergy 6.4nPerforce 2006.2nVisual SourceSafe 6.0, 2005SCM源码控制系统编码 & 测试 TCM团队开发配置系统测试结果可自定义时间的测试构建服务器生成全局报告 可视化全局决策支持报告专业版服务器版本(批处理模式)架构师版团队代码撰写标准测试结果软件工程师架构师或项目管理者Parasoft团队协同开发管理团队协同开发管理返回返回C+TestC+Test静态测试静态测试静态测试静态测试在c+Test中进行代码静态测试,主要使用到以下几个功能模块自动代码撰写规范检查自定义代码规范RuleWizardBugdetective

25、检测RunTime错误C+Test静态测试C+Test提供了1000多条的内建规则,这些编程建议能够帮助用户提高代码的可维护性和可重用性.RuleWizard功能满足用户自定义编码规范的需求Bugdetective是PARASOFT的专利技术,用户在不运行程序的情况下就能够查找出大多数运行时错误,100%没有误报C+TestC+Test静态测试静态测试静态测试静态测试Scott Scott Scott Scott MeyerMeyerMeyerMeyer所著的所著的所著的所著的EffectiveEffectiveEffectiveEffective C+ C+ C+ C+和和和和More Ef

26、fective C+More Effective C+More Effective C+More Effective C+SutterSutterSutterSutter和和和和AlexandrescuAlexandrescuAlexandrescuAlexandrescu倡导的倡导的倡导的倡导的C C C C+代码规范代码规范代码规范代码规范EllemtelEllemtelEllemtelEllemtel倡导的代码规范倡导的代码规范倡导的代码规范倡导的代码规范面向对象并经由实践验证的最佳代码规范面向对象并经由实践验证的最佳代码规范面向对象并经由实践验证的最佳代码规范面向对象并经由实践验证的最

27、佳代码规范面向移植性代码规范面向移植性代码规范面向移植性代码规范面向移植性代码规范( ( ( (如从如从如从如从32323232位移植到位移植到位移植到位移植到64646464位位位位) ) ) )面向命名规则代码规范面向命名规则代码规范面向命名规则代码规范面向命名规则代码规范( ( ( (完全可用户自定义的完全可用户自定义的完全可用户自定义的完全可用户自定义的) ) ) )MISRAMISRAMISRAMISRA代码规范(汽车电子行业规范)代码规范(汽车电子行业规范)代码规范(汽车电子行业规范)代码规范(汽车电子行业规范)由由由由Qt (Trolltech)Qt (Trolltech)Qt

28、(Trolltech)Qt (Trolltech)倡导并经由实践验证的最佳代码规范倡导并经由实践验证的最佳代码规范倡导并经由实践验证的最佳代码规范倡导并经由实践验证的最佳代码规范自动代码撰写规范检查自动代码撰写规范检查Bugdetective用户可以按照实际的规则需求自定义相应的编码规则用户可以按照实际的规则需求自定义相应的编码规则图形化方式图形化方式在不运行程序的情况下检测出运行时错误在不运行程序的情况下检测出运行时错误没有误报没有误报自定义代码规范自定义代码规范RuleWizardC+TestC+Test静态测试静态测试静态测试静态测试DemoDemo静态代码规则检查/Bugdetecti

29、ve模拟代码执行创建/导入被测试工程工程设置测试配置执行测试审查测试结果修正代码错误/缺陷返回大椭圆:应用程序大椭圆:应用程序大椭圆:应用程序大椭圆:应用程序小椭圆:函数小椭圆:函数小椭圆:函数小椭圆:函数/ / / /对象对象对象对象箭头:箭头:箭头:箭头: 用户输入用户输入用户输入用户输入红星:红星:红星:红星: 潜在的错误潜在的错误潜在的错误潜在的错误 为什么需要进行为什么需要进行为什么需要进行为什么需要进行单元测试单元测试单元测试单元测试n n单元测试能帮助客户更准更全面地找到错误,显著提高软件质量单元测试能帮助客户更准更全面地找到错误,显著提高软件质量单元测试能帮助客户更准更全面地找

30、到错误,显著提高软件质量单元测试能帮助客户更准更全面地找到错误,显著提高软件质量n n单元测试能够在改善软件质量的同时大量削减开发时间和成本单元测试能够在改善软件质量的同时大量削减开发时间和成本单元测试能够在改善软件质量的同时大量削减开发时间和成本单元测试能够在改善软件质量的同时大量削减开发时间和成本C+testC+testC+testC+test提供全球最先进的提供全球最先进的提供全球最先进的提供全球最先进的自动化单元测试自动化单元测试自动化单元测试自动化单元测试上图显示了一个包含许多函数的应用程序的测试模型上图显示了一个包含许多函数的应用程序的测试模型上图显示了一个包含许多函数的应用程序的

31、测试模型上图显示了一个包含许多函数的应用程序的测试模型集成测试集成测试集成测试集成测试 不断修改输入不断修改输入不断修改输入不断修改输入 依赖函数依赖函数依赖函数依赖函数/ / / /类间的相互作用类间的相互作用类间的相互作用类间的相互作用 通过运行失败发现错误通过运行失败发现错误通过运行失败发现错误通过运行失败发现错误 耗费大量时间耗费大量时间耗费大量时间耗费大量时间 不准确不准确不准确不准确 不全面不全面不全面不全面 修改错误的费用修改错误的费用修改错误的费用修改错误的费用 拖延项目的时间拖延项目的时间拖延项目的时间拖延项目的时间 引发新的错误引发新的错误引发新的错误引发新的错误单元测试单

32、元测试单元测试单元测试 对程序最小元素进行测试对程序最小元素进行测试对程序最小元素进行测试对程序最小元素进行测试 简单简单简单简单 高速高速高速高速 准确准确准确准确 全面全面全面全面 及时发现和修改错误及时发现和修改错误及时发现和修改错误及时发现和修改错误 不会引发新的错误不会引发新的错误不会引发新的错误不会引发新的错误14523项目代码项目代码项目代码项目代码C+test如何帮助您进行自动化单元测试模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖待测模块待测模块待测模块待测模块452测试函数测试函数测试

33、函数测试函数3桩函数执行桩函数执行桩函数执行桩函数执行桩函数桩函数桩函数桩函数测试用例测试用例测试用例测试用例C+testC+test如何帮助您进行如何帮助您进行自动化单元测试自动化单元测试项目代码项目代码项目代码项目代码模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖C+testC+test如何帮助您进行如何帮助您进行自动化单元测试自动化单元测试待测单元待测单元待测单元待测单元452测试函数测试函数测试函数测试函数3桩函数桩函数桩函数桩函数桩函数执行桩函数执行桩函数执行桩函数执行桩函数执行桩函数执行桩函数

34、执行桩函数执行测试用例测试用例测试用例测试用例项目代码项目代码项目代码项目代码模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖模块,数据库,接口,硬件等外部依赖C+testC+test如何帮助您进行如何帮助您进行自动化单元测试自动化单元测试n n可对单一文件也可对批量文件进行自动单元测试可对单一文件也可对批量文件进行自动单元测试可对单一文件也可对批量文件进行自动单元测试可对单一文件也可对批量文件进行自动单元测试n n可对孤立文件或存在逻辑调用关系的文件进行自动单元测试可对孤立文件或存在逻辑调用关系的文件进行自动单元测试可对孤立文件或存在逻辑

35、调用关系的文件进行自动单元测试可对孤立文件或存在逻辑调用关系的文件进行自动单元测试n n自动为最小单元直到完整系统生成测试用例包括:自动为最小单元直到完整系统生成测试用例包括:自动为最小单元直到完整系统生成测试用例包括:自动为最小单元直到完整系统生成测试用例包括:n n自动生成包含测试用例的测试打包套件自动生成包含测试用例的测试打包套件自动生成包含测试用例的测试打包套件自动生成包含测试用例的测试打包套件n n自动生成桩函数取代外部依赖自动生成桩函数取代外部依赖自动生成桩函数取代外部依赖自动生成桩函数取代外部依赖n n自动生成激发测试用例的测试构件自动生成激发测试用例的测试构件自动生成激发测试用

36、例的测试构件自动生成激发测试用例的测试构件n n自动运行测试用例并找到错误自动运行测试用例并找到错误自动运行测试用例并找到错误自动运行测试用例并找到错误n n支持用户通过其他工具建立的自定义测试用例支持用户通过其他工具建立的自定义测试用例支持用户通过其他工具建立的自定义测试用例支持用户通过其他工具建立的自定义测试用例n n支持六种测试覆盖率分析支持六种测试覆盖率分析支持六种测试覆盖率分析支持六种测试覆盖率分析n n自动进行针对单元直到系统的回归测试自动进行针对单元直到系统的回归测试自动进行针对单元直到系统的回归测试自动进行针对单元直到系统的回归测试C+testC+test进行自动化单元测试进行

37、自动化单元测试DemoDemoUnitTesting(使用自动生成的TestCase)创建/导入被测试工程工程设置测试配置生成测试用例执行测试用例审查测试结果修正代码错误/缺陷注:基于Cal_Coverage例程C+testC+test进行自动化单元测试进行自动化单元测试DemoDemoUnitTesting(手动添加TestCase)创建/导入被测试工程工程设置测试配置生成测试用例执行测试用例添加测试用例添加测试用例审查测试结果修正代码错误/缺陷注:基于Cal_Coverage例程C+testC+test进行自动化单元测试进行自动化单元测试DemoDemoUnitTesting(使用数据源提

38、供TestCaseInput/Output)创建/导入被测试工程(Plug-In版本不用)工程设置测试配置添加测试用例数据源添加测试用例数据源生成测试用例用数据源更新测试用例用数据源更新测试用例执行测试用例审查测试结果修正代码错误/缺陷注:基于cpptestdemo例程返回返回回归测试回归测试回归测试回归测试在我们的软件开发过程中,只要软件发生了改动,不管是功能的变化、模块的增加或者bug的修改,都会对现有的软件造成影响,也就可能带来问题.当软件的bug被发现提交后,有可能发生以下几种情况:追踪系统不够完善,该bug被疏忽没有得到修改开发对于bug的理解不同,造成修改后的结果与期望仍不一致理解

39、不够深入,只修改了bug描述的表面现象,深层原因没有找到bug被修改,但没有考虑到与此问题关联的其他其他模块本bug被修改,之前被本bug掩盖的其他错误得以显现出来由此我们可以看出进行回归测试的必要性,但在每一次回归测试中遍历所有的用例又是不现实的,特别是在测试后期,所以选择正确的回归测试策略来改进回归测试的效率是非常有意义的.第一阶段:第一阶段:第一阶段:第一阶段:C+testC+test如何帮助您进行如何帮助您进行自动化回归测试自动化回归测试第二阶段:第二阶段:第二阶段:第二阶段:C+testC+test回归测试回归测试DemoDemo回归测试(手动添加TestCase)创建/导入被测试工

40、程工程设置测试配置生成测试用例执行测试用例修改被测试代码修改被测试代码(模拟一个回归测试环境模拟一个回归测试环境)执行测试用例执行测试用例审查测试结果修正代码错误/缺陷注:基于Cal_Coverage例程返回返回覆盖率测试覆盖率测试覆盖率测试覆盖率测试n代码覆盖率分析是在程序中寻找没有被用例测过的地方的流程;创建新的测试测试用例来增加覆盖率的流程;决定代码覆盖定量的量度方法,同时也是一种间接度量质量的方法的过程。n覆盖分析是一种测试的技术技术,但你不应该依赖于它的单独使用。n使用覆盖率分析,实际上是确保你的测试的质量,进而确保实际产品的质量。覆盖率分析有着它的优点和缺点。你需要选择采用哪些度量

41、的方法。你要设定一个最低的覆盖率来决定什么时候停止分析覆盖。n覆盖分析有时候也叫“测试覆盖分析”,这两种术语是同义的。在学术界里,术语“测试覆盖”使用得比较多,在测试业界里的话,使用得多的就是术语“代码覆盖”。同样的,覆盖分析器有时候也被叫做“覆盖监控器”。C+testC+test如何帮助您进行如何帮助您进行测试覆盖率分析测试覆盖率分析n n自动显示未被测试覆盖到的代码自动显示未被测试覆盖到的代码自动显示未被测试覆盖到的代码自动显示未被测试覆盖到的代码n n自动收集并报告所有已被执行的测试用例自动收集并报告所有已被执行的测试用例自动收集并报告所有已被执行的测试用例自动收集并报告所有已被执行的测

42、试用例n n提供六种测试覆盖率分析提供六种测试覆盖率分析提供六种测试覆盖率分析提供六种测试覆盖率分析: : : :n nLine CoverageLine CoverageLine CoverageLine Coverage:语句覆盖:语句覆盖:语句覆盖:语句覆盖 n nBasic Block CoverageBasic Block CoverageBasic Block CoverageBasic Block Coverage:没有包含分支,控制流转的一段代码覆盖:没有包含分支,控制流转的一段代码覆盖:没有包含分支,控制流转的一段代码覆盖:没有包含分支,控制流转的一段代码覆盖n nPath

43、CoveragePath CoveragePath CoveragePath Coverage:一条从函数入口到出口的路径覆盖:一条从函数入口到出口的路径覆盖:一条从函数入口到出口的路径覆盖:一条从函数入口到出口的路径覆盖n nDecision (Branch) CoverageDecision (Branch) CoverageDecision (Branch) CoverageDecision (Branch) Coverage:分支覆盖:分支覆盖:分支覆盖:分支覆盖 n nModified Condition/Decision Coverage (MC/DC)Modified Condi

44、tion/Decision Coverage (MC/DC)Modified Condition/Decision Coverage (MC/DC)Modified Condition/Decision Coverage (MC/DC):MC/DCMC/DCMC/DCMC/DC覆盖覆盖覆盖覆盖 (符合(符合(符合(符合NASANASANASANASA的的的的DO178BDO178BDO178BDO178B标准)标准)标准)标准)n nCondition CoverageCondition CoverageCondition CoverageCondition Coverage:条件覆盖:条件覆

45、盖:条件覆盖:条件覆盖n n通过图形化界面交互显示代码的各种覆盖率数据通过图形化界面交互显示代码的各种覆盖率数据通过图形化界面交互显示代码的各种覆盖率数据通过图形化界面交互显示代码的各种覆盖率数据C+testC+test覆盖率分析覆盖率分析DemoDemo覆盖率分析覆盖率分析(手动添加手动添加Test Case提高提高 覆盖率覆盖率)创建/导入被测试工程工程设置测试配置生成测试用例执行测试用例审查测试结果审查测试结果手动添加测试用例手动添加测试用例执行测试用例执行测试用例审查测试结果修正代码错误/缺陷注:基于Cal_Coverage例程返回返回为什么要进行嵌入式系统测试为什么要进行嵌入式系统测

46、试为什么要进行嵌入式系统测试为什么要进行嵌入式系统测试n嵌入式软件测试/嵌入式测试测试或叫交叉测试(cross-test)的目的与非嵌入式软件是相同的。但是,在嵌入式系统设计中,软件正越来越多地取代硬件,以降低系统的成本,获得更大的灵活性,这就需要使用更好的测试方法和工具进行嵌入式和实时软件的测试。n通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对门益复杂的嵌入式软件进行快速有效的测

47、试愈加显得重要。嵌入式系统测试的难点嵌入式系统测试的难点嵌入式系统测试的难点嵌入式系统测试的难点n若所有测试都放在目标平台上有很多不利的因素:若所有测试都放在目标平台上有很多不利的因素:测试软件,可能会造成与开发者争夺时间的瓶颈,避免它只有提供更多的目标环境目标环境可能还不可行比起主机平台环境,目标环境通常是不精密的和不方便的提供给开发者的目标环境和联合开发环境通常是很昂贵的开发和测试工作可能会妨碍目标环境已存在持续的应用从经济上和开发效率上考虑,软件开发周期中尽可能大的比例在主机系统环境中进行,其中包括测试n确定确定host-target测试环境后,开发测试人员又会遇到以下的问题:测试环境后

48、,开发测试人员又会遇到以下的问题:多少开发人员会卷入测试工作(单元测试单元测试,软件集成,系统测试)?多少软件应该测试,测试会花费多长时间?在主机环境和目标环境有哪些软件工具,价格怎样,适合怎样?多少目标环境可以提供给开发者,什么时候?主机和目标机之间的连接怎样?被测软件下载下载到目标机有多快?使用主机与目标环境之间有什么限制(如软件安全标准)?n任何人或组织进行嵌入式软件的测试都应深入考虑以上问题,结合自身实际情况,选定任何人或组织进行嵌入式软件的测试都应深入考虑以上问题,结合自身实际情况,选定合理测试策略和方案合理测试策略和方案C+testC+test如何进行企业级如何进行企业级如何进行企

49、业级如何进行企业级/ /嵌入式自动单元测试嵌入式自动单元测试嵌入式自动单元测试嵌入式自动单元测试用户库资源用户库资源用户库资源用户库资源用户源码用户源码用户源码用户源码完整测试报告完整测试报告完整测试报告完整测试报告用户待测资源用户待测资源用户待测资源用户待测资源测试用例资源(包含测试用例驱动)测试用例资源(包含测试用例驱动)测试用例资源(包含测试用例驱动)测试用例资源(包含测试用例驱动)桩函数资源桩函数资源桩函数资源桩函数资源测试框架测试框架测试框架测试框架 / /测试激活套件测试激活套件测试激活套件测试激活套件运行库资源运行库资源运行库资源运行库资源Parasoft C+testParas

50、oft C+testSymbolSymbol表表表表编译(交叉编译)编译(交叉编译)编译(交叉编译)编译(交叉编译)/ /链接链接链接链接生成可执行目标生成可执行目标生成可执行目标生成可执行目标并在相应平台执行并在相应平台执行并在相应平台执行并在相应平台执行测试日志测试日志测试日志测试日志/ /覆盖日志覆盖日志覆盖日志覆盖日志日志数据(日志数据(日志数据(日志数据( TCP/IP TCP/IP)ParasoftParasoft如何帮助您进行如何帮助您进行嵌入式开发嵌入式开发应用程序应用程序应用程序应用程序硬件桩硬件桩硬件桩硬件桩硬件桩硬件桩硬件桩硬件桩测试用例测试用例测试用例测试用例主机平台主

51、机平台主机平台主机平台n n阶段阶段1 1:在主机平台上生成并调试测试用例:在主机平台上生成并调试测试用例n n目的:生成测试用例,用以目的:生成测试用例,用以目的:生成测试用例,用以目的:生成测试用例,用以测试程序逻辑并调试测试用测试程序逻辑并调试测试用测试程序逻辑并调试测试用测试程序逻辑并调试测试用例例例例确保测试生成的测试用例可以确保测试生成的测试用例可以表现程序的功能性表现程序的功能性确保测试用例能够被成功编译确保测试用例能够被成功编译 验证代码的可移植性并通过静验证代码的可移植性并通过静态分析强化代码的可移植性态分析强化代码的可移植性Parasoft Parasoft 如何帮助您进行

52、如何帮助您进行如何帮助您进行如何帮助您进行嵌入式开发嵌入式开发嵌入式开发嵌入式开发应用程序应用程序应用程序应用程序硬件桩硬件桩硬件桩硬件桩硬件桩硬件桩硬件桩硬件桩目标平台目标平台目标平台目标平台n n阶段阶段2 2:在目标硬件上执行含有桩的测试用例:在目标硬件上执行含有桩的测试用例主机平台主机平台主机平台主机平台n n目的:验证测试用例在目标目的:验证测试用例在目标目的:验证测试用例在目标目的:验证测试用例在目标硬件上能通过模拟外部真实硬件上能通过模拟外部真实硬件上能通过模拟外部真实硬件上能通过模拟外部真实硬件的桩函数得以执行硬件的桩函数得以执行硬件的桩函数得以执行硬件的桩函数得以执行通过使用

53、桩函数来模拟外部硬通过使用桩函数来模拟外部硬件依赖件依赖支持在代码初期进行测试,从支持在代码初期进行测试,从而提升对于代码质量的信心而提升对于代码质量的信心回归测试保障了代码的完整性回归测试保障了代码的完整性以及连贯性以及连贯性Parasoft Parasoft 如何帮助您进行嵌入式开发如何帮助您进行嵌入式开发如何帮助您进行嵌入式开发如何帮助您进行嵌入式开发应用程序应用程序应用程序应用程序真实硬件真实硬件真实硬件真实硬件真实硬件真实硬件真实硬件真实硬件目标平台目标平台目标平台目标平台n n阶段阶段3 3:在目标硬件上执行不含桩的测试用例:在目标硬件上执行不含桩的测试用例主机平台主机平台主机平台

54、主机平台n n目的:验证测试用例在目标目的:验证测试用例在目标目的:验证测试用例在目标目的:验证测试用例在目标硬件上能在与真实硬件接口硬件上能在与真实硬件接口硬件上能在与真实硬件接口硬件上能在与真实硬件接口时得以执行时得以执行时得以执行时得以执行提供可用资源并进行交叉编译提供可用资源并进行交叉编译获得目标平台运行时的代码覆获得目标平台运行时的代码覆盖率盖率使得子系统能在一个自定义外使得子系统能在一个自定义外围资源环境下得到测试并执行围资源环境下得到测试并执行命令行界面实现自动化目标平命令行界面实现自动化目标平台测试台测试C+testC+test嵌入式系统的测试方案嵌入式系统的测试方案嵌入式系统的测试方案嵌入式系统的测试方案审查测试结果C+testC+test嵌入式测试嵌入式测试DemoDemo嵌入式测试(WindowsMobile6.0的模拟器测试)VS2005环境中工程导入并运行构建cpptest的运行时库 工程设置测试配置生成测试用例执行测试用例审查测试结果修正代码错误/缺陷注:基于SkiTime例程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号