自動化測試的步驟
如果你負責提高一個商業交易操作的效率,首先,你應該確認已經很好的定義了這個操作的具體過程。然後,在你投入時間和金錢採用計算機提供一套自動化的商業交易操作系統之前,你想知道是否可以採用更簡單、成本更低的的方法。同樣的,上述過程也是用於自動化測試。我更願意把“測試自動化”這個詞解釋成能夠使測試過程簡單並有效率,自動化過程更為快捷,沒有延誤。運行在計算機上的自動化測試腳本只是自動化測試的一個方面而已。
以前負責過一個軟件模塊的自動化測試工作。這個模塊的一些特性導致實現自動化非常困難。當我了解到這項工作無需在很短的時間內完成後,決定制定一個詳細回歸測試設計方案。我仔細地檢查了缺陷跟踪庫中與該模塊相關的每個已經關閉的缺陷,針對每個缺陷,我寫了一個能夠發現該問題的測試執行操作。我計劃採用這種方法提供一個詳細的自動化需求列表,這可以告訴我模塊的那一部分最適合自動化測試。在完成上述工作後,我沒有機會完成測試自動化的實現工作。不過,當我們需要對這個模塊做完整回歸測試的時候,我將上面提到的文檔提供給若干只了解被測試產品但是沒有測試經驗的測試人員。依照文檔的指導,幾乎不需要任何指導的情況下,各自完成了回歸測試,並且發現了BUG。從某種角度看,這實際上是一次很成功的自動化測試。在這個項目中,我們與其開發自動化測試腳本,還不如把測試執行步驟文檔化。後來,在其它項目中,我們開發了自動化測試腳本,發現相關人員只有接受相關培訓才能理解並執行自動化測試腳本,如果測試自動化設計的很好,可能會好一些。不過,經過實踐我們總結出完成一份設計的比較好的測試文檔,比完成一份設計良好的測試腳本簡單的多。
在前面的故事中,自動化工程師和自動化測試的發起者的目標存在偏差。為了避免這種情況,需要在自動化測試需求上保持一致。應該有一份自動化測試需求,用來描述需要測試什麼。測試需求應該在測試設計階段詳細描述出來,自動化測試需求描述了自動化測試的目標。很多人認為自動化測試顯然是一件好事情,但是,他們不願意對自動化測試的目標給出清晰的描述。 |