模拟网站建设软件,学校网站建设机构,首页网站怎么做,佛山微商网站建设测试驱动开发#xff08;TDD#xff09; 本篇文章简单叙述一下什么是测试驱动开发#xff0c;以及怎么进行测试驱动开发#xff01; TDD #xff08;Test Driven Development#xff09;#xff1a;#xff08;源于极限编程#xff08;XP#xff09;#xff09;在不…测试驱动开发TDD 本篇文章简单叙述一下什么是测试驱动开发以及怎么进行测试驱动开发 TDD Test Driven Development源于极限编程XP在不同的场景和不同的角色中的对 TDD 的认知可能会有不同。
有人可能会理解成 ATDDAcceptance Test Driven Development也有人可能会理解成 UTDDUnit Test Driven Development
为了避免产生歧义文章中涉及到的 TDD 名词专指 UTDDUnit Test Driven Development即 「单元测试驱动开发」。
什么是测试驱动开发 Kent Beck 的著作《测试驱动开发》中说“测试驱动开发不是一种测试技术。它是一种分析技术、设计技术更是一种组织所有开发活动的技术”。 由此可看TDD 不是一种简单的通过单元测试来驱动代码的开发然后在优化内部代码逻辑的方法而是一种有机的技术结合。 分析技术 将问题分析成为一个个可操作的任务模块。 设计技术 测试驱动代码的设计和功能实现然后驱动代码的重构。持续改善海马。
TDD 的目标 Kent Beck 在他的著作《Test-Driven Development》一书中提到“代码简洁可用这句言简意赅的话正是 TDD 所追求的目标”。 对于保证代码的 简洁可用可以采用分治的思想去实现先达到 可用 目标在思考如何 简洁。
TDD 的规则
在 TDD 的编码中需要遵循两条简单的规则
仅在自动测试失败时才编写新代码。消除重复设计去除不必要的依赖关系优化设计结构逐渐使代码一般化。
即 可用简洁
TDD 的口号/原则 简单来说不可运行 - 可运行 - 重构——这正是测试驱动开发的口号也是 TDD 的核心。在这个闭环中每一个阶段的输出都会成为下一阶段的输入。
不可运行——写一个功能最小完备的单元测试并使得该单元测试编译失败。可运行——快速编写刚刚好使测试通过的代码不需要考虑太多甚至可以使用一些不合理的方法。重构——消除刚刚编码过程引入的重复设计优化设计结构。
怎么做测试驱动开发
普遍的开发过程
获取需求做简单的设计在大脑中规划需要那几个类大概用什么设计模式开始编写代码发现有些类设计多余了删除了有些类不满足增加设计需求好像不清晰和产品经理确认一口气写完所有代码心里没地儿造数据跑一下调试解决了几个蠢问题跑起来了提测QA 报 bug造数据找到 bug 原因了修复修复几次代码变烂过一段时间自己都看不懂了
相信大多数人是这种开发方式
TDD 开发过程
获取需求做简单的设计分解任务针对单个任务编写单元测试只关心输入输出编写实现让单元测试能跑通提交代码进入下一个任务联调手动测试下一般没有问题如果有问题使用 git diff 差异快速发现问题重构利用单元测试保护消除代码坏味道提交测试如果有问题使用单元测试发现问题
注意的问题
测试不是越多越好只为必要的代码编写测试用尽可能少的用例保障代码质量。而且随着测试变多运行测试的速度也会变慢。没有标准的 TDD 规则就像模糊的 DDD 设计模式一样分析问题的粒度决定了之后写出来的代码质量。不要忽略任何一个测试集合的失败结果。
总结
文章在理论层次上总结了 TDD TDD 的概念和开发方式并没有提供示例去演示仅仅作为一个文章总结。
使用 TDD它将会在实践的过程中学会如何雕琢我们的代码从而得到稳定的面向对象设计、可维护和高质量的系统。