首页 > 其他分享 >LDRA Testbed(TBrun)软件单元测试_操作指南

LDRA Testbed(TBrun)软件单元测试_操作指南

时间:2024-05-29 09:33:56浏览次数:20  
标签:Testbed 函数 单元测试 TBrun 测试 测试用例 LDRA

系列文章目录

LDRA Testbed软件静态分析_操作指南
LDRA Testbed软件静态分析_自动提取静态分析数据生成文档
LDRA Testbed软件静态分析_Jenkins持续集成_(1)自动进行静态分析的环境搭建
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果
LDRA Testbed软件静态分析_软件质量度量
LDRA Testbed软件静态分析_常见问题及处理
LDRA Testbed(TBrun)软件单元测试_操作指南
LDRA Testbed(TBrun)软件单元测试_实例讲解
LDRA Testbed(TBrun)软件单元测试_常见问题及处理
LDRA Testbed(TBrun)软件集成测试_操作指南
LDRA Testbed(TBrun)软件集成测试_实例讲解
LDRA Testbed(TBrun)软件集成测试_常见问题及处理
粉丝问题解答系列文章… …
其他持续更新中… …


文章目录


前言

通过前面的几篇文章,使用Testbed进行软件静态分析的内容已经基本讲解完毕。从这篇文章开始,将继续讲解如何使用TBrun进行软件单元测试、软件集成测试。文章皆为本人的一些使用经验,若有不当之处,欢迎各位读者交流指正。


一、TBrun简介

TBrun是LDRA公司出品的软件单元/集成测试工具,其能够自动生成测试驱动、自动执行测试用例、自动统计测试覆盖率,测试人员只需要专注于测试用例设计,帮助开发人员和测试人员更高效地完成测试任务。

二、TBrun界面简介

TBrun软件界面如下:
在这里插入图片描述
①是日志信息窗口,比如生成测试驱动、编译测试程序、执行测试用例等过程,都会在窗口输出相应的日志信息。
②是测试用例窗口,显示已经设计的所有用例。
③是文件视图窗口,显示被测源码文件下的变量、类型、函数以及测试覆盖率等。
④是所有调用的函数视图,显示当前被测源码文件中的所有函数。
⑤是测试用例输入输出窗口,每一条测试用例都可以在这个窗口中设计相应的输入输出列表。

三、单元测试配置

1、新建测试工程

在TBrun的上方菜单栏点击Source -> Single File(单个文件)或Multiple Files(多个文件),在弹出的窗口中选择单个被测源码文件或多个被测源码文件:
在这里插入图片描述
以Single File(单个文件)为例,在select file窗口选择一个被测源码文件:
在这里插入图片描述
导入被测源码文件后,TBrun会自动进行静态分析,分析完成后,会显示出file view和calls view窗口显示相关信息:
在这里插入图片描述

2、配置编译器

点击TBrun中上方菜单栏的Configure -> LDRA Testbed Configuration Options -> Switch Compiler进行编译器配置:
在这里插入图片描述
在弹出的Configure Compiler窗口中确认Default Compiler和Source Compiler,以选择IAR编译器为例,切换编译器后点击OK即可:
在这里插入图片描述
需要注意的是:
1、Default Compiler和Source Compiler都应该选择目标编译器;
2、如果在列表中没有找到对应编译器,可以通过Add Compiler添加需要的编译器(需要先配置编译环境)。

四、编写测试用例

1、创建测试序列

在TBurn中是使用测试序列来管理测试用例和测试数据的,因此在新建测试用例前需要创建序列(为了方便管理,通常一个被测函数创建一个测试序列)。
在TBurn菜单中选择Sequence->New:
在这里插入图片描述
输入序列名称(为了方便管理,序列名以函数名命名),勾上Code Coverage选项(这样在运行测试用例后才会对代码覆盖率进行统计):
在这里插入图片描述
进行单元测试时,在Test Scenarios选项卡选择Isolate fully all code elements选项(完全隔离所有代码元素,即单元测试时,将本单元以外的调用全部默认打桩隔离):
在这里插入图片描述
点击“Continue”即可完成测试序列的创建。

2、创建测试用例

在TBurn界面的右上角文件视图窗口中,选中被测函数,鼠标右键->Create New Test Case创建测试用例:
在这里插入图片描述
弹出测试用例创建向导窗口,此时窗口会显示函数的相关信息,如果被测函数涉及到指针,还会引导你设置指针指向的实体,按照引导步骤操作即可:
在这里插入图片描述
创建好测试用例后,会在左下角窗口中生成相应的测试用例条目,在右下角会显示该测试用例的默认输入输出列表,如下所示:
在这里插入图片描述

3、编写用例描述

用例描述包括序列级别的描述和用例级别的描述。
1、序列级别的描述
在TBurn菜单中点击Sequence->Sequence Documentation,在弹出的下图窗口中进行描述即可:
在这里插入图片描述

2、用例级别的描述
选中相应的测试用例,鼠标右键->Documentation & Requirements->Documentation,在弹出的下图中进行描述即可:
在这里插入图片描述
在这里插入图片描述
在测试用例描述中,建议可以填写被测软件版本、设计需求追踪、测试类型、测试方法、测试用例概述等,用于测试用例的管理、维护,以及生成测试文档。

4、设置桩函数

桩函数是被测试函数调用的子函数的一个替代函数,使得测试时不用关注原调用函数的具体功能,可以专注于被测函数本身的实现逻辑。对于桩函数有很多可选操作,涉及到桩函数的形参输入检查,形参输出赋值,桩函数返回值设置,桩函数修改全局变量(C++中还包括改变成员变量)、插入桩函数代码等。
函数打桩有两种方式:
1、选中测试用例,鼠标右键->Stub Management,这样的桩函数设置是跟选中的测试用例绑定的:
在这里插入图片描述
2、在函数调用列表中,单元测试模式默认会将所有调用函数打桩(系统函数除外)。选中要打桩的函数,鼠标右键->Managed Stub Properties可以进行全局桩设置:
在这里插入图片描述
选择template for new test cases,可以设置一个全局的测试桩模板,这样在新建的测试用例中会默认带有这个桩模板(测试用例中如果未更改,则会作为每一个测试用例的默认桩设置;测试用例中如果更改了这个桩,其会被测试用例中的桩设置覆盖):
在这里插入图片描述
最常用的桩函数设置有:对无返回值的函数打空桩(仅打桩,什么都不设置)、对有返回值的函数设置返回值(set return value on exit)、插入桩函数测试代码,实现对某些变量的赋值(set code segment)。

5、插入初始化代码

在被测函数中,有时会用到结构体指针或数组等变量,此时如果通过创建IO Variable的方式进行初始化,会导致要创建的IO Variables非常之多。因此,可以通过插入初始化代码的方式完成数组等的初始化。
1、序列级的初始化(对所有用例有效)
在TBurn菜单中点击Sequence->Code Inserts->Sequence Initialisation Code:
在这里插入图片描述
2、用例级的初始化
选中相应的测试用例,鼠标右键Code Inserts->Initialisation Code:
在这里插入图片描述
在这里插入图片描述

6、设置输入输出

在Variables I/O view窗口里的变量,在最左边有输入/输出的标识,输入以“I”标识,输出以“O”标识(此处的输出是指预期的输出值)。这些变量列表的Name、Type、Use等都可以根据自己的测试需要进行修改。对于标识为“I”的输入变量,一定要在输入框中填写一个确定的值,否则用例无法执行。
在这里插入图片描述
根据实际的测试需求,如果发现默认的测试用例I/O窗口中缺少相关输入输出变量,可以在Test Case View窗口选择测试用例并右键添加相关的输入输出变量,如下图,自己创建或导入即可:
在这里插入图片描述
能添加到I/O窗口的变量包括:
1、形参:包括输入赋值,输出检查;
2、全局变量:包括代码里的全局变量和用户自定义的全局变量,全局变量的处理包括输入赋值,输出检查;
3、C++里的成员变量:包括输入赋值,输出检查;
4、函数返回值。
注意:不能添加被测函数的局部变量,局部变量的作用域仅限于被测函数内,不能被单元测试用例访问。

结合实际的测试需求,填写测试用例的测试输入(以“I”标识的输入列表)、期望输出(以“O”标识的输出列表),如下图所示:
在这里插入图片描述

五、执行测试用例

测试用例的执行包括2种方式:
1、分步骤执行(生成、构建、执行驱动、输出测试结果及覆盖率情况):在TBurn菜单中的“Run Driver”中,或者在Test Case视图左下角按钮中,依次选择 Generate Driver、Build Driver、Execute Driver、Split Driver Output、Process Driver Output;
2、一步执行:在TBurn菜单中的“Run Driver”中,或者在Test Case视图左下角按钮中,选择Run Test Case Driver;
在这里插入图片描述
执行结果如下所示:
在这里插入图片描述
从上图可以看出测试用例的结果是PASS/FAIL。同时可以通过弹框右下角的Report查看相应的用例报告。
第1条用例PASS后,可以直接copy第1条用例生成第2条用例,然后再修改用例2的输入输出即可,直到有足够的测试用例来完成测试。

六、覆盖率分析

测试用例执行完成后,相应的代码覆盖率会实时更新,在file view窗口可以看到整个源码文件的覆盖率,以及当前被测函数的覆盖率,包括语句覆盖、分支覆盖、MCDC覆盖等:
在这里插入图片描述
在显示的覆盖率上右键选择“view pass/fail + flow diagram”,可以显示详细的代码覆盖情况:
在这里插入图片描述
在这里插入图片描述

七、导出测试用例

单元测试用例设计并执行完成后(函数功能全部验证通过,并且覆盖率也达到要求),此时该函数的单元动态测试结束。为了方便后续回归测试,需要将测试用例导出。具体操作如下:
在TBurn的菜单,选中Sequence->Export Test Case(TCF),通过文件浏览窗口选择保存路径,保存对应的TCF文件即可:
在这里插入图片描述
在这里插入图片描述


总结

以上就是如何使用Testbed(TBrun)进行软件单元测试的过程,上述步骤仅为流程性操作讲解,下一篇文章我将以一个被测函数作为示例进行进一步介绍。

标签:Testbed,函数,单元测试,TBrun,测试,测试用例,LDRA
From: https://blog.csdn.net/Vista7Malone/article/details/139147251

相关文章

  • PowerMock入门:Java单元测试的终极武器
    在软件开发过程中,单元测试是确保代码质量的重要环节。它帮助开发者验证代码的各个部分是否按照预期工作,从而提高软件的稳定性和可维护性。然而,传统的单元测试工具,如JUnit和Mockito,虽然功能强大,但在某些场景下却显得力不从心。例如,它们在模拟静态方法、私有方法、构造函数以......
  • Python一个简单的单元测试
    Python一个简单的单元测试提示:以下内容均为个人原创!文章目录Python一个简单的单元测试一、介绍二、使用1.创建逻辑代码2.生成单元测试3.生成单元测试的方式(1).直接在逻辑代码中添加(2).单独制作4.运行代码总结一、介绍在使用Python制作模块后,总是不确定模块中......
  • 2024永久免费破解版CorelDRAW汉化百度云网盘下载
     CorelDRAW®GraphicsSuite2024无疑是一款配备齐全的专业设计工具包,它以其卓越的性能和丰富的功能,为设计师们提供了高效且令人惊艳的矢量插图、布局、照片编辑和排版项目。这款软件套件不仅功能强大,而且价格实惠,用户可以通过订阅的方式获得持续的价值。订阅CorelDRAW®Gr......
  • 【Springboot】复杂单元测试启动类-只测试OpenFeign
    复杂单元测试启动类-只测试OpenFeign背景随着springboot应用工程规模越来越大,集成了较多的自动配置的程序,例如SpringDataJPA,SpringCloudOpenFeign,ApacheDubbo有时会需要在本地运行测试,但要么因为数据库无法在办公网络环境连接,要么注册中心无法连接,这就导致本地完全无......
  • 单元测试
    实验项目名称:实验四单元测试2          一、 实验目的1、 掌握单元测试技术,并按单元测试的要求设计测试用例。 2、 掌握一种单元测试工具的使用。二、 实验内容自行学习C#或python或C++的其中一种单元测试工具的使用,自选一段单元代码(不少于15行),进行测试。完......
  • C# 单元测试工具选择
    由于最近在尝试开发桌面应用,技术选用的是WPF,但是开发起来有点卡手,发现原来缺少了测试工具,花了两天,把主要把主要的测试工具尝试了一下。现有的单元测试工具查阅资料,已知在vsstudio上主要为3款,分别是xUnit,NUnit,以及SMTest,三款工具各有优劣。现有问题三款单元测试都存在无法实......
  • C# 单元测试框架
    添加单元测试项目在解决方案中,右键单击解决方案资源管理器中的解决方案。选择“添加”->“新建项目”。选择测试语言为C#,项目类型选择“测试”。输入项目名称,选择项目路径,然后点击“创建”。NUnit和xUnit测试项目对比关于两个框架的对比,Kimi总结的很到位,如下为粘贴复......
  • 11.Junit单元测试
    依赖jar包<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.1</version></dependency>简单使用@Test注解只有在方法上有效,只要加了这个注解的方法,......
  • 在Windows运行Gitlab Runner对.NET Framework 4.6.1旧项目自动执行单元测试
    摘要本文介绍了GitlabRunner如何在Windows服务器上调用vstest.console.exe,对旧的项目基于.NETFramework4.6.1的项目,自动执行单元测试。改造旧版本的.csproj文件改造成功后,完整的.csproj文件如下:<ProjectSdk="Microsoft.NET.Sdk"> <PropertyGroup><ProjectG......
  • 在Windows运行Gitlab Runner对.NET Framework 4.6.1旧项目自动执行单元测试
    摘要本文介绍了GitlabRunner如何在Windows服务器上调用vstest.console.exe,对旧的项目基于.NETFramework4.6.1的项目,自动执行单元测试。改造旧版本的.csproj文件改造成功后,完整的.csproj文件如下:<ProjectSdk="Microsoft.NET.Sdk"> <PropertyGroup><ProjectG......