在TDD中,每个人都谈论创建单元测试以及如何完成开发。我知道整个周期,但没有人会谈论从需求创建这些单元测试吗? 我已经在文献中的某处阅读过,在开发这些单元测试之前创建一个测试列表总是很好。我的问题是: 在TDD中编写单元测试之前遵循的程序(步骤)是什么?意味着在开发它们之前是否创建单元测试是直接从需求中写入,而不使用任何正式标准或测试列表?测试驱动开发中测试列表的概念
2
A
回答
2
测试列表只是下一个测试用例的临时存储库。这完全是非正式。
测试列表的主要作用是释放你的思想。当你想到一个新的测试时,只需把它写在列表的末尾,然后你就可以忘记它,并专注于手头的问题。
没有程序来编写测试和列表,就像从需求创建UML模型一样。您考虑问题并制作设计。设计完成后,即可开始实施。使用TDD,您从测试的角度思考问题,您在列表中写下一些测试,然后从列表中的简单测试开始。您可以随时向列表中添加(或删除)测试。
bowling game episode是一个简短的阅读,说明从需求到单元测试的过渡。但它没有提到任何测试列表。
我在我的单元测试源文件底部维护我的测试列表作为注释。
void test_foobarShallFailWithNull(void) {
...
}
// the tests I *may* write next
//void test_foobarShallFailWhenX(void)
//void test_foobarShallWorkWhenY(void)
2
根据我的经验,在进行TDD时,需求用于直接确定所需的单元测试。从理论上讲,开发人员会选择整个需求的一个小方面,并为这个方面编写一个单元测试,然后编写最简单的代码以使单个测试通过。事实上,所选择的要求和方面可能会导致开发人员一次识别几个单元测试。测试列表被用作停车场,因此开发人员无需担心丢失测试思路,同时仍然可以集中精力进行一次测试。
1
没什么太重或正式的,你只需坐下来记下你在一张纸上(或电子表格或文本文件)所能想到的所有测试,然后再开始一项任务。
然后,你通过列表逐一把它们逐个剔除,当它们完成时将它们排除。如果您在实施过程中提出了一些新测试,请将其添加到测试列表中并继续关注当前测试。当你在列表中没有更多的测试时,你就完成了。
TDD的单元测试是细化的,在大多数情况下,需求/规格不是。因此,您使用需求文档来提出系统级验收测试。为了进行特定的验收测试,您会提出一系列使用TDD实现的任务。
0
我使用equivalence partitioning生成测试用例列表。
相关问题
- 1. Android测试驱动开发
- 2. 测试驱动开发书
- 3. 测试驱动开发 - WPF
- 4. 非技术练习的想法强化测试驱动开发的概念?
- 5. 测试驱动开发/集成测试的RIA开发
- 6. 概念:API水平测试
- 7. Flash中的测试驱动开发
- 8. Swift中的测试驱动开发
- 9. CakePHP中的测试驱动开发
- 10. 测试驱动的开发 - 单元测试(在CakePHP中)
- 11. 是测试面向发展对测试驱动开发
- 12. Liferay的测试驱动开发
- 13. MSBuild任务的测试驱动开发
- 14. SQL代码的测试驱动开发
- 15. JavaScript库的测试驱动开发
- 16. 测试驱动的开发问题
- 17. 测试驱动开发:asp.net mvc
- 18. Visual Studio 2010和测试驱动开发
- 19. ASP.NET MVC和测试驱动开发
- 20. 什么是测试驱动开发?
- 21. Python测试驱动开发 - 第6章
- 22. 测试驱动开发:无效方法
- 23. 第一个项目的测试概念
- 24. 用web驱动测试junit测试
- 25. 行为驱动或测试驱动开发?
- 26. 测试驱动开发是否考虑行为驱动开发的一部分?
- 27. 什么是测试和测试驱动开发的良好在线介绍?
- 28. 列表或数组作为易测试驱动测试中的参数
- 29. 将现有代码移动到测试驱动开发中
- 30. 测试驱动开发:为私有/受保护变量编写测试
我认为需求规格会影响功能测试而不是单元测试。 – 2011-02-02 02:12:55