我们以tessy5.1 IDE为例,给大家展示编写一个测试用例的过程。
还不会创建工程的,可以参考以下这篇文章:
TESSY创建单元测试或集成测试工程_tessy 集成测试-CSDN博客
接下来我们以这个作为开始状态进行介绍
1、添加源文件
2、添加头文件路径
3、执行分析
也选中当前模块,点击或即可对工程进行分析
如果分析成功,我们就看到源码中的函数都显示在测试module下了。先分析,再进行测试,分析过程中的问题,一定要解决。
4、外部函数打桩
可以看到下图的外部函数,有一个内圈是白色,就说明该函数虽然使用到了,但是却没有打桩(导入已有的测试用例,如果源文件添加了调用外部的接口,就必然看到)
下面看到的就是已经打了普通桩的函数
对于需要打普通桩,还是高级桩,规则是:
1、返回值是void型外部函数,直接右击点击 Create Stub (for current Testobject);
2、返回值非void型,需要右键点击 Create advanced Stub(for current Testobject)
后续会给大家写一篇介绍怎么打高级桩的文章
5、创建测试用例
当我们看到分析后,函数前面的图标没有一个内圈是白色的或者浅黄色的,说明这个函数没有创建测试用例
这时我们就需要给这个函数创建一个测试用例了
也可以通过这个方式创建用例
下面就是已经创建了一个用例了
当我们单击用例时,看到函数的前面的图标有一个内圈时白色的,就说明这个测试用例的空的,还没有内容,如右边的红框看到的。
6、设计测试用例
测试用例的设计,就需要根据源码来分析、设计了。
看一下void iLightOff(void)的源码
static void iLightOff(void)
{if (off == state_light)return;else{state_light = off;LightOff();}
}
可以看到,函数中有两个分支,分支走向取决于 state_light的值。所以可以设计出两条测试用例:
1、设置state_light的值为off,期望的结果是:state_light的值是off,没有调用别的函数,直接退出了;
2、设置state_light的值为on,期望的结果是:state_light的值是off,将会调用void LightOff(void),接着也退出了;
接下来按照步骤5,再创建一个测试用例,输入参数(样例可以双击选择,没有选择的直接键盘输入)
填写好输入输出的值后,点击或Ctrl+s进行保存
看到函数前面的浅黄色小圈,说明测试用例已经填写了数据;
接下来可以点击或者,执行用例了。
不过后面这个方式需要选择某一条用例后才可以操作,因为这个方式是执行选中的用例。
这是执行后,可以看到每一条用例都有一个绿色的小勾,说明用例执行成功了。
7、覆盖率
单元测试属于白盒测试,覆盖度一般有(摘录于《软件测试的艺术》这一本书):
1、语句覆盖;
2、判定覆盖;
3、条件覆盖;
4、判定/条件覆盖;
5、多重覆盖;
言归正传,接着说怎么在TESSY工具中配置覆盖率,点击测试执行绿色按钮右边的下拉小三角
选择Edit TestExecution Settings . . . ,可以对覆盖率进行设置,保存后执行。
注:
1、None 表示不计算任何覆盖度
2、Test object only 表示只计算当前被测函数的覆盖度
3、Test object and called functions 表示计算被测函数和调用函数的覆盖度
不同的测试用例,设置如下:
1、单元测试时,选Test object only only,覆盖度选C0,C1,MC/DC
2、集成测试时,选T est object and called functions functions,覆盖度选CPC 和FC
现在介绍的单元测试,因此我们选择C0,C1,MC/DC,执行后结果如下:
单元测试用例的创建、设计就介绍到这里了.