【软考】单元测试

news/2025/3/15 9:27:32/

目录

        • 1. 概念
        • 2. 测试内容
          • 2.1 说明
          • 2.2 模块接口
          • 2.3 局部数据结构
          • 2.4 重要的执行路径
        • 3. 测试过程
          • 2.1 说明
          • 2.2 单元测试环境图
          • 2.3 驱动模块
          • 2.4 桩模块
        • 4. 模块接口测试与局部数据结构测试的区别

1. 概念
  • 1.单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行
  • 2.单元测试侧重于模块中的内部处理逻辑和数据结构
  • 3.如果选用机器测试,一般用白盒测试法
  • 4.这类测试可以对多个模块同时进行
  • 5.提高模块的内聚度可以简化单元测试。如果每个模块只完成一种功能,对于具体模块来讲所需的测试方案数据会显著减少,而且更容易发现和预测模块中的错误。
2. 测试内容
2.1 说明
  • 1.单元测试主要检查模块的以下5个特征
  • 2.模块接口:模块的接口保证了测试模块的数据流可以正确地流入、流出
  • 3.局部数据结构:在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点
  • 4.重要的执行路径:在单元测试中,对路径的测试是最基本的任务。由于不能进行穷举测试,需要精心设计测试例子来发现是否有计算、比较或控制流等方面的错误
  • 5.出错处理:好的设计应该能预测到出错的条件并且有对出错处理的路径。虽然计算机可以显示出错的内容,但仍需要程序员对出错进行处理,保证器逻辑的正确性,以便于用户维护
  • 6.边界条件:边界条件的测试是单元测试的最后工作,也是非常重要的工作。软件容易在边界出现错误
2.2 模块接口
  • 1.测试模块的输入参数和形式参数在个数、属性、单位上是否一致
  • 2.调用其他模块时,所给出的实际参数和被调用模块的形式参数在个数、属性、单位上是否一致
  • 3.调用标准函数时,所用的参数在属性、数目和顺序上是否正确
  • 4.全局变量在各模块中的定义和用法是否一致
  • 5.输入是否仅改变了形式参数
  • 6.开/关的语句是否正确
  • 7.规定的I/O格式是否与输入/输出语句一致
  • 8.在使用文件之前是否已经打开文件或使用文件之后是否已经关闭文件
2.3 局部数据结构
  • 1.变量的说明是否合适
  • 2.是否使用了尚未赋值或尚未初始化的变量
  • 3.变量的初始值或默认值是否正确
  • 4.变量名是否有错(例如拼写错)
2.4 重要的执行路径
  • 1.计算方面的错误。算术运算的优先次序不正确或理解错误;精度不够;运算对象的类型彼此不相容;算法错;表达式的符号表示不正确等
  • 2.比较和控制流的错误。本应相等的量由于精度造成不相等;不同类型进行比较;逻辑运算符不正确或优先次序错误;循环终止不正确(如多循环一次或少循环一次)、死循环;不恰当地修改循环变量;当遇到分支循环时出口错误等
3. 测试过程
2.1 说明
  • 1.由于模块不是独立运行的程序,各模块之间存在调用与被调用的关系。在对每个模块进行测试时,需要开发两种模块,驱动模块和桩模块
2.2 单元测试环境图

在这里插入图片描述

2.3 驱动模块
  • 1.相当于一个主程序,接收测试例子的数据,将这些数据送到测试模块,输出测试结果
2.4 桩模块
  • 1.也称为存根模块。桩模块用来代替测试模块中所调用的子模块,其内部可进行少量的数据处理,目的是为了检验入口,输出调用和返回信息
4. 模块接口测试与局部数据结构测试的区别
  • 1.模块接口测试和局部数据结构测试是软件开发过程中单元测试阶段的重要部分,它们各自关注不同的方面,具有不同的目标和测试重点。

  • 2.模块接口测试主要关注模块之间的数据交互。它测试的是模块之间的接口,包括输入参数和输出参数,以及模块之间的调用关系。这种测试的目的是确保模块之间的数据传递正确无误,保证模块能够正确地与其他模块进行交互。在进行模块接口测试时,会检查调用模块时的输入参数与模块的形式参数在个数、属性和顺序上是否匹配,同时也会检查文件的具体描述,包括文件的定义、记录的描述、文件的处理方式是否正确等。

  • 3.局部数据结构测试则主要关注模块内部的数据结构。它测试的是模块内部的数据是否正确,包括变量的类型、初始化、赋值等。这种测试的目的是确保模块在执行过程中,其内部的数据结构能够保持完整和正确。在进行局部数据结构测试时,会检查局部数据结构是否存在错误,如不正确或不相容的类型说明、错误的初始化或缺省值、变量无初值、不正确的变量名、出现上溢和地址错等。

  • 4.模块接口测试更侧重于模块之间的交互,而局部数据结构测试更侧重于模块内部的数据处理。两者都是单元测试阶段的重要部分,共同保证了软件的质量和稳定性。


http://www.ppmy.cn/news/1373702.html

相关文章

three.js如何实现简易3D机房?(四)点击事件+呼吸灯效果

接上一篇: three.js如何实现简易3D机房?(三)显示信息弹框/标签:http://t.csdnimg.cn/5W2wA 目录 八、点击事件 1.实现效果 2.获取相交点 3.呼吸灯效果 4.添加点击事件 5.问题解决 八、点击事件 1.实现效果 2.…

linux大版本之间的区别和特性

1. 描述Linux内核版本和发行版之间的关系。 Linux内核版本指的是Linux操作系统核心的特定版本,而Linux发行版则是基于该内核并集成了其他软件和工具的完整操作系统。具体分析如下: Linux内核版本:是操作系统的核心部分,它提供了…

STM32CubeMX软件界面花屏,混乱的解决方案。

添加系统环境变量:J2D_D3D 值:false 即可解决。

如何优化ElasticSearch搜索性能?

优化 Elasticsearch(ES)的查询性能涉及多个方面,从查询本身到集群配置和硬件资源。以下是些关键的优化策略: 集群和硬件优化 负载均衡: 确保查询负载在集群中均衡分配,硬件资源: 根据需要増加 CPU、内存或改善 Ⅳ/O 性能(例如使用 SSD)配置 JVM: 优化 JVM 设置,如堆大小,以提…

MOGDB/openGauss数据库gs dump备份脚本及备份清理

MOGDB/openGauss 数据库 gs_dump 备份脚本及备份清理 需要对 MOGDB/openGauss 进行每天逻辑备份。如下脚本分享给大家。 一、备份脚本 1.脚本 c.sh (可以改名字)# database dump shell # you should change the GAUSSHOME GAUSSPORT GAUSSDATA DUMP_USER DUMP_PASSWORD #!/bi…

使用Navicat连接阿里云服务器上的MySQL数据库

打开navicat,连接如下: 服务器的默认密码是 root 连接时出现 使用 ls 查找 /etc/my.cnf ls /etc/my.cnf 用vi打开my.cnf: vi /etc/my.cnf看看是否有绑定本地回环地址的配置,如果有,注释掉下面这段文字:…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之RowSplit容器组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之RowSplit容器组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、RowSplit容器组件 将子组件横向布局,并在每个子组件之间插入一…

【p3128、LQB14I砍树】树上差分

文章目录 差分树上差分p3128LQB14I砍树题目解题步骤代码样例 差分 差分数组求法: 设原始数组是arr,差分数组是b b[0] arr[0];b[i] arr[i] - arr[i-1]; 如果我们要对图中2-4区间的数每个都加上3,就可以在差分数组2的位置加上3,…