《軟件測試52講》——代碼測試篇


《軟件測試52講》

1、測試基礎知識篇——(0~11講)

2、GUI自動化測試篇——(12~21講)

3、API自動化測試篇——(22~24講)

4、代碼測試篇——(25~27講)

5、性能測試篇——(28~34講)

6、測試數據准備篇——(35~38講)

7、測試基礎架構篇——(39~42講)

8、測試新技術篇——(43~47講)

9、測試人員的互聯網架構核心知識篇——(48~52講)

代碼測試篇

25——掌握代碼級測試的基本理念與方法

常見代碼錯誤類型

  1、語法特征錯誤

    語法特征錯誤是指,從編程語法上就能發現的錯誤。比如,不符合編程語言語法的語句等。

  2、邊界行為特征錯誤

    邊界行為特征錯誤是指,代碼在執行過程中發生異常,崩潰或者超時。之所以稱為“邊界”,是由於此類錯誤通常都是發生在一些邊界條件上。

  3、經驗特征錯誤

    經驗特征錯誤是指,根據過往經驗發現代碼錯誤。

  4、算法錯誤

    算法錯誤是指,代碼完成的計算(或者功能)和之前預先設計的計算結果(或者功能)不一致。

  5、部分算法錯誤

    部分算法錯誤是指,在一些特定的條件或者輸入情況下,算法不能准確完成業務要求實現的功能。

代碼級測試常用方法

  1、靜態方法

    人工靜態方法:人工靜態方法是指,通過人工閱讀代碼查找代碼中潛在錯誤的方法,通常采用的手段包括,開發人員代碼走查、結對編程、同行評審等。

    自動靜態方法:自動靜態方法是指,在不運行代碼的方式下,通過詞法分析、語法分析、控制流分析等技術,並結合各種預定義和自定義的代碼規則,對程序代碼進行靜態掃描發現語法錯誤、潛在語義錯誤,以及部分動態錯誤的一種代碼分析技術。

    自動靜態方法工具:Sonar、Coverity

  2、動態方法

    人工動態方法:人工動態方法是指,設計代碼的輸入和預期的正確輸出的集合,然后執行代碼,判斷實際輸出是否符合預期。

    單元測試框架:Java(Junit和TestNG),Python(UniTest、Pytest)

    自動動態方法:自動動態方法,又稱自動邊界測試方法,指的是基於代碼自動生成邊界測試用例並執行,以捕捉潛在的異常、崩潰和超時的方法。

這四類測試方法的特點,以及可以覆蓋的錯誤類型,可以概括如下:

  人工靜態方法,本質上通過開發人員代碼走查、結對編程、同行評審來完成的,理論上可以發現所有的代碼錯誤,但也因為其對“測試人員”的過渡依賴,局限性非常大;

  自動靜態方法,主要的手段是代碼靜態掃描,可以發現語法特征錯誤、邊界行為特征錯誤和經驗特征錯誤這三類“有特征”的錯誤;

  人工動態方法,就是傳統意義上的單元測試,是發現算法錯誤和部分算法錯誤的最佳方式;

  自動動態方法,其實就是自動化的邊界測試,主要覆蓋邊界行為特征錯誤。

26——深入淺出之靜態測試方法

人工靜態方法

  (1)代碼走查(Code Review)

  (2)結對編程(Pair Programming)

  (3)同行評審(Peer Review):如果你所在的項目使用 GitHub 管理代碼,並采用GitFlow 的分支管理策略,那么在遞交代碼或者分支合並時,需要先遞交 Pull Request(PR),只有這個 PR 經過了所有評審者的審核,才能被合並。

    這也是同行評審的具體實踐。目前,只要你采用 GitFlow 的分支管理策略,基本都會采用這個方式。

自動靜態方法

  自動靜態工具 Sonar

  目前,自動靜態掃描通常都會和持續集成的流水線做綁定,最常見的應用場景是當你遞交代碼后,持續集成流水線就會自動觸發自動靜態掃描,這一功能是通過 Jenkins 以及 Jenkins 上的SonarQube 插件來完成的,

  當你在 Jenkins 中安裝了 SonarQube Plugin,並且將SonarQube 服務器相關的配置信息入 Plugin 之后,你就可以在 Jenkins Job 的配置中增加Sonar 靜態掃描步驟了。

27——深入淺出之動態測試方法

人工動態方法——單元測試

  單元測試用例“輸入參數”的復雜性

    1、被測試函數的輸入參數

    2、被測試函數內部需要讀取的全局靜態變量

    3、被測試函數內部需要讀取的類成員變量

    4、函數內部調用子函數獲得的數據

    5、函數內部調用子函數改寫的數據

    6、嵌入式系統中,在中斷調用中改寫的數據

  單元測試用例“預期輸出”的復雜性

    1、被測函數的返回值

    2、被測函數的輸出參數

    3、被測函數所改寫的成員變量和全局變量

    4、被測函數中進行的文件更新、數據庫更新、消息隊列更新等

  關聯依賴的代碼不可用

    采用樁代碼來模擬不可用的代碼,並通過打樁補齊未定義部分

自動動態方法

  自動動態方法是,基於代碼自動生成邊界測試用例並執行來捕捉潛在的異常、崩潰和超時的測試方法

  解決這個問題最簡單直接的方法是,根據被測函數的輸入參數生成可能的邊界值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM