回答

5

這些都是非常不同的東西,但都將提高你的測試的價值和質量。這兩種工具都有助於並使「我的代碼覆蓋率爲N%」這一陳述更有意義。


Hypothesis會幫助你生成各種測試輸入在接受測試的功能定義的範圍。

通常,當你需要測試的功能,你提供試圖覆蓋所有的代碼覆蓋報告驅動的使用情況和邊緣的情況下多實例值 - 這就是所謂的「例如基於測試」。另一方面,假設實現了基於屬性的測試,生成一大堆不同的輸入和輸入組合,以幫助捕獲不同的常見錯誤,例如除零,None,0,逐個錯誤等,並幫助找到隱藏的錯誤。

Mutation testing是關於在對您的代碼的修改版本執行測試時即時更改您的待測代碼。

這確實有助於瞭解您的測試是否真的測試了他們應該測試的內容,以瞭解測試的價值。如果您已經擁有豐富的測試代碼庫和良好的代碼覆蓋率,那麼突變測試的確會發光。


什麼幫助我得到阿霍德的這些概念都是這些Python的播客:

+1

很好的回答。基於屬性的測試會改變輸入,變異測試會改變代碼。 「如果您已經擁有豐富的測試代碼庫和良好的代碼覆蓋率,那麼突變測試將會真正發光。」 ...您可能會使用基於屬性的測試! – clacke

相關問題