当前位置: 首页 > news >正文

TESSY创建以及设计一个测试用例

我们以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,执行后结果如下:

单元测试用例的创建、设计就介绍到这里了.


http://www.mrgr.cn/news/24968.html

相关文章:

  • 【3.6 神经网络中的输出层】
  • Keras中initializers模块常见模型初始化方法详解
  • wx小程序渗透思路
  • 深度学习算法研究与应用
  • [数据集][目标检测]烟叶病害检测数据集VOC+YOLO格式612张3类别
  • ElementUI 快速入门:使用 Vue 脚手架搭建项目
  • 问:Java反射的原理是什么?如何反射,有哪些场景?
  • 深入理解Java内存模型:对并发编程的影响
  • 1450. 在既定时间做作业的学生人数
  • 智慧物流系统小程序的设计
  • Kotlin中的冷流和热流以及如何让Flow停下来
  • 研发规范之六脉神剑
  • [晕事]今天做了件晕事44 wireshark 首选项IPv4:Reassemble Fragented IPv4 datagrams
  • ORB-SLAM2关键点总结
  • 【人脸检测】SCRFD:训练数据采样和计算分配策略结合的高效人脸检测方法
  • JAVA智能辅导因材施教家教系统小程序源码
  • Python写一个文件自动计数工具
  • [Python学习日记-16] 细讲数据类型——元组
  • MongoDB 原子操作
  • [Python学习日记-12] Python中的流程控制(for)