輕鬆聊:系統測試 (SVT) 的三兩事


Stages in Software Testing 一文有提到 系統驗證測試 (System Verification Test) 的基本概念,基本的想法就是:

  • 功能驗證 (FVT)假設功能還沒好,目的是確認商業功能正確性,像是邏輯完整性、資料正確性、驗證與錯誤處理、探索功能的可能性 … 等,強調功能本身的 內聚力
  • 系統驗證 (SVT)假設功能都好了,增加 外在環境因素 之後,把這些 功能 放到不同的環境會有什麼問題?強調外在 耦合性真實世界 的情境。

這裏整理前一個工作做教育訓練的資料,主要描述的是以 User-Facing 為主的系統,像是 iOS / Android 的差異。這 Slide 用比較自嘲、調侃的方式呈現,配合當時的熱門的話題,時間點是在 iPhone5 (2012/09) 上市的時候。


SVT 要做哪一些?

底下 Slide 的截圖內容,有點年代,不過概念應該不難理解。



整理這篇文章的時間是 2018, iPhone 已經出到 iPhone8、iPhoneX,有趣 XDD










重點在這張:

  • FVT (Functional Verification Test)
    • 假設功能都還沒準備好,確認商業功能,包含邏輯完整性、資料正確性 (integrity)、驗證與錯誤處理
    • 強調功能本身的 內聚力 (Cohesion)
    • SRE CH17 的 Slogan 概念一樣:If you haven’t tried it, assume it’s broken. 如果你還沒開始親自測試過某件東西,那麼就假設他是壞的。
    • Slide 用 Beta Version 這個詞,是因為當時做 IoT 產品,需要跟 Hardware Team 同事溝通,他們習慣這樣的階段稱呼,現在純 Software 比較少用這樣的名詞。
    • 通常是在 In-HouseLab 裡面,具備最佳的條件。
    • S/N 比是最佳值。
  • SVT (System Verification Test)
    • 假設功能都好了,增加 外在因素 對功能的影響,通常是環境變因,把這些 功能 放到不同的環境會有什麼問題?
    • 強調功能與外在變因的 耦合力 (Coupling)
    • 使用者端 (User-Facing):分成 Desktop、Mobile 兩大類
    • 後端系統架構 (Backend):考量現代的 分散式架構 的問題,有更多像是效能、部署、資安等議題。
    • 面對的是 真實世界 的問題,外在干擾因素很多的環境。
    • S/N Signal Noise 比很高。這是錄音常用的名詞,通常錄音室用的麥克風規格都會有 S/N Ratio。雜訊越高,資訊越沒意義。

主詞從 功能 換成 ,會變成很有意思的話題:政治

其他領域的 SVT

有在留意汽車廣告的人,應該不難發現經常會把車子放在各式各種極端環境下,展現車子的性能,像是雨天、馬路不平、泥濘、涉水 … 等。這些都在強調當外在因素的改變,本身的性能都可以滿足。而引擎的性能通常會在實驗室的理想條件下,有個最佳數據。然後再到真實的環境,給予外在的巨大變因,看看車子本身是否有良好的內聚力。

下圖是些常見的例子:



圖片來源:https://www.lian-car.com/articles/read/24711.html


SVT 在整個測試的範疇

底下這張圖,表達 SVT 在整個測試的範疇,他範圍很大,而且包山包海,但是這就是 真實世界 要面對的問題:


結論

當時 (2012/10) 整理 Slide 時,故意弄的有點好笑,又有點無奈,但實際上,就是這樣,即使現在有雲端,還有各式各樣的自動化測試解決方案,實際上,大家要認知到一件事情:

他有這麼多東西要做、這麼多面向要挑戰,可以省略、有先後次序、權重,但不可以不知。

其實不管是軟體還是人生,都有同樣的面相。

在學校或家裡,是在安全、資源充足(大部分)、干擾少的的情境之下學習,也就是『理想條件』之下的學習。但真實的社會往往不會有『理想條件』這種事,往往是干擾很大 (S/N 比很高)、現實跟理想距離很遠。。。

S/N 比是錄音室的麥克風規格之一,表達的是在一定外在因素之下 (通常是舞台上),麥克風本身能夠維持穩定的性能表現,不會收到太多 Noise。

測試也是一樣,在理想跟真實的條件之下的測試,是全然不一樣的。內聚力強,不管外在變因如何改變,都能夠呈現出穩定的性能,這也就是 SVT 的目的。現代更強調 反脆弱 (Antifragile) 等概念,其實也都是在強調,如何面對極端的外在變因,透過這些。


延伸閱讀 (站內)

參考資料


Comments