
【动态测试_软件操作_语句覆盖100%】
文档主要针对语句覆盖进行软件说明
学习记录:
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;