《程序員的職業素養》八——測試體系

  QA也是開發團隊的一部分,並非彼此對立、敵對的關係。專業開發團隊應遵循TDD爲需求創建單元測試,使用驗收測試定義系統需求,使用持續集成保證質量穩步提升,此外還需要創建一個更高層次的測試體系。這個體系中包括單元測試、組件測試、集成測試、系統測試和探索式測試。
在這裏插入圖片描述

1、單元測試

位於金字塔底部,由程序員使用和系統相同的語言編寫,其目的是在最低層次上來定義系統。這些單元測試會作爲持續集成的一部分來運行。

通常而言,單元測試的測試覆蓋率應保持在90%以上。

2、組件測試

組件測試是驗收測試的一部分,通常是針對系統的各個組件而編寫的,系統組件封裝了業務規則,所以對組件的測試就是對其中業務規則的驗收測試。

組件測試需要使用模擬(mocking)或測試輔助(test-doubling)技術,解開與系統的其他組件的耦合,然後向組件中傳入數據,收集輸出數據並校驗是否符合預期的輸出。

組件測試差不多可以覆蓋系統的一半。

3、集成測試

集成測試只對那些組件很多的較大型系統纔有意義。

集成測試將組件裝配成組,測試他們之間是否能正常通信,它們並不會負責測試業務規則,僅僅測試裝配在一起時是否協調;

仍然需要使用合適的模擬對象和測試輔助,與系統的其他組件解耦。

使用與組件測試相同的語言和環境編寫,一般不作爲持續集成的一部分(因爲運行時間較長);

這些測試的執行可以是週期性的,週期視情況而定。

4、系統測試

是針對整個集成完畢的系統而進行的自動化測試,是最終的集成測試,不會直接測試業務規則,而是測試系統是否已經正確組裝完畢以及系統各組件之間是否能正確交互;

在這個層次的測試集中,應該包括吞吐率測試和性能測試;

系統測試約佔測試的10%;

5、人工探索式測試

這種測試需要人工接入、敲擊鍵盤、盯牢屏幕的測試,是一種非自動化的測試。

覆蓋率並非此測試的目標,而是儘可能用富有創造力的方式找出系統的“古怪之處”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章