自動化回歸測試案例評價標準試圖定義不同維度來評價自動化案例的優劣,作為后續我們評判討論測試框架、測試技術和測試案例編寫模式的基礎。那什么是好的自動化回歸測試案例呢?簡而言之,是投資回報率高的案例,因為案例的回報相對穩定,所以,高投資回報率的測試案例的主要特征是低成本,而這個成本應該是一個測試案例全生命周期的成本:
  測試案例全周期成本 =
  初始開發成本
  + 執行成本*e
  + 平均錯誤定位成本*f
  + 平均重構成本*m
  這里:
    初始開發成本是指案例開發、調試和優化的成本,其實它主要由使用的測試框架和測試工具來決定;
    平均執行成本是指案例執行成本,這個成本主要是由暫用計算資源造成的,
    e是指執行次數,應該是千次或萬次數量級的;
    錯誤定位成本是指自動化案例執行報錯后,發現、定位、解決問題的成本,
    f是出現錯誤的次數,一般應該在幾十次數量級;
    平均重構成本是指為了應對需求變化而重構案例的平均成本;
    m是重構的次數,一般可能是幾十次數量級的,視相關需求變更頻繁程度。
  有了上面的成本模型,我們可以討論一下自動化回歸測試案例的評價標準(MeReST標準):
  1. Maintainable(可維護性),主要指標(Should):案例應易于維護和擴展,可以應對未來的需求變化;在測試案例全周期成本中,對一個正常案例而言,總重構成本會是大頭,因此,測試案例的可維護性至關重要;
  2. Efficient(高效性),次要指標(Could):案例應盡可能在短時間內守護盡量多的風險點;提升案例的高效性,有利于減少測試案例的數量,在不過分影響其他指標的前提下,盡量用更少地案例來覆蓋同樣的風險點,有助于減少測試案例集總成本;
  3. Readable(易讀性),主要指標(Should):案例應該簡單,易于理解;易讀性在案例開發階段,會影響案例溝通、交流的難度,影響初始開發成本,更重要的是,它也是影響重構成本的重要因素,因為,維護測試案例的人很可能已經不是初開發案例的人了,能夠重構的前提是看得懂;
  4. Easy-to-use(易用性),次要指標(Could):案例對測試人員而言,應該非常易于使用,例如,易于調試,出現問題易于定位,可以方便重跑失敗案例等;這個指標可以在一定程度上影響開發成本,錯誤定位成本和重構成本;
  5. Sensitive(敏感性),必備(Must):案例的目標是守護關鍵需求,防范特定風險,因此,案例必須具備足夠的風險敏感性,在出現問題時,必須給出預警。永遠不失敗的測試案例不是好案例;敏感性其實是案例的低功能要求,不具備足夠的風險敏感性案例是無效案例,例如,沒有assert或僅僅assert函數返回值的單元測試案例都是不夠敏感的案例;
  6. Trustable(可靠性),必備(Must):案例應盡量避免由于案例原因造成的隨機失敗,案例失敗好意味著對應系統存在問題;可靠性這個指標非常重要,因為,如果案例不可靠,出現隨機失敗,這會極大增加出現錯誤的次數,從而傳導到測試案例總成本。
  分析清楚了MeRest原則,下面我們可以討論測試框架、測試技術和測試案例編寫模式了。