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.rhkb.cn/news/421440.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub-RickdiculouslyEasy靶场(9个flag)

flag1 端口9090有一个flag flag2 13337端口 flag3 使用dirb进行扫描网站的80端口,发现一些敏感文件 访问80端口,没有发现有效信息 访问passwords目录 访问FLAG.txt 再返回访问passwords.html文件 查看页面源代码发现一个密码 flag4 之前扫描到了robo…

一些硬件知识(二十)

单端差动放大器并不是指“单输入单输出”。它的意思是:输入端为差分输入,而输出为单端输出。 低压差线性稳压器(LDO,Low Dropout Regulator)是一种常见的线性稳压器,具有低输入输出电压差的特点&#xff0c…

全视通医院智慧后勤全场景管理+一体化解决方案,让医院管理提质增效

在 “十四五” 时期,公立智慧医院建设正如火如荼地进行着。2021年,国家卫生健康委医政医管局发布《医院智慧管理分级评估标准体系(试行)》,从政策层面给出了推进面向医务人员的“智慧医疗”、面向患者的“智慧服务”、…

线性方程组求解——预处理Preconditioning介绍

为什么需要预处理? 工程中出现的大规模线性方程组往往是病态的, 对数值求解带来很大的困难: ▶ 使得迭代法(比如Krylov 子空间迭代法) 收敛变得非常缓慢 ▶ 对数值解的精度产生很大的影响(在有限精度计算情形下) 对于第一个问题, 当前的有效处理方法是预处理, 预处…

Flutter的升级和降级步骤

升级 1.版本升级 // 升级到指定版本 flutter upgrade 版本号 // 升级到最新版本 flutter upgrade 2. 更新开发配置 启动 Android Studio。 打开 Settings 对话框,查看 SDK Manager。 如果你已经打开了一个项目,请打开 Tools > SDK Manager。 如果…

strtok函数讲解使用

目录 1.头文件 2.strtok函数介绍 3.解释strtok函数 小心&#xff01;VS2022不可直接接触&#xff0c;否则&#xff01;没这个必要&#xff0c;方源面色淡然一把抓住&#xff01;顷刻炼化&#xff01; 1.头文件 strtok函数的使用需要头文件 #include<string.h> 2.strto…

运维工程师需要掌握什么技能?

&#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 运维工程师作为确保IT基础设施稳定运行的关键角色&#xff0c;需要掌握一系列核心技能。这些技能涵盖了从系统监控到故障排查&#xff0c;从自动化脚本编写到云服…

Linux基本

一、安装 &#xff08;一&#xff09;bios basic input / output system cpu虚拟化技术需要开启 intel amd 不同品牌进入bios快捷键不一样 &#xff08;二&#xff09;vmware 新建 配置硬件 硬盘 建议单个虚拟硬盘文件&#xff0c;比较好管理 r如果有转移的需求&#xff…

Android Studio下载Gradle失败问题解决

问题说明 使用 Android Studio 构建程序报错如下 Could not install Gradle distribution from https://services.gradle.org/distributions/gradle-7.5.1-bin.zip. Reason: java.net.SocketTimeoutException: Connect timed out问题解决 下载对应版本的压缩包 gradle-7.5.1…

【微服务】⭐️华为云obs功能抽取到公共服务,供所有项目使用

目录 &#x1f378;前言 &#x1f37b;一、公共服务搭建 &#x1f37a;二、代码实现 1.工具类编写 2.项目引入使用 &#x1f379;三、章末 &#x1f378;前言 小伙伴们大家好&#xff0c;上次讲了如何本地对接华为云Obs对象存储服务&#xff0c;在本地项目中通过sdk引入调用…

推理与训练,分布式训练

什么是推理training 在人工智能领域&#xff0c;推理是指经过训练的机器学习模型从全新的数据&#xff08;输入&#xff09;中得出结论&#xff08;输出&#xff09;的过程。通俗地讲&#xff0c;推理是模型的实际运行。 什么是训练 inference 在人工智能领域&#xff0c;训…

【JAVA多线程】JDK线程同步工具:Semaphore、CountDownLatch、CyclicBarrier

目录 1.可能会遇到的线程协作场景 2.Semaphore 3.CountDownLatch 4.CyclicBarrier 1.可能会遇到的线程协作场景 在并发编程中&#xff0c;线程除了独自向前运行&#xff0c;还可能相互之间要进行协作&#xff0c;以保证完成最终总的目标。可能会遇到的几种任务之间的协作&…

算法知识点————背包问题【动态规划】【打家劫舍】

万能头文件#include<bits/stdc.h> 01 背包 定义&#xff1a; 物品只能用1次。01对应选还是不选第i个物品 .N个物品、V容量的最大价值。 思路&#xff1a; &#xff08;1&#xff09;f[ i ] [j] 表示前i个物品容量j的最大价值。 &#xff08;2&#xff09;当前背包容量…

中国人民银行:数字人民币交易额已达7万亿元!中俄考虑使用国家数字货币进行双边结算!

近年来&#xff0c;数字货币的迅速发展引起了全球的广泛关注。中国人民银行&#xff08;PBOC&#xff09;近日透露&#xff0c;数字人民币&#xff08;e-CNY&#xff09;的交易额已接近1万亿美元&#xff0c;这标志着中国在数字货币领域的重大进展。同时俄罗斯也表示&#xff0…

file | 某文件夹【解耦合】下的文件查找功能实现及功能单元测试

文件查找工具 概要思路OS模块 --- 学习版os.getcwd()os.path.dirname(os.getcwd())os.path.dirname() 和 os.path.basename() OS模块 — 实战版单元测试解耦合 概要 梳理业务主逻辑&#xff1a; 查看存放被采集JSON数据的文件夹内的文件列表【所有 包含文件夹下的文件夹下的文…

C语言 | Leetcode C语言题解之第395题至少有K个重复字符的最长子串

题目&#xff1a; 题解&#xff1a; int longestSubstring(char* s, int k) {int ret 0;int n strlen(s);for (int t 1; t < 26; t) {int l 0, r 0;int cnt[26];memset(cnt, 0, sizeof(cnt));int tot 0;int less 0;while (r < n) {cnt[s[r] - a];if (cnt[s[r] - …

论文阅读:3D Gaussian Splatting for Real-Time Radiance Field Rendering

论文地址&#xff1a;https://arxiv.org/abs/2308.04079 代码地址&#xff1a;graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering" (github.com) 概要 提出一个实时且能够…

论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击阅读原文观看作者直播讲解回放&#xff01; 作者简介 孙洲浩&#xff0c;哈尔滨工业大学SCIR实验室博士生 概述 尽管大语言模型&#xff08;LLMs&#xff09;展现出了非常强大的能力&#xff0c;但它们仍然…

ApplicationVerifier介绍说明

文章目录 1、介绍1、安装2、配置需要验证的项目2、在WinDbg中调试3、其他配置项 1、介绍 AppVerifier 特别用于检测和帮助调试内存损坏、危险的安全漏洞以及受限的用户帐户特权问题。 AppVerifier 有助于创建可靠且安全的应用程序&#xff0c;方法是监视应用程序与Windows操作…

53 - I. 在排序数组中查找数字 I

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9853%20-%20I.%20%E5%9C%A8%E6%8E%92%E5%BA%8F%E6%95%B0%E7%BB%84%E4%B8%AD%E6%9F%A5%E6%89%BE%E6%95%B0%E5%AD%97%20I/README.md 面试题 53 - I. 在排序数组中查找数字 …