天天看點

《測試驅動的嵌入式C語言開發》——3.3節寫一個測試清單

3.3 寫一個測試清單

在開發新功能之前先建立一個測試清單會很有幫助。測試清單由需求衍生而來。測試清單定義了你對将需要完成的功能的最好的了解。這個清單不需要很完美。它隻是個臨時的文檔,可能隻記在一張卡片上或者筆記本上。你也可以直接把它當做注釋輸入到測試檔案中。随着每個測試的添加,對應的注釋将被删除。

不要在寫作這個清單上花太多時間,對于led驅動程式來講,花幾分鐘即可。我的初始測試清單如圖3-1所示。

在我們開始之前,先列出我們都需要測試什麼。

《測試驅動的嵌入式C語言開發》——3.3節寫一個測試清單

請當心在建立測試清單時的報酬遞減(diminishing return)。一旦你寫下幾個測試,其他的會很容易想到。當進展很慢時,你可能已達到了報酬遞減的邊界,這可能就是一個停止工作在測試清單轉而去測試驅動設計的好時機。在驅動設計的同時你會想到其他的測試。有時一個測試将來可能會被拆開。有些可能會被合并。這個清單的目的是確定你不會忘了做某些事。它就像是一個地圖,你可以在努力讓一個測試通過而深入其中之餘重新找回原來的方向,它就是你的任務清單。

有些識别出來的測試可能還沒有明确的産出。例如,你覺得驅動程式應該如何應對越界的參數?答案是不清楚。不過這沒關系。在把代碼拼在一起後你大概會對可能的選擇更了解一些。有時更多的經驗會幫助澄清問題,但有時它會引發新問題,一些不能馬上解決的問題。

從下一節開始,你将會開始使用測試驅動開發。在此之前,我有個問題。是否有人告訴過你先把問題中最難的那部分解決掉,小問題自然會迎刃而解?至少我聽到過,并且這看上去是個好建議。我将會徹底颠覆這個建議。

應該從能把工作向目标推進的很小或很簡單的地方開始。這個過程中的每一步都是可驗證的。産品代碼的功能随着一次一個的測試而增加,朝着健壯的并且被很好測試過的解決方案前進。這為我們進行更複雜的測試打了基礎。設想一下需要寫的測試,并決定寫出它們的順序,這是一個随時間而增長的技能。

繼續閱讀