15 關於測試

2021-08-21 07:08:59 字數 2228 閱讀 5598

軟體測試是一種用來促進鑑定軟體的正確性、完整性、安全性和品質的過程,也就是在規定的條件下對程式進行操作以發現程式中的錯誤,衡量軟體的品質並對其是否能滿足設計要求進行評估的過程。

測試的方法

黑盒測試:測試應用程式的功能,而不是其內部結構或運作。測試者不需具備應用程式的**、內部結構和程式語言的專門知識。測試者只需知道什麼是系統應該做的事,即當鍵入乙個特定的輸入,可得到一定的輸出。測試案例是依應用系統應該做的功能,照規範、規格或要求等設計。測試者選擇有效輸入和無效輸入來驗證是否正確的輸出。此測試方法可適合大部分的軟體測試,例如整合測試和系統測試。

白盒測試:測試應用程式的內部結構或運作,而不是測試應用程式的功能(即黑箱測試)。在白箱測試時,以程式語言的角度來設計測試案例。測試者輸入資料驗證資料流在程式中的流動路徑,並確定適當的輸出,類似測試電路中的節點。

測試的種類(階段)

單元測試:對軟體組成單元進行測試,其目的是檢驗軟體基本組成單位的正確性,測試的物件是軟體設計的最小單位 - 函式。

整合測試:將程式模組採用適當的整合策略組裝起來,對系統的介面及整合後的功能進行正確性檢測的測試工作。其主要目的是檢查軟體單位之間的介面是否正確,整合測試的物件是已經經過單元測試的模組。

系統測試:系統測試主要包括功能測試、介面測試、可靠性測試、易用性測試、效能測試。 

回歸測試:為了檢測**修改而引入的錯誤所進行的測試活動。回歸測試是軟體維護階段的重要工作,有研究表明,回歸測試帶來的耗費佔軟體生命週期的1/3總費用以上。

單元測試

python的標準庫里有為編寫單元測試而準備的unittest模組,執行測試時建議使用pytest。pytest是一款能夠自動搜尋並執行測試的測試執行工具,並且會輸出詳細的錯誤報告。關於單元測試可以看看《python必會的單元測試框架 - unittest》。

可以安裝testfixtures庫來輔助單元測試,它整合了多種典型配置器,提供了生成目錄、更改系統日期、生成mock物件的功能模組,這些模組能夠幫助我們將單元測試與單元測試所依賴的環境分離開。mock 是將測試物件所依賴的物件替換為虛擬物件的庫,在測試的時候,我們可以為虛擬物件指定其在被呼叫時的返回值以及是否發生異常等。

webtest是用於web應用功能測試的庫。它會對wsgi應用執行模擬請求並獲取結果。基本上所有wsgi應用的測試都可以用它。

tox能便捷地為我們準備好執行測試所需的環境。tox會在多個virtualenv環境中搭建測試 環境,然後在這些環境中執行測試並顯示結果。它能夠把測試工具的選項及環境變數等內容統 一起來,所以我們只需執行tox命令即能輕鬆完成所需的測試。

selenium是實現web應用程式的功能測試以及整合測試自動化的瀏覽器驅動測試工具群。和使用瀏覽器的使用者相同,selenium可以在瀏覽器進行的滑鼠操作、在表單中輸入文字、驗證表單的值等,利用這一點就可以將手動操作變成自動化操作。

selenium優點

自動化測試用例製作簡單。selenium提供了selenium ide工具,該工具可以捕獲滑鼠、鍵盤的操作,然後通過重放功能來重複這些操作,這樣就可以簡單的製作測試用例。

支援多種瀏覽器和作業系統。

selenium的元件

selenium ide。

selenium remote control。

selenium webdriver。

與持續整合工具協作

持續整合指的是頻繁的將**整合到主幹。它的好處主要有兩個:

1. 快速發現錯誤。每完成一點更新,就整合到主幹,可以快速發現錯誤,定位錯誤也比較容易。

防止分支大幅偏離主幹。如果不是經常整合,主幹又在不斷更新,會導致以後整合的難度變大,甚至難以整合。

持續整合的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是**整合到主幹之前,必須通過自動化測試,只要有乙個測試用例失敗,就不能整合。程式設計大師martin fowler曾經說過:「持續整合並不能消除bug,而是讓它們非常容易發現和改正。」

可以在jenkins中安裝「seleniumhq plugin」外掛程式,這樣就可以將selenium ide製作的測試用例儲存為html格式並提供給jenkins來使用,基本步驟是:

從jenkins的「系統管理」中選擇「外掛程式管理」來安裝「seleniumhq plugin」。

在jenkins的「系統管理」中選擇「系統設定」並配置「selenium remote control」下的「htmlsuite runner」。

新建測試用的jenkins任務並進行配置,配置的內容包括:瀏覽器、起始url、測試套件和測試結果輸出檔案。

配置完成後,就可以執行jenkins的「立即構建」了。

聯賽模擬測試 15

每個裝備只能用一次,那麼我們就可以考慮二分圖匹配。用裝備向它的屬性值建邊,然後從屬性值的 1 開始跑匈牙利。如果不能匹配了就是最大的攻擊次數。需要注意,如果每次 memset 一定會 t 所以我們記錄乙個時間戳,每次判斷 vis 陣列是否等於時間戳即可。裸的約瑟夫問題,容易得到通項公式 p p m ...

NOIP模擬測試15

t2讀題跪掉了好可惜 qaq problem a 建設城市 插板加容斥搞個不停,得到柿子 sum limits 1 c times c n i 預處理階乘和階乘逆元,ning幹。1 include 2 define ll long long34 const int d 998244353 5 ll ...

關於軟體測試關於軟體測試

icxo.日期 2004 08 03 17 32 因為測試時從來不希望檢測被測系統所有可能的輸入 路徑和狀態,那麼應該選擇什麼?什麼時候應該停止測試?什麼時候應該暫停測試?怎樣編寫乙個測試包,它可以檢測足夠多的訊息和狀態的組合來說明沒有失敗的操作,但是從實用性來說它又足夠的小?測試提出了許多基本的但...