我公司的经理的经理(......和他的经理,以及其他所有穿西装的人)正在谈论我们真正需要如何过渡到 TDD,因为它比我们现在所做的更好。不幸的是,我们正在处理一个非常古老的系统,它的自动化测试为零。这在很大程度上源于没有分配时间来围绕它建立任何类型的框架,并且担心这样的框架需要大量时间来维护并且它的唯一输出会增加开发人员的工作量。(你和我都认为这是一件好事。你可能还记得我围绕它提出的其他几个问题。)
我们最近聘请了一位“发布经理”,他基本上只是建立了一个项目管理系统并查看所有进入的项目并确保他们拥有所有文档。显然,SOX 合规性要求有一个,即使他的头衔和他的职位描述看起来并不匹配。他现在寻找的东西之一(如果提案缺失则拒绝该提案)是一份测试文档:分析师提出的关于如何测试他们支持的新功能或错误修复的一系列步骤。我不会讨论文档的质量,但至少它们中的大多数不仅仅是“部署到测试环境,分析员进行测试”。让我们假设它们中的足够多的质量足够好,至少可以为某人提供快乐的路径测试。
这被认为是 TDD 吗?我想我一直认为 TDD 意味着您必须在上课之前编写单元测试,或者在编写两个模块之间的桥接代码之前编写集成测试。
现在,我不想陷入“我们是敏捷的!” 陷阱。我认为坐在会议上争论我们是否真的在做 TDD 是愚蠢的。但我认为重要的是能够将我们正在做的事情与其他人学到的经验结合起来。如果我们正在做(一般社区所说的)TDD,那么我们很可能会从针对做 TDD 的团队的建议中受益。
所以我的问题是:
- TDD 要求的测试是否需要自动化?
- 我们是否在做一般社区所说的 TDD?
- 如果我们不是,我们需要改变什么?
- 不管我们是否“是”,这里是否有一些危险信号可以让我们更符合 TDD 社区?
编辑:
到目前为止,似乎是的,您确实需要自动化测试才能成为“TDD”。因此,后续问题可能是有多少 TDD 将转化为“仅手动测试”环境?