是的,我喜欢您将测试与代码保持在一起的想法。
您可以用来实现此目标的一个框架是FitNesse。它是一个众所周知的测试管理工具,支持业务人员、开发人员和测试人员之间的协作。使用FitNesse 的 Git 插件,您可以将测试保存在 Git 存储库中。
我们维护我们的验收测试,这些测试基于另一个名为Concordion的框架,也在我们的源代码存储库中。Concordion 规范由两部分组成:描述功能的格式良好的 HTML 文档,以及编写应用程序编程语言(如 Java 或 C#)的固定代码,这些代码在文档中找到具体示例并使用它们来验证被测系统。
我们的可执行规范由产品所有者或测试人员使用Microsoft WebExpression或BlueGriffon等所见即所得 HTML 编辑器编写。我们将它们保存在我们的存储库中,并通过TortoiseGit访问它们,因为我们团队的所有成员都有技术背景,所以效果很好。要涉及非技术,您可能需要编写一个小脚本,将最新更新拉入本地存储库,启动您选择的编辑器,并将编辑后的更改推送回中央存储库。
请注意,有一个适用于 Excel 的 Concordion 扩展,它可以在 Excel 电子表格中指定您的测试数据(即输入和预期输出值),并使用它来测试您的应用程序。
恕我直言,测试通常是软件项目中的某种详细分析。由于没有讨论和指定许多细节,因此测试人员通常会考虑功能的细节。不幸的是,这发生在开发人员完成工作之后,这会导致大量返工和额外成本。因此,基于您的 ATDD 工作,您应该在开始测试自动化之前尝试改进团队在规范方面的协作。
请看一下Gojko 关于投资 5-10% 的 sprint 以协作定义细节的好处的谈话。自从我们基于实例规范的思想进行规范研讨会以来,我们团队的规范工作有了很大的改进。