編寫優質軟體 什麼是可測試性

2021-08-29 07:16:34 字數 832 閱讀 1153

測試軟體理論上很簡單:只要強迫程式在正確資料、錯誤資料、沒有資料或不完整資料的情況下工作,驗證結果是否滿足預期。你如何強迫程式使用你的輸入資料?你如何衡量結果的正確性?如果失敗了,你如何跟蹤失敗的模組?

這些問題都是「為可測試性而設計」(dft)正規化的基礎。dft定義了3個屬性,任何軟體單元必須滿足它們才會容易測試。

一般而言,簡約性對於任何系統在任何情況下都是乙個正面的屬性。測試毫無疑問也不例外。

可測試性比具體的測試步驟更重要。可測試性是軟體的乙個特性,代表著質量的(好)評價。測試是乙個流程,目的是驗證**是否滿足預期。

成功應用dft的話,你的**通常會有很高的質量,有助於維護和重構,也更易被碰到它的開發者理解。在這種情況下,寫單元測試非常有效,總的來說也更加容易。

可測試性的投資回報(return on investment,roi)就是你的**質量得到改善。在寫類的時候,要以使它們變得可測試為目標,這樣會促使你喜歡簡潔,每次邁進一小步。你很快就會發現某個類什麼時候變得臃腫,找到你需要注入依賴的地方,識別出你需要處理的實際依賴。

你當然可以只寫可測試**,但不為每個類和元件寫所需的那些測試。但測試和類一起寫有助於你理解這個roi。

但是,最終的目標是寫出好**,而不是好測試。

如果你需要證明可測試性的roi給你自己或者你的經理看,我們建議你實驗一下類和測試一起寫。這可以證明產生的測試是乙個回歸工具,並證明你的**能在任何測試過的條件下(包括常見情況和邊界情況)工作。這個測試也改善了類的整體設計,因為要寫測試,你最終會使類的公共介面變得更易使用。測試意味著有更多**編寫和維護,這是額外的代價。

即便這樣,可測試性其實是某種個人頓悟,每個開發者和開發團隊最終都會經歷,但只有到合適的時機才會出現。

什麼是可伸縮性測試

提到效能測試,大家馬上腦海裡馬上會出現負載測試 壓力測試 容量測試等概念,那麼大家知不知道還有可伸縮性測試。可伸縮性測試可以看成效能測試的乙個擴充套件,關注系統本身的可伸縮性,下面給大家具體介紹。系統的可伸縮性可以從硬體和軟體兩個方面來理解 1 硬體的可伸縮性 是不是可以通過硬體裝置的增加來支援更多...

什麼是可伸縮性測試

提到效能測試,大家馬上腦海裡馬上會出現負載測試 壓力測試 容量測試等概念,那麼大家知不知道還有可伸縮性測試。可伸縮性測試可以看成效能測試的乙個擴充套件,關注系統本身的可伸縮性,下面給大家具體介紹。系統的可伸縮性可以從硬體和軟體 兩個方面來理解 1 硬體的可伸縮性 是不是可以通過硬體裝置的增加來支援更...

什麼是軟體測試?

1983,ieee提出的軟體工程標準術語,定義為 使用人工和自動手段執行或測試某個系統的過程,其目的在於檢測它是否滿足規定的需求或是弄清楚預期結果與實際結果之間的差別。g.j.myers認為 測試時為了發現錯誤而執行程式的過程。好的測試方案是發現迄今為止尚未發現的錯誤的測試方案。成功的測試是發現了迄...