我正在爲我們的應用程序編寫一套黑盒自動測試。我一直在碰到同樣的設計問題,所以我想知道這裏有什麼人想想它。設計CRUD測試套件
基本上,這是一個簡單的CRUD系統。爲了說明起見,讓我們看看您正在測試屏幕以創建,查看,編輯和刪除用戶帳戶。我會喜歡要做的就是寫一個測試,測試的是用戶創建工作正常,另一個測試檢查,在查看用戶你顯示了相同的數據,您最初鍵入,另一個測試,檢查該修改用戶的作品,和最後是一個刪除用戶的測試。
麻煩的是,如果我這樣做,那麼測試必須在一定的順序執行,否則將無法正常工作。 (例如,您無法刪除尚未創建的用戶。)現在有人說測試設置應創建測試需要的所有內容,拆卸應該使系統恢復到一致狀態。但仔細想想......創建用戶測試將需要在之後刪除該用戶,並且刪除用戶測試必須先創建一個用戶...因此這兩個測試現在具有相同的代碼,唯一的區別是無論該代碼是在安裝/正文/拆解中。這似乎錯誤。
總之,我似乎面臨着幾種選擇,所有這一切似乎打破:
- 使用安裝程序創建用戶和拆卸將其刪除。這將所有創建用戶和刪除用戶測試代碼複製爲安裝/拆卸代碼。
- 強制測試以特定順序運行。這違反了測試應該單獨運行並且可以以任何順序運行的原則。
- 寫一個巨頭測試,創建用戶,查看用戶,編輯用戶,然後刪除該用戶,都爲一個巨大的整塊。
注意,創建用戶是不是一件小事;涉及的步驟很多。同樣,當刪除一個用戶時,你必須指定如何處理他們指定的項目等等。這不是一個微不足道的操作。
現在,如果這是一個白盒測試,我可以模擬用戶帳戶對象,或者模擬保存它們的數據庫,甚至可以在磁盤上生成真正的數據庫。但是這些是黑盒子測試,它只測試外部的用戶可見界面。 (即,單擊屏幕上的按鈕)。這個想法是從頭到尾測試整個系統,而不用修改它[除了通過GUI命令,顯然]。