Parasoft C/C++ test 自动化用户指南(二十三):用测试开始和停止信息对结果进行注释
Parasoft C/C++test针对C/C++开发的专业白盒自动化测试方案,能有效提高软件开发效率和代码质量。C++test 可以进行静态分析,全面代码审查,运行时错误检测,并在单元测试和组件测试中集成覆盖率分析。
在 Parasoft C/C++test 中,可以使用测试开始/停止信息注释代码覆盖率结果,以了解特定测试场景如何影响代码执行。测试开始通知传达有关测试名称的信息,可在处理测试数据和生成报告时使用。
测试开始/停止注释功能可作为 API 使用,并且可以扩展到许多不同的场景。例如,可以将代码覆盖率结果与单元测试相关联,或者将代码覆盖率结果与系统测试期间执行的手动测试场景相关联。
使用测试启动/停止 API
API包括以下功能:
- void CDECL_CALL CppTest_TestStart(const char* testName) - 向结果流发送关于具有指定名称的测试开始的通知
- void CDECL_CALL CppTest_TestStop(void) - 向结果流发送关于先前开始的测试结束的通知。
在将调用 API 函数的源文件中包含一个专用的头文件:
#include "cpptest/cpptest.h"
|
编译源文件时使用-I选项指定cpptest.h头文件位置:
-I <Installation Directory>/runtime/include
|
指定一个有效的字符串作为CppTest_TestStart function. 空指针或无效字符串将导致未定义的行为。
测试启动/停止场景的常见应用
以下场景说明了测试启动/停止通知 API 的用法。
使用单元测试用例名称注释覆盖结果
在这种情况下,单元测试用例名称用作指定给CppTest_TestStart函数调用的参数。对于一些流行的 C/C++ 单元测试框架,提供了专用连接器来自动执行此任务。
要使用没有专用连接器的单元测试框架,您可以在测试用例的开头和结尾调用启动/停止 API 函数:
#include "cpptest/cpptest.h"
TEST(TimerTest, smokeTest) {
const char * tcName = testCaseName();
CppTest_TestStart(tcName);
int res = init_timer();
ASSERT_TRUE(res != 0);
CppTest_TestStop();
}
|
使用系统测试会话的手动测试场景名称注释覆盖结果
有几种方法可以实现这个目标:
- 对测试启动/停止 API 的调用可以直接添加到测试源。它们可以在被测试应用程序的调试或测试版本中使用专用宏激活。向 API 函数调用提供测试场景名称的方法取决于应用程序的类型。在某些情况下,您可以向测试应用程序的菜单添加一个特殊选项,该选项仅在调试版本或命令行中可见。这将使您能够指定执行的测试场景的名称,并在输入名称后将通知发送到结果流。
- 在启动测试应用程序之前,还可以从环境变量集中读取测试用例的名称。
- 使用作为独立线程实现的特殊模块,该线程与测试应用程序的线程并行启动。例如,该模块可以侦听 TCP/IP 套接字,并在从外部工具发送测试启动/停止命令时做出反应。
Parasoft——领先的自动化测试工具,满足绝大多数行业标准
Parasoft是一家专门提供软件测试解决方案的公司,帮助企业打造无缺陷的软件。
从开发到质量检查,Parasoft的技术通过集成静态和运行时分析,单元、功能和API测试,以及服务虚拟化,在不牺牲质量和安全性的情况下加快软件交付,节约交付成本。
强大的报告和分析功能可帮助用户快速查明有风险的代码区域,并了解新代码更改如何影响其软件质量,而突破性的技术将人工智能和机器学习添加到软件测试中,使组织更容易采用和扩展跨开发和测试团队的有效的软件测试实践。
Parasoft针对C/C++、Java、.NET和嵌入式的开发测试都有着30多年的深入研究,很多全国500强企业使用Parasoft的产品实现了软件快速、高质量的交付。
获取Parasoft资料或申请试用可加QQ:2867205852