恒润科技成功代理动态测试软件cantata
近日,恒润科技成功代理了动态测试软件cantata,cantata是由德国qa systems公司开发的测试和验证软件。qa systems公司成立于1996年,总部位于德国斯图加特,是软件自动测试工具和服务提供商。cantata软件主要用于单元测试和集成测试,广泛应用于铁路运输、汽车、通信、金融和医疗等领域。
1. cantata特点
cantata是一个嵌入式软件功能/覆盖度测试工具,可以和所有流行的主机开发平台和主流嵌入式实时操作系统(rtos)开发平台无缝集成。它帮助开发者在系统测试之前,提高完成单元测试和集成测试的质量和效率。cantata可以自动完成测试调用函数准备,测试用例的生成和编译链接,以及测试报告的生成。
cantata界面
2. 静态分析
cantata的静态分析功能可以产生超过300多种源代码度量,以.csv格式保存,这些度量值可以辅助用户评估测试工作量。cantata支持的度量标准包括myers、moose、mccabe、mood、halstead、qmood、hansen、robert martin、mccabe object oriented和bansiya’s class entropy等。
3. 自动化的功能测试
cantata允许用户不用手写测试代码就可以进行单元级测试,在gui界面中或自动生成的测试脚本中即可设置所有的测试数据。用户使用配置向导可以为cantata配置特定的主机或嵌入式目标构建环境。cantata分析源代码获取参数、调用和数据信息,自动生成调用接口控制(stubs、isolates和wrappers)测试脚本,可选地设定变量和返回值的初始值后即可快速运行测试用例。测试脚本管理器提供图形化的开发、编辑和管理测试用例,而且与c/c++编辑器中内容同步。开源的代码测试脚本支持复用,支持使用cantata特性进行扩展。cantata创建测试用例时自动生成makefile文件批量编译、链接、配置、执行,检查测试结果与期望的不一致。这些makefile文件可以容易地与开放源码或商业持续集成工具相集成,而且能够结合已有代码树/makefile文件一起使用,通过脚本管理器的ui界面进行编辑。

测试用例输入界面

自动生成的测试脚本
cantata可以自动生成测试用例运行需要的主函数、桩函数,自动比较实际结果和期望结果是否一致。

测试结果显示
除了简单的测试结果外,cantata还会生成详细的测试信息文件,其中包括了全局变量、参数和返回值、调用顺序等期望值与实际值的详细信息,通过分析这个文件,用户可以找到测试失败的位置,更加方便地找到测试失败的根本原因。cantata通过stubs/isolates模拟或通过wrapper真实调用来实现任意调用(编译单元边界内或边界外)。对于创建测试脚本(默认)和编辑测试脚本过程中调用的函数,可选地自动检查调用接口的参数/返回值。cantata通过设置具体的命名实例、检查数据、增加异常等来控制调用接口。cantata支持完全控制调用顺序,在每个测试用例中可使用stub,isolate或wrapper实例,验证真实调用顺序或时间是否匹配。

详细测试信息
4. 分析代码覆盖率
覆盖率描述的是测试用例覆盖了哪些代码,哪些代码没有被覆盖等信息,它可以帮助用户客观地评价测试的充分性,cantata支持入口点、调用返回、语句、基本块、判定、条件和mc/dc覆盖等,用户可以根据自己的实际情况选择合适的覆盖标准,在测试结束后cantata会给出此次测试的覆盖情况。

覆盖结果显示
针对具体的代码,cantata会用颜色直观地标识代码的详细覆盖信息,参考这些覆盖信息,测试人员可以有针对性地为没有覆盖到的代码和场景设计测试用例,提高测试的效率。

直观显示代码的覆盖信息
5. 自动生成测试用例
cantata通过特殊的算法智能地分析用户的代码,扫描代码的所有可能路径,自动生成基于覆盖度的测试用例,通过运行这些自动生成的测试用例可以很快地达到高的覆盖效果,减少对系统测试的依赖,大大地节省开发人员和测试人员的工作量,提高开发效率。
6. 测试报告生成
cantata支持生成详细的测试报告,测试报告提供了测试的总体情况(通过/失败),代码的覆盖覆盖率信息(语句覆盖、分支覆盖和mc/dc覆盖)等。

cantata测试总结报告
7. 支持平台
host operation system | host compilers | targets |
windows xp, vista, 7 |
microsoft visual c++: 6.0, 2003, 2005, 2008, 2010 gnu gcc/g++: 3.3x to 4.7.x |
any 16, 32, 64 bit architecture |
linux kernel 2.4, 2.6 distributions | gnu gcc/g++: 3.3x to 4.7.x |
8. 应用客户
cantata的客户列表