【软件工程】软件测试阶段:单元测试与集成测试(高频对比考点)

考点频率 :★★★★★(上午选择题必考,下午案例题也常考驱动/桩模块的判断)

难度 :⭐⭐⭐

建议:重点掌握单元测试和集成测试的测试对象、测试依据、执行者,以及集成测试三种策略(自顶向下/自底向上/三明治)中驱动模块和桩模块的区分

1️⃣ 单元测试(Unit Testing):瞄准"最小零件"

单元测试是对软件中的最小可测试单元(通常是一个函数、一个类或一个模块)进行验证,检查其内部逻辑是否正确。

1.1 单元测试的核心要素

维度 说明
测试对象 单个模块/函数/类("零件"本身)
测试依据 详细设计说明书(代码具体怎么实现的)
执行者 开发人员(谁写的代码谁测)
主要方法 白盒测试(逻辑覆盖、基本路径覆盖)
测试目标 验证模块内部的算法、逻辑、数据结构是否正确

1.2 单元测试的环境搭建(考点:驱动模块与桩模块)

单元测试时,待测模块通常不能独立运行,因为它需要被其他模块调用,或者它自己会调用别的模块。为了让它跑起来,我们需要编写两种"替身"模块:

模块类型 定义 方向 适用场景
驱动模块(Driver) 模拟上层模块 ,用来调用待测模块 待测模块 ← 被调用 待测模块是底层模块,没有上层来调用它时,需要写一个驱动来"主动给它传参"
桩模块(Stub) 模拟下层模块 ,被待测模块调用 待测模块 → 调用 待测模块依赖下层模块,但下层还没写好,需要写一个桩来"模拟返回值"

一句话区分:驱动是"喊你干活的人"(调用者),桩是"你喊来干活的人"(被调用者)。

考试中的快速判断技巧

  • 题目说"需要模拟一个模块来调用被测模块"→ 选 驱动模块
  • 题目说"需要模拟一个模块来接受被测模块的调用并返回结果"→ 选 桩模块

2️⃣ 集成测试(Integration Testing):把"零件"组装起来

单元测试做完后,每个零件都是好的。但把它们组装在一起时,接口之间可能会出问题------数据传错了、参数类型不匹配、调用顺序错了。集成测试就是专门检查这些问题的。

2.1 集成测试的核心要素

维度 说明
测试对象 模块之间的接口交互关系("零件之间的接缝")
测试依据 概要设计说明书(系统架构和模块接口设计)
执行者 开发人员或测试人员
主要方法 黑盒测试为主(关注接口数据是否正确传递)
测试目标 验证模块组合后能否协同工作,接口数据是否正常

2.2 集成测试的三种策略(软考核心高频考点)

策略一:自顶向下集成(Top-Down Integration)
  • 方式 :从主控模块(顶层) 开始,逐步向下把下层模块集成进来。
  • 测试顺序:先测上层,再逐层往下加下层模块。
  • 优点 :能尽早验证系统的主控逻辑(整体框架对不对)。
  • 缺点 :因为下层模块还没开发完,需要编写大量的桩模块(Stub) 来模拟下层模块的返回值。
策略二:自底向上集成(Bottom-Up Integration)
  • 方式 :从最底层模块(叶子模块) 开始,逐步向上集成。
  • 测试顺序:先测底层,再用上层模块把它们组合起来。
  • 优点 :能尽早验证底层核心功能(如数据访问、基础算法),且不需要写桩(因为下层都写好了)。
  • 缺点 :因为上层模块还没开发完,需要编写大量的驱动模块(Driver) 来调用待测模块。
策略三:三明治集成(Sandwich Integration)
  • 方式同时进行自顶向下和自底向上,在中间某一层"会合"。
  • 优点 :可以并行测试,缩短测试周期。
  • 缺点 :需要同时准备驱动模块和桩模块,管理和协调成本高。

考试技巧 :题目说"先测主控模块逻辑" → 选自顶向下 ;题目说"先测底层核心算法" → 选自底向上 ;题目说"需要大量的桩" → 选自顶向下 ;题目说"需要大量的驱动" → 选自底向上

3️⃣ 单元测试 vs 集成测试:对比表(极高频考点)

对比项 单元测试 集成测试
测试对象 单个模块/函数 模块之间的接口
测试依据 详细设计说明书 概要设计说明书
执行者 开发人员 开发/测试人员
测试方法 白盒测试(逻辑覆盖) 黑盒测试为主(接口验证)
主要目标 验证模块内部逻辑正确 验证模块之间配合正确
是否涉及接口 不涉及 核心关注点
驱动/桩 可能需要(搭建测试环境) 根据集成策略决定

4️⃣ 经典例题

例题1:在单元测试中,需要模拟一个模块来调用被测模块并传递测试数据,这个模拟模块称为( )。

A. 桩模块

B. 驱动模块

C. 主控模块

D. 接口模块

解析 :模拟"调用"被测模块的 → 驱动模块 (Driver)。选 B


例题2:某项目在集成测试阶段,先测试了最底层的模块,然后逐步向上集成。这种集成策略属于( ),其缺点是需要( )。

A. 自顶向下;编写大量桩模块

B. 自底向上;编写大量驱动模块

C. 自顶向下;编写大量驱动模块

D. 自底向上;编写大量桩模块

解析 :先测底层 → 自底向上。底层模块写好调用它需要模拟上层,所以需要大量驱动模块 。选 B


例题3(判断):集成测试与单元测试的测试依据相同,都是根据详细设计说明书来进行的。( )

解析 :错误。单元测试依据详细设计 ,集成测试依据概要设计 。选 错误

5️⃣ 记忆口诀

单元测零件(详细设),集成看接口(概要设)。

驱动调我来,桩被我调用。

自上多桩,自下多驱,三明治都凑。

6️⃣ 小测验(评论区对答案)

在集成测试中,如果采用自顶向下策略,为了模拟未被开发的底层模块,需要编写( )。

A. 驱动模块

B. 桩模块

C. 测试用例

D. 调试器

🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #单元测试 #集成测试 #驱动模块 #桩模块 #软件工程

相关推荐
小秋求学记.18 小时前
第三天笔记
笔记
迷途呀19 小时前
CSDN Markdown 编辑器完全指南:从快捷键到高级图表
笔记·其他
栀栀栀栀栀栀19 小时前
刷刷刷 2026/7/16
笔记
β添砖java21 小时前
黑马Linux笔记
linux·运维·笔记
一只小菜鸡..21 小时前
Stanford CS144 学习笔记 (七):跨越虚实的边界——物理层、链路层与无线网络
网络·笔记·学习
大大的大大21 小时前
拼多多电商运营-马扁标题2
笔记·产品运营
●VON21 小时前
鸿蒙 PC Markdown 编辑器查找系统:大小写、整词与循环定位
华为·单元测试·编辑器·harmonyos·鸿蒙
玖玥拾1 天前
Unity 3D 笔记(八)ScrollRect 滚动视图、NavMesh 自动寻路系统
笔记·3d·unity
sugar__salt1 天前
Vue3 基础知识点整理 —— 从入门到响应式核心完全指南
vue.js·笔记·vue·vue3