news 2026/5/2 21:06:48

22、测试驱动开发:驱动软件之美的新标准

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
22、测试驱动开发:驱动软件之美的新标准

测试驱动开发:驱动软件之美的新标准

1. 迈向易读的规范

创建特定领域测试语言(DSTL)可使脚本更易读,前提是规范词汇具有声明性,并以业务领域目标和现实世界对象来表达。例如,DSTL的某一行可能等同于测试脚本的多行内容。不过,读者仍需从这些高级语句中拼凑出业务规则。

为DSTL添加简单的结构化语句,能让我们更接近完美的规范。如图所示,声明式、行为驱动的Given/When/Then风格有助于更清晰地表达业务规则。这种规范可以有多种呈现形式,如表格、文本、图形(如各种UML符号)、工作流故事板、UI线框等,关键是找到最能表达业务领域概念的形式。

1.1 永久需求工件

示例是阐述需求的永久工件,而故事是用于细分、确定优先级和规划系统增量开发的临时工件。我们的挑战是,从可能相互脱节的小故事中逐步构建出系统需求的连贯全貌,每个故事可能会添加新示例或修改现有示例。

例如,在迭代过程中,会选择在首次迭代中实现特定功能的成功故事。图中故事以灰色阴影表示其临时性,图表右侧是包含功能描述(需求)和相应示例的永久工件的首次增量。后续迭代中,永久规范会逐步完善,初始成功场景会通过一系列“如果……会怎样”的问题得到增强,这些问题会关联到更多业务规则描述及其示例。最终的需求工件需要以连贯的方式整合需求和示例,这为软件需求树立了新的美观标准。

2. 可测试的设计

与其他规范形式不同,测试驱动开发(TDD)直接影响软件设计。若正确实践,TDD能确保设计具有高度可测试性。一个可测试的系统应具备以下特点:
- 设置系统/组件及所有依赖系统/组件的初始状态。
- 控制环境因素,如日期和时间。
-

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 17:39:28

DWSurvey开源问卷调查系统:打造专业级数据收集解决方案

项目价值定位 【免费下载链接】DWSurvey Survey System. 最好用的开源问卷调查系统、表单系统。 项目地址: https://gitcode.com/gh_mirrors/dw/DWSurvey DWSurvey作为一款成熟稳定的开源问卷调查系统,为企业、教育机构和个人用户提供了一站式的问卷设计、分…

作者头像 李华
网站建设 2026/5/1 12:40:23

24、软件开发中的测试智慧与美学

软件开发中的测试智慧与美学 1. 深入业务学习的价值 在软件开发工作中,深入了解业务能带来巨大的价值。曾经有人在 ePlan 工作了五年多,才意识到资金会在五个不同账户间流动,且这些账户的现金余额每天都要保持平衡。理解了资金的流动方式后,就能编写正确的代码,确保每天…

作者头像 李华
网站建设 2026/5/1 9:49:04

终极PrismLauncher使用指南:轻松管理多版本Minecraft的完整方案

厌倦了在不同Minecraft版本间频繁切换的繁琐操作?想要同时体验1.16的冒险世界和1.19的最新特性,却苦于复杂的配置过程?PrismLauncher正是为你量身打造的专业级Minecraft启动器解决方案 🎮 【免费下载链接】PrismLauncher A custom…

作者头像 李华
网站建设 2026/5/1 2:41:35

SELinux何时需要禁用?

安装k8s的过程中,如果是centos系列的系统,需要禁用SELinux,但是ubuntu系列的系统不需要禁用SELinux。这是为什么呢? 我们从SELinux是什么说起。 一.SELinux是什么 SELinux是Linux的强制访问控制机制,而setenforce用于切换它的 enforcing 或 permissive模式。 定义SELi…

作者头像 李华
网站建设 2026/5/1 14:27:33

Auto PY to EXE终极指南:3分钟快速上手Python打包利器

Auto PY to EXE终极指南:3分钟快速上手Python打包利器 【免费下载链接】auto-py-to-exe Converts .py to .exe using a simple graphical interface 项目地址: https://gitcode.com/gh_mirrors/au/auto-py-to-exe 你知道吗?Python脚本也能轻松变…

作者头像 李华
网站建设 2026/5/1 2:41:44

离线音频转录终极指南:Buzz让语音转文字完整解决方案

离线音频转录终极指南:Buzz让语音转文字完整解决方案 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/gh_mirrors/buz/buzz 还在为会议录音整…

作者头像 李华