軟件測試----單元測試



軟件測試

1、單元測試,集成測試,功能測試的分別

1、單元測試

顆粒度最小,一般由開發小組采用白盒方式來測試,主要測試單元是否符合“設計”;是指對軟件中的最小可測試單元進行檢查和驗證

2、集成測試

介於單元測試和系統測試之間,一般由開發小組采用白盒+黑盒的方法來測試,即驗證“設計”又驗證“需求”。主要用來測試模板與模板之間的接口,同時還要測試一些主要的業務功能。

3、功能測試

顆粒度最大,一般由獨立的測試小組采用黑盒的方式來測試,主要測試系統是否符合“需求規格說明書

4、什么是白盒測試,黑盒測試

主要應用於單元測試階段,主要是對代碼級別的測試,針對程序內部的邏輯結構。測試的手段有:語句覆蓋、判定覆蓋、條件覆蓋、路徑覆蓋和條件組合覆蓋
不考慮程序內部結構和邏輯結構,主要是測試系統的功能是否滿足“需求規格說明書”。一般會有一個輸入值和一個輸出值,和期望值做比較。

2、單元測試之unittest

1、Unittest重要組成

01、unittest模塊

Python中有一個自帶的單元測試框架是unittest模塊,用它來做單元測試,它里面封裝好了一些校驗返回的結果方法(斷言)和一些用例執行前的初始化操作。

02、核心部分

unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner

03、 TestFixture:用於一個測試環境的准備和銷毀還原

當測試用例每次執行之前需要准備測試環境,每次測試完成后還原測試環境,比如執行前連接數據庫、打開瀏覽器等,執行完成后需要還原數據庫、關閉瀏覽器等操作。這時候就可以啟用testfixture

04,方法

setUp():准備環境,執行每個測試用例的前置條件;
tearDown():環境還原,執行每個測試用例的后置條件;
setUpClass():必須使用@classmethod裝飾器,所有case執行的前置條件,只運行一次;
tearDownClass():必須使用@classmethod裝飾器,所有case運行完后只運行一次

3、TestCase:測試用例

一個類class繼承 unittest.TestCase,就是一個測試用例
什么是測試用例呢?就是一個完整的測試流程,包括測試前准備環境的搭建(setUp),執行測試代碼(run),以及測試后環境的還原(tearDown)。
繼承自unittest.TestCase的類中,測試方法的名稱要以test開頭。且只會執行以    test開頭定義的方法(測試方法),測試用例執行的順序會按照方法名的ASCII值排序。
如果想跳過某個測試用例,@unittest.skip(‘描述信息')

Demo:

4、斷言

5、TestSuite :測試套件,可以將多個測試用例集合在一起,能一起執行選中的測試用例

三種方法

Demo:

6、TextRunner:執行測試用例

通過TextTestRunner類提供的run()方法來執行test suite/test case
格式如下:
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)

verbosity :表示測試報告信息的詳細程度,一共三個值,默認是2
0 (靜默模式):你只能獲得總的測試用例數和總的結果,如:總共100個 失敗10 成功90
1 (默認模式):類似靜默模式,只是在每個成功的用例前面有個. 每個失敗的用例前面有個F
2 (詳細模式):測試結果會顯示每個測試用例的所有相關的信息
Demo:

7、生成測試報告

html格式的就是HTMLTestRunner了,HTMLTestRunner是 Python 標准庫的 unittest 框架的一個擴展,它可以生成一個直觀清晰的 HTML 測試報告。使用的前提就是要下載 HTMLTestRunner.py

下面是下載地址

https://files.cnblogs.com/files/DunayueBlog/HTMLTestRunner.zip

格式

先下載到項目的文件夾,然后導包,像這樣

然后格式如下

參數說明

相關參數說明:
stream:指定輸出的方式
description:報告中要顯示的面熟信息
title:測試報告的標題
verbosity :表示測試報告信息的詳細程度,一共三個值,默認是2
0 (靜默模式):你只能獲得總的測試用例數和總的結果,如:總共100個 失敗10 成功90
1 (默認模式):類似靜默模式,只是在每個成功的用例前面有個. 每個失敗的用例前面有個F
2 (詳細模式):測試結果會顯示每個測試用例的所有相關的信息


免責聲明!

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



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