第1章 测试诊所的灯光与地图:测试的分层与目的


本章要回答的三个问题:测试到底该装在软件的哪几层,层级之间是什么关系?"单元测试"和"集成测试"这两个词到底圈住哪片地盘?为什么有了金字塔还冒出个"冰淇淋筒",两者谁更有理?

为什么会有这一章

大多数新人对测试的第一印象是"写几个断言跑一遍"。可真接手一个项目,你会发现测试头上有三座大山:一是不知道自己的改动应该在哪一层补测试,全挤在最贵的端到端层;二是"单元"和"集成"在同事嘴里是两张皮,开会讨论半天都对不上焦;三是一上来就被"覆盖率要 90%"逼着在错误的层堆测试。这一章先把这三座山的底子挖平——不是教怎么点灯,而是先让你看清墙上那些灯的位置、发光的范围,以及相互遮挡的关系。没有这张地图,后面第 2 章单件体检、第 3 章拼装会诊都算"盲装灯"。

读完能解决什么

  • 能说出测试的至少三个层次,并画出它们之间的依赖方向,而不是只背出"金字塔"三个字。
  • 能独立判断一段逻辑属于单元测试还是集成测试的管辖范围,判断依据不再是"听说"而是边界。
  • 能解释为什么金字塔模型推荐"多单元、少端到端",也能说出冰淇淋筒模型反对点的合理性与之代价。
  • 能看懂一张横轴是层、纵轴是成本的草图,知道功力该往哪层下。
  • 建立"先有地图再装灯"的习惯,为第 2、3 章的上手操作铺好地基。

各节怎么分工

节号 回答的问题 关键产出
1.1 为什么要装测试灯 测试的价值究竟在哪一层变现 一张测试层次的分层图与红灯用途表
1.2 单元测试的界定 单件体检的边界画在哪 判定单元+非单元的可操作清单
1.3 集成测试的界定 拼装体检的边界画在哪 接口/数据/进程三类集成点模板
1.4 金字塔与冰淇淋筒 比例模型谁更有理 金字塔校准表格与两种模型的对照

先决条件

  • 会运行一门编程语言的测试命令(任意框架皆可),不需要精通。
  • 写过至少一个简单的函数,知道"输入到输出"是什么。
  • 对 Git 或其他版本控制有最基础的印象,知道"提交"大概是什么。没有也问题不大,本章几乎不依赖它。

往下走到哪

本章只给地图,不碰具体断言语句。第 2 章带着这张地图进"单元测试门诊",教你把最小零件一个个测干净,并在那里把地图里"单件体检"这一格填实。第 3 章再把"拼装会诊"这格填实。也就是说,第 1 章是挂号处加的层号,第 2、3 章才是真正看上病。

本章知识点清单

  • 能自己画出单元、集成、系统三层测试的分层图,并标注每一层回答什么问题、拦哪类故障。
  • 能找到"灯亮得越晚、修复越贵"这句直觉对应的四层目次:回归防护、行为规约、设计反馈、初验。
  • 能用一条判定纲领"被测代码离外部世界近不近",区分该归单元层还是集成层。
  • 能解释"闭合"才是单元判定的精髓,而"体量/文件层级"都是错误纠缠。
  • 能列出集成测试的三大接缝(接口、数据、进程协议),并用到"识别接缝"的口诀。
  • 能对比测试金字塔与冰淇淋筒两种比例模型,判断一个项目当前处于哪种配比并指出调整方向。

一章一图:测试分层的坐标

这张图是后面所有讨论的底板:越往下越接近单件,越往上越接近全链路。1.1 节解释为什么这张图从上往下成本逐层下降,1.4 节解释为什么"摆放比例"比"有没有图"更重要。

这一章不产出任何可运行的断言,但它值得你反复回看——第 2 章每一个单元用例、第 3 章每一条集成用例,都是顺着这张图"装到该管的那一层"去的。地图先画对,点灯才不会点错墙。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U