文档主要针对语句覆盖进行软件说明

学习记录:

1.同一份代码可以创建不同的project

2.创建project时要包含头文件

3.宏定义:CODESCROLL=1

4.打桩:打桩设置返回值后所有的用例默认都是一个返回值,所以要新建一个test,执行新test的自带用例达到取反效果

想要在一个test下执行全部分支,可以用

if (CS_TESTCASENO()==1)

return 100;

else

return 20;

int * temp = CS_INT_INPUT(int, "ret");

*((int *)arg0) = &temp;

5.创建单元测试时编译不过去,提示:'""' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

解决办法:重新建一个hightec的hightool

实际操纵过程中没有重建,修改toolchain中已有的4.9.3

1.Env Script 选择C:\HIGHTEC\ide\htc-ide-v2.1.2\plugins\org.apache.ant_1.10.1.v20170504-0840\bin\antRun.bat

2.C标签页下的Compiler和Linker选择C:\HIGHTEC\toolchains\tricore\v4.9.3.0\bin\tricore-gcc.exe

3.C标签页下的Archiver选择C:\HIGHTEC\toolchains\tricore\v4.9.3.0\bin\tricore-ar.exe

4.C++标签页下的Compiler和Linker选择C:\HIGHTEC\toolchains\tricore\v4.9.3.0\bin\tricore-g++.exe

5.C++标签页下的Archiver选择C:\HIGHTEC\toolchains\tricore\v4.9.3.0\bin\tricore-ar.exe

新建工程

选择C文件

起名字和选择工具链

选要测的C文件

增加H文件包含


增加宏定义CODESCROLL=1

增加测试用例

增加C文件里的函数

例1、输入参数测试_inputVarTest

这个函数一共4条语句,软件自动生成了1个测试用例包含17case 覆盖了24、27行,现在需要增加两条case把19、21行的语句覆盖也覆盖上。

添加测试用例

看着代码逻辑设计输入输出值,保证程序能跑到想跑的代码

视图选项记得选语句覆盖~,第一个例子语句覆盖就到100%!!!!

例2、静态变量测试_staticVarTest

添加一个测试函数,并运行。软件没有自动生成用例,需要到test info中手动添加静态变量。

手动添加静态变量

添加4个case,a=0,1,3,4语句覆盖100% 又是小进步!!!

例3、数组变量测试_arrayTest1

增加数组测试函数

发现数组只有成员0,其他成员需要添加

例4、条件覆盖和判定覆盖的覆盖测试_mcdcTest

就是把if判断里的所有可能性跑到了,(a == 10 && b < 30 && c > 50)有4种有效的可能性

第一个不满足的时候,后面就不关心了

case全删除,重新写4个case

case1满足全对
case2满足C2错

case3满足C1错

case4满足C0错

语句覆盖100%只需要前2个case,条件覆盖需要4个~~~

例5、桩函数返回值测试_undefinedStubTest

加入打桩测试函数

自动生成的桩函数不能覆盖115行,现在需要手动往case里添加桩函数返回值最后我能够控制返回什么

增加桩,同时加测试代码

return CS_INT_INPUT(int, "ret");/*返回输入ret变量的值*/

这样可以控制函数返回什么数了

例6、空指针参数测试_VoidPtrParmTest

增加函数

增加桩函数测试代码,把输入的值传到指针参数。

int * temp = CS_INT_INPUT(int, "ret1");

((int )arg0) = &temp;