持續交付(第四章)—測試策略的實現

在上一章中介紹了持續集成,這讓我們的項目在整個生命周期中都是可控的,一直處于可運行狀態,對于后期的集成也是起很大的幫助的,但是要獲得這些優點,就需要團隊之間良好的協作,共同遵守一些良好的實踐,比如,使用版本控制工具,頻繁提交,多些注釋,測試覆蓋等。
那在這一章就講其中一個很重要的實踐——測試,主要講解如何實現測試策略,而不涉及具體測試的書寫。

持續集成

為什么要寫測試

我們不應該將所有的檢查都依賴于手工或者人為的檢查,這樣耗費時間不說,還會讓代碼的結構性降低。正確的做法應該是在項目一開始就一直做測試。

在一個理想的項目中,項目一開始,測試人員就會與開發人員一起寫自動化測試,這些測試應該在開發人員開始要測試的功能之前就寫好。這樣,這些測試就成了一個可執行的且從系統行為角度描述的規格說明書。當這些測試全部通過以后,也足以說明客戶所需要的功能實現了。這樣在之后的修改重構時,也有了足夠的保證。

測試的分類

測試象限

這是由Brian Marick提出的測試象限圖,他將測試分為兩個維度,一個是業務導向,還是技術導向,另一個維度是為了支持開發過程,還是為了對項目進行評價。

1.業務導向且支持團隊的測試

這一象限的測試通常稱作功能測試或驗收測試。為了確保用戶故事的驗收條件得到滿足,在開發一個用戶故事之前,就應該寫好驗收測試,采取完美的自動化形式。

2.技術導向且支持開發過程的測試

這一象限的測試通常都包含:單元測試,組件測試,部署測試。單元測試用于測試一個特定的代碼段,使用測試替身來模擬系統系統其他部分,不應該訪問數據庫,文件系統等外部系統。組件測試用于測試更大的功能集合,涉及更多的準備工作并執行更多的I/O操作。部署測試用于檢查部署過程是否正確。

3.業務導向寫評價項目的測試

這一象限的測試通常包含:探索性測試,易用性測試。都是手工測試驗證我們實際交付的軟件是否符合期望。這并不知識驗證應用是否滿足需求規格說明書,還驗證需求說明規格書的正確性,及時的獲取反饋并對需求說明規格書進行修改。

4.技術導向且評價項目的測試

這一象限的測試有非功能測試,比如:容量測試,性能測試,安全性測試等和項目功能無關的測試。我應該將非功能需求和功能需求放在同等的地位看待。

測試替身

測試替身用于在測試代替還未實現的模塊數據。可以分為下面這幾類:

  • 啞對象
  • 假對象
  • spy
  • 模擬對象

流程

在項目開發中,我們應該盡可能提前寫好各種自動化測試,并且實踐敏捷開發,測試不僅僅是測試人員一個人的事,應該讓整個開發小組以及客戶參與進來,共同制定一些標準,并且在之后的開發過程中,開發人員要和測試人員緊密合作。對于檢測出現的問題,進行進行處理,對于已有待修復缺陷的列表,應該重視起來,不要堆積。

總結

我的收獲

  • 有一些軟件可以讓客戶參與測試的編寫,需求更加清晰
  • 演示是項目的核心,這樣可以從客戶那里確認是否需求理解正確
  • 了解到測試替身這個概念
  • 終于完全明白了非公能需求是啥
  • 之前一直以為遺留系統就是之前留下的系統,現在看了這本書才知道是沒有自動化測試的系統。

我的疑惑

  • 回歸測試是什么?,都包含哪些方面
  • 對于測試替身中的幾個分類,概念不清晰
  • 書中描述的全方位測試的書寫,持續交付的實踐,現實中大多數人會這么做么?感覺準備工作太多了,是不是得自己衡量下。
  • 為什么會有待修復缺陷列表的存在,有錯誤不是應該及時的修復么,堆積著開發總是有風險的。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容