在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. 測試驅動開發 - WPF
- 2. 測試驅動開發
- 3. 測試驅動開發javascript
- 4. 測試驅動開發書
- 5. Android測試驅動開發
- 6. 我如何使用測試驅動設計概念在eclipse中測試異常
- 7. 非技術練習的想法強化測試驅動開發的概念?
- 8. 測試驅動開發/集成測試的RIA開發
- 9. 概念:API水平測試
- 10. CakePHP中的測試驅動開發
- 11. Flash中的測試驅動開發
- 12. Python中的測試驅動開發
- 13. Swift中的測試驅動開發
- 14. 測試驅動的開發 - 單元測試(在CakePHP中)
- 15. 是測試面向發展對測試驅動開發
- 16. RSpec的測試驅動開發
- 17. SQL代碼的測試驅動開發
- 18. REST API的測試驅動開發
- 19. Liferay的測試驅動開發
- 20. JavaScript庫的測試驅動開發
- 21. MSBuild任務的測試驅動開發
- 22. 測試驅動的開發問題
- 23. 測試驅動的開發過程
- 24. 如何用Jasmine測試(行爲驅動開發)測試這個?
- 25. 春季測試驅動開發嘲諷
- 26. 測試驅動開發 - 模擬對象
- 27. 測試驅動開發和接口
- 28. 測試驅動開發:無效方法
- 29. 測試驅動開發敏捷?
- 30. 什麼是測試驅動開發?
我認爲需求規格會影響功能測試而不是單元測試。 – 2011-02-02 02:12:55