Robert C Martin 對驗收測試的解釋

2021-09-01 16:20:44 字數 899 閱讀 4676

作 為驗證工具來說,單元測試是必要的,但是不夠充分。單元測試用來驗證系統的小的組成單元應該按照所期望的方式工作,但是它們沒有驗證系統作為乙個整體時工 作的正確性。單元測試是用來驗證系統中個別機制的白盒測試(white-box tests)。驗收測試是用來驗證系統滿足客戶需求的黑盒測試(black-box tests)。

驗收測試由不了解系統內部機制的人編寫。客戶可以直接或者和一些技術人員(可能是qa人員)一起來編寫驗收測試。驗收測試是程式,因此是可以執行的。然而,通常使用專為應用程式的客戶建立的指令碼語言來編寫驗收測試。

驗收測試是關於一項特性(feature)的最終的文件。一旦客戶編寫完成了驗證一項特性的驗收測試,程式設計師就可以閱讀那些驗收測試來真正地理解這項特性。所以,正如單元測試作為可編譯、執行的有關系統內部結構的文件那樣,驗收測試是有關系統特性的可編譯、執行的文件。

此 外,首先編寫驗收測試的行為對於系統的構架方面具有深遠的影響。為了使系統具有可測試性,就必須要在很高的系統構架層面對系統進行解耦合。例如,為了使驗 收測試無需通過使用者介面(ui)就能夠獲得對於業務規則的訪問,就必須要以滿足這個目的的方式來解除使用者介面和業務規則之間的耦合。

在 專案迭代的初期,會受到用手工的方式進行驗收測試的**。但是,這樣做使得在迭代的初期就喪失了由自動化驗收測試的需要帶來的對系統進行解耦合的促進力, 所以是不明智的。當在最早開始迭代時,如果非常清楚地知道必須要自動化驗收測試,就會做出非常不同的系統構架方面的權衡。並且,正如單元測試可以促使你在 小的方面做出優良的設計決策一樣,驗收測試可以促使你在大的方面做出優良的系統構架決策。

建立乙個驗收測試框架(framework)看起來是件困難的任務。然而,如果僅僅建立框架中對單個迭代包含的特性進行驗收測試所需要的那部分,就會發現並不困難。你還會發現所花費的努力是值得的。

摘自:robert c. martin《敏捷軟體開發:原則、模式與實踐》

對先驗後驗概率的一點理解

先驗概率是由某些起因推導出結果發生的概率,如用在全概率公式中。利用過去歷史資料計算得到的先驗概率,稱為客觀先驗概率 當歷史資料無從取得或資料不完全時,憑人們的主觀經驗來判斷而得到的先驗概率,稱為主觀先驗概率。注 全概率公式就是已知第一階段求第二階段,比如第一階段分a b c三種 完備事件組 然後a ...

crossvalind Matlab 交叉驗證

matlab 交叉驗證 rel noopener noreferrer crossvalind matlab 交叉驗證 lujingyang1029 今天用到crossvalind.這個適用於crossvalidation。中文應該叫做交叉驗證。我主要想說說這個函式怎麼用的。舉個簡單的例子 p tr...

C Excel資料驗重及Table資料驗重

最近在做匯入excel資料的時候,要檢驗資料是否重複 1 要檢驗excel資料本身是否有重複?2 excel中的資料是否與資料庫中的資料重複?region 記錄excel中的重複列 記錄excel中的重複列 需要獲取重複列的表 提示重複資訊 private string getdistincttab...