一条测试用例要反复验证不同输入时,把数据放进CSV或Excel表格,比逐个复制用例省事。C/C++test会按数据行执行测试,但数据源建好了,不代表函数参数已经和表格列对应。下面以C/C++test Professional的Eclipse集成界面为例,说明怎样导入数据,以及参数对不上时查哪里。
一、C/C++test怎么导入测试用例数据
先准备表格,再将它添加为数据源,最后在用例中指定各参数读取哪一列。建议把输入值和预期结果放在不同列,并给列起容易辨认的名称。
1、添加已有数据文件
①整理CSV或Excel文件,确认第一行的列名与各行数据对应。
②点击【Parasoft】→【Show View】→【Test Case Explorer】,右键点击项目或测试套件,选择【Add New】→【Data Source】。
③选择【CSV】或【Excel】,点击【Finish】,填写数据源名称和文件位置。
④检查数据源识别出的列名,保存设置。
2、将数据源绑定到测试用例
①在【Test Case Explorer】中打开由测试用例编辑器创建的用例;新建用例时,可右键点击测试套件,选择【Add New】→【Test Case using Editor…】。
②在用例编辑器的【Parameters】步骤中选择【Data source】,输入刚创建的数据源名称。
③点击【Update column names】,确认列名已显示;再检查【Variables】中的输入值和【Assertions】中的预期值,分别引用了正确的数据列。
④点击【File】→【Save】,运行用例,查看各行数据的执行结果。
如果现有用例没有【Parameters】步骤,可从【Add new】中添加。测试用例编辑器创建的用例可以按上述方式修改;其他方式生成或编写的用例,需要检查其测试代码中的数据源引用。
二、C/C++test测试数据导入后参数匹配错误如何处理
先取报错的一行,对照原始表格、数据源显示的列名,以及用例实际引用的列名。若值错位,检查文件解析;若提示找不到列,检查名称;若取到了值却无法使用,再检查数据类型。
1、确认用例选中了正确的数据源
①在用例编辑器中打开【Parameters】,核对【Data source】中的名称。
②点击【Update column names】,查看当前用例能读取到哪些列。
③如果列名不符合预期,在【Test Case Explorer】中右键点击数据源,选择【Edit】,检查关联的文件位置。
④修改后保存数据源和用例,重新运行测试。
2、检查CSV的表头与分隔符
①打开原始CSV文件,检查第一行是否为表头,并核对数据源设置中的表头选项。
②核对文件实际使用的逗号或其他分隔符,与数据源设置是否一致。
③如果某个字段本身包含分隔符,为该字段加上双引号;检查行末是否多了一个分隔符。
④保存文件,在用例中重新点击【Update column names】,再运行测试。
没有表头的CSV使用列序号识别字段,首列从0开始。把首行数据误设为表头,或把表头误当数据,都可能让引用的列名和实际内容错位。
3、核对列名和参数引用
①在【Parameters】中查看当前列名,与【Variables】、【Assertions】里引用的名称逐一核对。
②如果使用【Parameterize test case...】自动匹配,检查列名是否符合当前设置的命名模式。
③对不匹配的列,修改数据文件的列名,或调整用例中的列引用。
④保存后先运行一行数据,确认输入参数与预期结果各自取自正确的列。
自动匹配会区分输入变量、断言值和数据类型;列名没有按选定模式编写时,不能只靠列的排列顺序判断映射是否正确。
4、检查数据值的类型
①对照被测函数的参数类型,检查数字列、布尔列和字符串列中的实际内容。
②将整数列中的文字、空值或多余字符改为可读取的数值;检查布尔值是否按用例使用的格式填写。
③如果编辑的是测试代码,核对读取数据的函数是否与列值类型一致,例如整数使用CPPTEST_DS_GET_INTEGER,字符串使用CPPTEST_DS_GET_CSTR。
④重新运行报错的数据行,确认参数能够读取并传入函数。
当代码引用的列不存在,或列值与读取方式不匹配时,测试执行可能中断。此时应先核对列名和类型,再检查被测函数本身。
三、测试数据较多时怎么减少后续错位
表格增加新列、调整列名后,已有用例中的引用未必会跟着改变。给数据文件留一份简短的字段说明,并在修改后先试跑少量数据,能更早发现错位。
1、先用少量数据核对映射
①在数据文件中保留几行容易辨认的测试值,每列填入不同数值。
②运行用例,逐行核对输入参数和预期结果。
③确认对应无误后,再加入其余测试数据。
2、修改表格后同步检查用例
①改动列名或列顺序后,打开用例的【Parameters】,点击【Update column names】。
②逐项检查【Variables】和【Assertions】中的列引用。
③保存并运行受影响的用例。
总结
测试数据表的价值,在于让同一条用例方便地验证正常输入、边界值和异常值。表格越大,列名和参数之间的关系越要清楚:看到一次匹配错误,最好顺手检查同一列被哪些用例使用,免得修好眼前这一行,其他用例仍取错值。希望这篇关于C/C++test导入测试用例数据及处理参数匹配错误的内容对大家有帮助。如有C/C++test相关需求,欢迎联系我们咨询。