软测工具Testbed的使用以及动态测试实例

article/2025/10/23 11:45:10

基于大连理工大学软件测试与质量保证实验

1,软件与环境安装

由于该版本的Testbed是测试版本,有一定的使用期限。所以最好是下载到虚拟机里面然后使用之前用快照还原状态。当然直接下载到电脑里可以,但注意在使用期限内完成实验。

下载如图所示的两个文件
在这里插入图片描述
地址:链接:https://pan.baidu.com/s/1YgQJjDlE5jBRkU-ZOA5ysw
提取码:1x4x

打开testbed工具安装包->LDRATS-CEE->setup.exe 进行安装,过程中一路next(安装路径可自定义)。这样就把软件安装好了。

随后配置环境路径,利用env中的文件(我的路径为:E:/testbed/env)。

我的电脑->属性->高级->环境变量->在path中添加 “E:/testbed/env/bin/amd64”

我们将会进行动态测试,所以还要在TBrun中进行环境配置(注意,每次新建Sequence时,这一步都需要重复配置)。这个后面再讲,先把需要配的东西贴上来。

compile command:
cl /MT /w /c /Tc "$(Name)" -I $(SourcedirQuoteUnEnv) $(IncludedirsLeadQuoteUnEnv) -I"E:\testbed\env\include"
link conmmand:
link "$(DHobjPaths)" /out:"$(Exe)" /libpath:"E:\testbed\env\amd64" /libpath:"E:\testbed\env\x64" libcmt.lib kernel32.lib

注意这里有三个地方的路径是需要根据自己的情况修改的(“E:\testbed\env\include”,“E:\testbed\env\amd64”,“E:\testbed\env\x64”)。

2,动态测试实例 Testrain.c

对于printtype函数的测试,其源码如下:

void printtype(int i,int j,int k,int match)
{if( match == 0 ) goto l1;elseif( match == 1 ) goto l2;elseif( match == 2 ) goto l3;elseif( match == 3 ) goto l4;goto equil;
l1:    if(i+j<=k) goto not_a_tri;if(j+k<=i) goto not_a_tri;if(i+k<=j) goto not_a_tri; else goto scalene;
l2:    if(i+j<=k ) goto l1; else goto isos;
l3:    if(i+k<=j ) goto not_a_tri; else goto isos;
l4:    if(j+k<=i ) goto not_a_tri;else goto isos;
equil:       printf(" equilateral");goto end;
isos:       printf(" isosceles");goto end;
not_a_tri:      printf(" not a triangle");goto end;
scalene:    printf(" scalene");
end:;
}

我们的目标是要达到语句覆盖100%,同时分支覆盖95%以上。

(1)导入要测试的文件

选择文件
在这里插入图片描述
这样选择即可。

(2)进行单元测试

在这里插入图片描述

(3)创建Sequence与test case

完成第(2)步后,将会进入一个新的窗口——TBrun窗口。

我们先来针对printtype函数创建一个序列(Sequence)。
上面工具栏Sequence->New …
调整code coverage 和 test environment,分别如下:
在这里插入图片描述
在这里插入图片描述
创建完序列之后,这里有很关键的一步是配置TBrun的compile和link,否则在序列build driver时是会报错的。
在上面工具栏选择如下:
在这里插入图片描述
选择compile&link方式构建,并且把之前说的路径配上来。

compile command:
cl /MT /w /c /Tc "$(Name)" -I $(SourcedirQuoteUnEnv) $(IncludedirsLeadQuoteUnEnv) -I"E:\testbed\env\include"
link conmmand:
link "$(DHobjPaths)" /out:"$(Exe)" /libpath:"E:\testbed\env\amd64" /libpath:"E:\testbed\env\x64" libcmt.lib kernel32.lib

在这里插入图片描述
创建完序列并且弄完TBrun环境之后,就可以在序列中创建测试用例了。我们针对printtype函数创建测试用例:
在这里插入图片描述
之后在该用例处,编辑输入值,与预期输出值,例如:
在这里插入图片描述
像这样共创建10个测试用例就可以达到100%的语句覆盖和100%的分支覆盖了。测试用例我就不写出来了,有困难的可以私聊。
在这里插入图片描述
下面是该函数动态测试的数据流图,绿色表示达到过,红色表示没有达到过。
在这里插入图片描述
可以看到对于printtype函数,已经达到了语句覆盖和分支覆盖100%


http://chatgpt.dhexx.cn/article/KHQDKRZy.shtml

相关文章

testbed常见问题及处理(1)

1.序列名不规范 为了工程化的管理测试用例&#xff0c;单元测试时&#xff0c;建议为每个被测函数&#xff08;uut&#xff09;创建一个序列&#xff0c;而序列名使用函数名&#xff0c;以便后期维护管理。 2.未确认代码是否编译通过&#xff0c;就开始测试 应当在确定代码编译…

Testbed静态分析

使用testbed进行代码的静态分析主要有四个步骤&#xff1a; 选择分析对象 分析前的设置 分析项的选择与分析过程 查看分析结果 1、选择分析对象 可通过两种方式选择被分析对象&#xff1a;单个文件分析、以集&#xff08;set&#xff09;的形式分析&#xff0c;其中以set…

Testbed单元测试

在testbed中C代码中的"单元"指的是一个函数&#xff0c;单元测试就是针对每个函数进行测试。 在使用testbed进行单元测试前需要先确认当前使用的编译器是否正确&#xff0c;且current compiler和default compiler是否是一致的。如果当前编译器不正确&#xff0c;可点…

中山大学2019年研究生复试机试题目(数据科学与计算机学院)

\qquad 本人在2019年9月参加了中山大学数据科学与计算机学院的推免面试&#xff0c;将模拟机试的题目记录如下。&#xff08;正式机试时有原题出现&#xff09; 小伙伴们复试加油哇&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; \qquad 详细内容已放进网盘&am…

关于我考研的这一年随记 —— 2022暨南大学电子信息计算机技术专业初试第三复试第一

出成绩了&#xff0c;初试第三&#xff0c;复试第一&#xff0c;成功圆梦。这一刻&#xff0c;我与17岁的自己和解。四年前的遗憾终于在今天得到了圆满。这一路走来&#xff0c;我迷茫、焦虑、惶恐与不安&#xff0c;似乎对自己的执念有一股莫名的冲动和那么一丝后怕。出成绩前…

中山大学软件工程专硕考研经验(双非跨考)

我是一名双非医科大学的本科生&#xff0c;因为不是很喜欢这个专业&#xff0c;并且对计算机感兴趣&#xff08;喜欢写代码&#xff09;&#xff0c;最后就决定跨考计算机了。为什么选择中大呢&#xff1f;说来话长&#xff0c;很多人可能觉得我自不量力&#xff0c;双非跨考还…

2023中山大学计算机考研经验分享

最新数据见&#xff1a;中山大学考研经验分享历年真题_N诺计算机考研 中山大学数据科学与计算机学院官网 中山大学人工智能学院&#xff1a;http://sai.sysu.edu.cn/ 中山大学软件学院&#xff1a;http://sse.sysu.edu.cn/ 中山大学系统科学与工程学院 &#xff1a;http://sss…

【计算机考研院校推荐】广东地区汇总-22考研版

本篇文章由皮皮灰收集 数据来源21考研&#xff0c;仅供22考研参考 收集招生081200 计算机科学与技术、083500 软件工程、083900 网络空间安全、085400 电子信息-计算机方向的院校 更为详细的院校信息可在后台回复获取 广东地区院校目录 1.(10558)中山大学【985/211】 2…

2023 暨南大学计算机专硕(电子信息计算机技术方向)考研经验分享

文章目录 前言数学二专业课 848英语二政治复试杂七杂八考试地点与考试方式作息坐姿群848 资料 总结 前言 2023 年暨南大学计算机专硕考生&#xff08;电子信息计算技术方向&#xff09;&#xff0c;初试成绩 392 分&#xff08;复试线 344 分&#xff09;。非常感谢前人的经验…

2020暨南大学计算机考研经验分享

前言&#xff1a; 主要介绍了今年暨南大学计算机考研的相关情况、848真题的部分回忆内容、自己的一些经验教训&#xff0c;还有复试名单拟录取名单等第一手资料&#xff0c;文章很长&#xff0c;可以只看自己目标专业的情况和真题部分。 一、个人情况介绍 报考的是暨南大学电子…

2022年中山大学计算机考研复试分数线预测

中山大学属于34所自划线院校之一&#xff0c;考研复试分数线分国家线和院校自划线&#xff0c;院校自划线公布时间一般早于国家线&#xff0c;报考中山大学计算机研究生的考生&#xff0c;复试分数线请以院校官网公布的分数线为准! 2021年中山大学计算机考研复试分数线公布日期…

中山大学计算机考研资料汇总

中山大学数据科学与计算机学院官网 中山大学&#xff08;Sun Yat-sen University, SYSU&#xff09;&#xff0c;简称“中大”&#xff0c;由孙中山先生创办&#xff0c;有着一百多年办学传统&#xff0c;是中国南方科学研究、文化学术与人才培养的重镇。中山大学是教育部和广…

考研 | 2020中山大学软件工程/计算机考研初试经验分享

考完很久了&#xff0c;心血来潮写个经验贴&#xff0c;由于今年线上复试&#xff0c;与往年形式差异很大&#xff0c;而且题目难易程度差异很大&#xff0c;抽到什么题全看运气&#xff0c;所以不太想写复试的经验贴&#xff0c;如果有小伙伴想看的话可以留言~ 1 关于我 1.1 …

321分排第二?985中山大学计算机考研超级爆冷?

大家都知道&#xff0c;今年计算机考研超级火爆&#xff0c;前所未有的爆炸&#xff0c;400的高分到处都是&#xff1a; 神仙打架&#xff01;今年计算机考研爆炸实况&#xff01; 但是这么爆炸的计算机考研&#xff0c;有没有学校爆冷呢&#xff1f; 网上流传这么两张图&#…

2024中山大学计算机考研信息汇总

中山大学数据科学与计算机学院官网 中山大学&#xff08;Sun Yat-sen University, SYSU&#xff09;&#xff0c;简称“中大”&#xff0c;由孙中山先生创办&#xff0c;有着一百多年办学传统&#xff0c;是中国南方科学研究、文化学术与人才培养的重镇。中山大学是教育部和广…

2021年一战上岸中山大学计算机专硕考研经验(详细时间规划)

2021年7月29日上午11点25分&#xff0c;从公布拟录取名单起&#xff0c;等了四个月&#xff0c;终于从快递员手中接到了我的录取通知书&#xff0c;悬了一年半的心也终于踏实了&#xff0c;不会有差错了&#xff0c;是的&#xff0c;中山大学&#xff0c;我来了&#xff01; 之…

Spfa算法总结(C/C++)

文章目录 一: Spfa算法分析二: 代码分析 一: Spfa算法分析 1. 问题介绍&#xff1a;  2. 问题分析&#xff1a;  当我们遇到单源最短路边权为负值问题时这时候该如何处理呢&#xff1f;  其实我们现在就可以使用Floyd()算法了&#xff0c;我们可以从两个方面来理解这个算法…

第十八章 SPFA算法以及负环问题(利用dijkstra推导出该算法,超级详细!!)

第十八章 SPFA算法以及负环问题 一、dijkstra算法的弊端二、dijkstra算法的优化1、SPFA算法&#xff08;1&#xff09;算法思路&#xff1a;&#xff08;2&#xff09;算法模板&#xff1a;问题&#xff1a;模板&#xff1a;逐行分析&#xff1a; 三、SFPA解决负环问题&#xf…

SPFA算法理论体系终极论证

SPFA相关详细论证 历史事件Bellman-Ford算法简述和证明SPFA的正确代码段凡丁的贡献正确复杂度分析 历史事件 众所周知&#xff0c;SPFA是一种对Bellman-Ford算法的优化。国内业界首次提出是1994年西南交通大学的段凡丁在学报上发表的论文。但实际上早在1956年Bellman-Ford算法…

spfa判定负环

算法思想&#xff1a; 我们用数组记录每个结点的最短路径估计值&#xff0c;用邻接表来存储图G。 采取的方法是动态逼近法&#xff1a; 1、设立一个先进先出的队列用来保存待优化的结点。 2、优化时每次取出队首结点u&#xff0c;并且用u点当前的最短路径估计值对离开u点所指向…