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

server/2024/9/25 10:24:56/

我们以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.ppmy.cn/server/118924.html

相关文章

HarmonyOS开发5.0【骨架屏】 app界面制作

实现原理 1.定义组件和状态变量: 使用 Entry 和 Component 装饰器定义了一个名为 IvSkeleton 的组件。 定义了一个状态变量 translageX,初始值为 -100%,用于控制闪电效果的位置。 定义了两个数值变量 widthValue 和 heightValue,…

JVM相关

1.JVM内存区域 一个运行起来的java进程就是一个Java虚拟机,就需要从操作系统中申请一大块内存。 内存中会根据作用的不同被划分成不同的区域: (1)栈:存储的内容是代码在执行过程中,方法之间的调用关系&a…

2024年9月HarmonyOS鸿蒙应用开发者高级认证全新题库(覆盖99%考题)

一个小时通过鸿蒙高级认证 1、在开发 Harmony0S 应用工程时, 随着业务的发展,现在需要创建一个模块, 关于在 DevEco Studio 中创建 Module , 下列选项哪种方式是错误的? 必对 在 hvigor 目录下,单击鼠标右键&#xf…

保护您的企业免受网络犯罪分子侵害的四个技巧

在这个日益数字化的时代,小型企业越来越容易受到网络犯罪的威胁。网络犯罪分子不断调整策略,并使用人工智能来推动攻击。随着技术的进步,您的敏感数据面临的风险也在增加。 风险的不断增大意味着,做好基本工作比以往任何时候都更…

面试—MySQL

目录 多表查询 事务 存储引擎 索引结构 索引分类 SQL性能优化 索引失效 视图 存储过程 触发器 MySQL锁 全局锁 表锁 行锁 多表查询 分类 内连接 只返回两个表符合条件的数据,相关联的数据(两个表的交集) 外连接 左外连接以左…

vscode搭建ros开发环境问题记录(更新...)

文章目录 vscode 不能自动补全方法一:方法二: 开发环境: vmware 15.7 ubuntu 20.04 ros noetic vscode 不能自动补全 方法一: 这里将头文件已经正确包含到c_cpp_properties.json中代码中仍然不能自动补全, 将C_CPP插…

Spring01

spring框架 spring是轻量级的容器框架 spring framework 1、Spring核心学习内容 IOC、AOp, jdbcTemplate,声明式事务 2、IOC:控制反转,孚以管理部8号对象 3.AOP:切面编程4.JDBCTemplate:是spring提供一套访问数据库的技术,应用性强,相对好理解5.声明式…

【SQL】百题计划:SQL对于空值的比较判断。

[SQL]百题计划 方法&#xff1a; 使用 <> (!) 和 IS NULL [Accepted] 想法 有的人也许会非常直观地想到如下解法。 SELECT name FROM customer WHERE referee_Id <> 2;然而&#xff0c;这个查询只会返回一个结果&#xff1a;Zach&#xff0c;尽管事实上有 4 个…