1. 程式人生 > >程序員的職業素養 讀書筆記 - 第8章 測試策略

程序員的職業素養 讀書筆記 - 第8章 測試策略

單元測試 一起 graph tro 直接 開發人員 統架構 char cif

QA應該找不到任何錯誤

QA也是團隊的一部分

QA和開發人員應該緊密協作,攜手保障系統的質量。

QA在團隊中要扮演的便是需要規約定義者(specifier)和特性描述者(characterizer)。

需求規約定義者

QA的任務便是和業務人員一起創建自動化驗收測試,作為系統真正的需求規約文檔。

業務人員編寫針對正常路徑(happy-path)的測試。

QA編寫針對極端情況(corner)、邊界狀態(boundary)和異常路徑(unhappy-path)的測試。

特性描述者

QA的另一項任務是遵循探索式測試的原則,描述系統運行中的真實情況,將之反饋給開發人員和業務人員。

自動化測試金字塔

單元測試

金字塔底部是單元測試,單元測試由程序員使用與系統開發相同的語言來編寫,供程序員自己使用。

編寫單元測試的目的是在最低層次上來定義系統。

組件測試

組件測試是驗收測試的一種,它們是針對系統的各個組件而編寫。

系統的組件封裝了業務規則,對這些組件的測試便是對其中業務規則的驗收測試。

組件測試由QA和業務人員編寫,開發人員提供輔助。

集成測試

集成測試只對那些組件很多的較大型系統才有意義。它將組件裝配成組,測試它們彼此之間是否能正常通信。

集成測試是編排性(choreography)測試。它們並不會測試業務規則,而是主要測試組件裝配在一起時是否協調。

集成測試一般由系統架構師或主設計師來編寫,用以確認系統架構層面的結構是事正確無誤。

系統測試

系統測試是針對整個集成完畢的系統來運行的自動化測試,是最終的集成測試。

它們不會直接測試業務規則,而是測試系統是否已正確組裝完畢,以及系統各個組成部件之間是否能正確交互。

包含吞吐率測試和性能測試。

人工探索式測試

需要人工介入、敲擊鍵盤、盯牢屏幕的測試。它們既非自動化的測試,亦非腳本化的測試。

探索式測試是要確保系統在人工操作下表現良好,同時富有創造性地找出盡可能多的“古怪之處”。

程序員的職業素養 讀書筆記 - 第8章 測試策略