🏠 首页›第一梯队 · 决胜核心 · 第 7 小时 · 软件工程基础知识

软件测试与质量保证

选择 8~15 分案例 25 分论文相关
📄 教材出处 · 第 7 小时《软件工程》 (书第 55–67 页) ▸ 查看原文摘录 打开教材 PDF ↗
第 55 页 ↗软件工程基础知识 7.0 章节考点分析 主要学习软件工程、需求工程、系统分析与设计、净室软件工程、基于构件的软件工 程、软件项目管理等内容。
第 56 页 ↗软件要经历从需求分析、软件设计、软件开发、运行维护,直至被淘汰 这样的全过程,这个全过程就是软件的生命周期。
第 57 页 ↗软件工程基础知识 49 2)原型模型(Prototype Model),如图7.3所示,又称快速原型,是原型方法使用的生命周期 模型。
第 58 页 ↗4)敏捷(Agile)模型,属于敏捷方法使用的模型。
第 59 页 ↗ RUP在每次迭代中,只考虑系统的一部分需求,进行分析、设计、实现、测试和部署等过程。
第 60 页 ↗ 需求获取的方法包括用户面谈、需求专题讨论会、问卷调查、现场观察、原型化方法和头脑风 暴法等。

知识点目录(共 6 项)

  1. 静态测试 / 动态测试
  2. 白盒测试:逻辑覆盖六种(语句 < 判定 < 条件 < 判定-条件 < 条件组合 < 路径)
  3. 黑盒测试:等价类 / 边界值 / 错误推测 / 因果图
  4. 测试阶段:单元 → 集成(自顶向下 / 自底向上)→ 系统 → 验收 → 回归
  5. McCall 质量模型;净室软件工程(盒结构 / 统计测试)
  6. 基于构件的软件工程 CBSE 与构件组装方式

知识点详解

一、测试分类体系

静态测试(不运行程序) ▸ 文档评审 / 代码走查 / 代码审查 / 桌面检查 动态测试(运行程序) ▸ 白盒(看代码结构) 黑盒(看功能行为) 灰盒 白盒测试——逻辑覆盖(覆盖强度低→高) ① 语句覆盖(每条语句都执行一次) ② 判定覆盖(每个判定的真假分支都覆盖) ③ 条件覆盖(每个条件的真假都覆盖) ④ 判定-条件覆盖 ⑤ 条件组合覆盖 ⑥ 路径覆盖(覆盖所有可能路径,最强) 黑盒测试——功能测试 ▸ 等价类划分:有效等价类+无效等价类 ▸ 边界值分析:在边界及其附近选测试用例 ▸ 错误推测法:凭经验猜测错误 ▸ 因果图法:多条件组合 → 判定表 ▸ 场景法:业务流程测试 测试阶段(按开发顺序): 单元测试(模块)→ 集成测试(自顶向下/自底向上/三明治)→ 系统测试 → 验收测试(用户参与)→ 回归测试
图 1-19 软件测试分类体系总览

二、McCall 质量模型(了解+常考归类)

McCall 将软件质量分为三组特性:运行方面(正确性、可靠性、效率、完整性、可用性)、修正方面(可维护性、灵活性、可测试性)、转移方面(可移植性、复用性、共存性)。

三、净室软件工程 CSE

净室软件工程(Cleanroom Software Engineering):强调在软件开发过程中建立正确性的方法。理论基础:函数理论和抽样理论。核心做法:使用盒子结构规约进行分析和设计建模;强调将正确性验证(而不是测试)作为发现和消除错误的主要机制,可生成高质量软件。

缺点:太理论化、忽视测试、带有传统软件工程的弊端。

四、基于构件的软件工程 CBSE

CBSE:基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。用于 CBSE 的构件应具备 5 个特征:

特征含义
可组装型所有外部交互必须通过公开定义的接口进行
可部署性能作为独立实体在构件平台上运行
文档化必须完全文档化
独立性独立;如需其他构件服务则显式声明
标准化符合标准化的构件模型

主流构件模型:Web Services 模型、Sun 的 EJB 模型、微软的 .NET 模型。构件模型要素:接口、使用信息、部署信息;提供通用服务(平台服务+支持服务);容器是构件模型基础设施。CBSE 过程:系统需求概览 → 识别候选构件 → 根据发现的构件修改需求 → 体系结构设计 → 构件定制与适配 → 组装构件创建系统 → 系统测试。构件组装方式:顺序组装、层次组装、叠加组装。

考法:"先写测试代码再编程"是 XP 但出自测试思想要会区分;逻辑覆盖强度排序(语句<判定<条件<判定-条件<条件组合<路径);净室工程"正确性验证代替测试、函数理论+抽样理论";构件 5 特征填空。