Cantata中文网站 > 新手入门 > Cantata测试脚本怎么生成 Cantata测试脚本中的输入和预期结果怎么填写
Cantata测试脚本怎么生成 Cantata测试脚本中的输入和预期结果怎么填写
发布时间:2026/07/31 17:29:02

  使用Cantata做C/C++单元测试时,工具可以先生成测试框架,但测试能否真正验证需求,仍取决于输入数据和预期结果是否合理。处理Cantata测试脚本怎么生成Cantata测试脚本中的输入和预期结果怎么填写,需要先明确被测函数的参数、全局变量、返回值和外部调用,再把每个测试场景拆成可重复执行的数据组合。

  一、Cantata测试脚本怎么生成

 

  Cantata可以解析选中的源文件或头文件,建立代码信息模型,并据此生成C/C++测试脚本、测试用例框架和配套Makefile。测试人员可以继续在图形化测试编辑器中修改,也可以直接编辑生成的C/C++代码,两边的修改能够同步。

 

  1、从源文件生成测试脚本

 

  源码已经完成时,可以直接围绕源文件中的函数生成测试框架。

 

  ①在Cantata测试工程中找到被测源文件。

 

  ②选中一个或多个需要测试的.c或.cpp文件。

 

  ③启动【Test Script Wizard】。

 

  ④在被测函数列表中勾选需要生成测试的函数。

 

  ⑤选择单函数测试、表格驱动测试或其他测试方式。

 

  ⑥填写测试脚本名称和保存位置。

 

  ⑦完成向导并等待脚本生成。

 

  生成后,项目中通常会出现测试脚本、代码信息文件以及构建测试程序所需的Makefile。多个函数存在公共依赖时,可以放进同一个脚本;函数关系比较复杂时,拆开管理会更清楚。

 

  2、从头文件提前生成脚本

 

  函数只有声明、实现还没完成时,也可以从头文件建立测试框架。

 

  ①选中包含函数原型的头文件。

 

  ②启动【Test Script Wizard】。

 

  ③选择准备测试的函数声明。

 

  ④设置参数和返回类型的处理方式。

 

  ⑤生成测试脚本。

 

  这样可以先写测试条件和预期行为,等函数实现完成后再构建执行。Cantata支持从头文件中的函数原型生成测试框架,适合测试驱动开发或接口已经确定、实现仍在编写的项目。

 

  3、选择合适的测试用例样式

 

  生成脚本时,常见测试方式主要有以下几种。

 

  (1)每个函数生成一个基础测试用例,适合先把框架跑通。

 

  (2)表格驱动测试,在同一结构中填写多组输入和预期值。

 

  (3)健壮性测试,使用边界值、异常值和预定义数据组合。

 

  (4)AutoTest,根据目标覆盖率自动补充测试路径。

 

  AutoTest可以生成完整测试脚本,也可以向已有脚本追加测试用例,并围绕函数参数、全局数据、调用参数和返回值生成测试向量。

 

  4、打开测试用例编辑界面

 

  ①在项目中双击生成的测试脚本。

 

  ②打开【Test Script Manager】或【Test Case Editor】。

 

  ③在函数节点下选择目标测试用例。

 

  ④查看输入、预期结果和期望调用区域。

 

  ⑤需要新增场景时复制现有测试用例。

 

  刚生成的测试用例通常已经带有默认输入值、默认预期输出和初始调用顺序。这些内容只是可编辑起点,不能不检查就直接当成需求预期。

 

  二、Cantata测试脚本中的输入和预期结果怎么填写

 

  填写时可以把每条用例理解成三个阶段:运行前准备数据,调用被测函数,调用后检查实际结果。输入不是只填函数参数,函数执行前读取的全局变量、指针数据和外部函数行为也可能属于测试前提。

 

  1、填写普通参数输入

 

  假设被测函数如下:

 

  int calculate_total(int price,int count);

 

  可以先设计正常值、边界值和异常值三类场景。

 

  ①在测试用例中找到【Inputs】区域。

 

  ②把price设置为本次测试的单价。

 

  ③把count设置为本次测试的数量。

 

  ④确认数据类型和取值范围正确。

 

  ⑤在用例说明中写明测试目的。

 

  例如正常场景可以填写price=20、count=3。边界场景可以测试count=0,异常场景则要按照接口要求填写负数或较大数值。输入要对应明确的需求条件,别为了增加用例数量随意填几组数字。

  2、填写指针、数组和结构体

 

  指针参数不能只填一个地址,还要准备它指向的数据。

 

  ①为指针创建测试缓冲区或测试对象。

 

  ②填写数组长度和各元素内容。

 

  ③将指针指向准备好的测试数据。

 

  ④结构体参数按成员逐项赋值。

 

  ⑤检查被测函数是否会修改这块数据。

 

  例如函数接收uint8_t*buffer和size_t length,输入区域要同时准备缓冲区内容和长度。长度填5,数组却只准备3个有效元素,测试本身就已经不一致。

 

  3、填写返回值和输出参数的预期结果

 

  函数执行后的检查通常包括返回值、输出参数和全局变量。

 

  ①在【Expected Results】中找到函数返回值。

 

  ②填写需求规定的预期返回结果。

 

  ③展开指针或引用参数的调用后状态。

 

  ④填写执行后应得到的数据内容。

 

  ⑤补充需要检查的全局变量。

 

  例如输入price=20、count=3时,预期返回值可以填写60。若函数通过指针返回状态,还应填写指针所指数据执行后的预期内容。

 

  预期结果不能直接照着当前程序运行结果填写。这样虽然容易通过,却可能把现有错误固化成“正确答案”。更合适的依据是需求、接口设计、算法公式或经过确认的业务规则。

 

  4、填写外部函数的返回和调用预期

 

  被测函数内部调用其他函数时,可以通过Wrapper或隔离调用控制其行为。

 

  ①在测试脚本中找到被调用函数。

 

  ②为本次测试添加对应调用实例。

 

  ③设置模拟返回值或输出参数。

 

  ④填写被测代码传入的预期参数。

 

  ⑤设置预期调用次数和调用顺序。

 

  Cantata的调用控制可以拦截或模拟函数调用,并检查调用参数、返回值及调用顺序。一个测试用例中同一函数被调用多次时,可以为每次调用设置不同实例。

 

  比如被测函数调用read_sensor(),正常用例可以让它返回有效温度,异常用例可以让它返回错误码。这样不用修改生产代码,也能验证故障处理分支。

 

  三、输入和预期结果填写后怎么检查

 

  脚本能够编译并不代表测试数据已经正确。正式执行前,最好从需求对应关系和测试结果两个方向各检查一次。

 

  1、检查每条用例是否形成完整闭环

 

  ①确认用例说明写清测试条件。

 

  ②核对参数、全局变量和外部调用输入。

 

  ③确认预期返回值有明确依据。

 

  ④检查输出参数和全局状态是否需要验证。

 

  ⑤执行测试并查看实际值与预期值的差异。

 

  正常值、边界值、异常值和故障注入场景应分开编写。一个用例塞入太多目的,失败后反而不好判断是哪项条件引起的。

 

  2、结合覆盖率补充遗漏场景

 

  需求用例执行完后,可以查看语句、分支或MC/DC覆盖情况。存在未覆盖路径时,再分析需要补充哪组输入,而不是为了让覆盖率变高随便改预期值。

 

  AutoTest适合寻找较难想到的路径组合,但自动生成的输入和预期仍要经过人工复核,尤其是涉及业务含义、异常处理和硬件接口的场景。

  总结

 

  Cantata测试脚本怎么生成Cantata测试脚本中的输入和预期结果怎么填写,关键是先让工具生成可执行框架,再按照真实测试条件补齐参数、全局数据、外部调用和结果检查。输入要覆盖正常、边界与异常场景,预期值则应来自需求和设计判断,不能直接复制当前程序输出。希望本文能为大家编写和完善Cantata测试脚本提供参考,如需进一步了解相关内容,可联系咨询。

135 2431 0251