1 軟體測試簡介

2021-10-14 11:43:38 字數 4647 閱讀 9065

目錄

1.測試簡介

1.1. 什麼是軟體測試

1.2軟體測試的目:

1.3 軟體測試原則

1.4. 軟體測試發展歷史

1.4.1. 2023年之前——除錯為主(debugging oriented)

1.4.2. 1957–1978——證明為主(demonstration oriented)

1.4.3. 1979–1982——破壞為主(destruction oriented)

1.4.4. 1983–1987——評估為主(evaluation oriented)

1.4.5. 1988–至今——預防為主(prevention oriented)

1.5. 軟體測試中專用名詞解釋

1.5.1. 測試用例

1.5.2. bug

1.5.3. 冒煙測試

1.5.4. 黑盒測試

1.5.5. 白盒測試

1.5.6. 灰盒測試

1.5.7. 單元測試

1.5.8. 自動化測試

1.5.9. 效能測試

1.5.10 其他測試

1.6. 軟體測常用工具及平台

1.6.1. charles/fidder 抓包**工具

1.6.2. 資料庫連線工具

1.6.3. 遠端工具

1.6.4. postman和apipost等 介面測試

1.6.5. jmeter、loadrunner

1.6.6. 禪道、jira,confluence、testrail、testlink

1.6.7. jenkins

1.6.8. 自動化測試

1.7測試流程簡介

軟體測試(英語:software testing),描述一種用來促進鑑定軟體的正確性、完整性、安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出之間的審核或者比較過程。使用人工或自動手段來執行或測試摸個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果和實際結果之間的差別.

測試是為了發現程式中的錯誤而執行程式的過程。

好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案。

成功的測試是發現了至今為止尚未發現的錯誤的測試。

測試並不僅僅是為了找出錯誤。通過分析錯誤產生的原因和錯誤的發生趨勢,可以幫助專案管理者發現當前軟體開發過程中的缺陷,以便及時改進。這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性。

沒有發現錯誤的測試也是有價值的,完整的測試是評定軟體質量的一種方法。

根據測試目的的不同,還有回歸測試、壓力測試、效能測試等,分別為了檢驗修改或優化過程是否引發新的問題、軟體所能達到處理能力和是否達到預期的處理能力等

測試人員應該盡早介入,要在需求階段就開始介入,因為最嚴重的錯誤不外乎是系統不能滿足使用者的需求。

設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下還要製造極端狀態和意外狀態,如網路異常中斷、電源斷電等,即容錯測試和容災測試。

應該充分注意測試中的群集現象。

對錯誤結果要進行乙個確認過程。安排其他人員嘗試重現問題,並且做好定位於bug定級。

制定嚴格的測試計畫。一定要制定測試計畫,並且要有指導性。測試時間安排留好buff,不要希望在極短的時間內完成乙個高水平的測試。

妥善儲存測試計畫、測試用例、出錯統計和最終分析報告,為維護提供方便。

是想以最少的人力,物力和時間找出軟體中潛在的各種錯誤與缺陷,通過修正各種錯誤和缺陷提高軟體質量,迴避軟體發布後由於潛在的軟體缺陷和錯誤造成的隱患以及帶來的商業風險。

注意:不要和軟體測試的定義混淆

20世紀50年代,計算機剛誕生不久,只有科學家級別的人才會去程式設計,需求和程式本身也遠遠沒有現在這麼複雜多變,相當於開發人員一人承擔需求分析,設計,開發,測試等所有工作,當然也不會有人去區分除錯和測試。

2023年,charles baker在他的一本書中對除錯和測試進行了區分debug和testing: *除錯(debug):確保程式做了程式設計師想它做的事情 *測試(testing):確保程式解決了它該解決的問題

2023年,《軟體測試的藝術》 (the art of software testing)第一版問世,這本書是測試界的經典之作。書中給出了軟體測試的經典定義: 測試是為發現錯誤而執行程式的過程。

2023年,美國國家標準局(national bureau of standards)發布「guideline for lifecycle validation, verification and testing of computer software」,也就是我們常說的vv&t。vv&t提出了測試界很有名的兩個名詞:驗證(verification)和確認(validation) 人們提出了在軟體生命週期中使用分析,評審,測試來評估產品的理論。軟體測試工程在這個時期得到了快速的發展

預防為主是當下軟體測試的主流思想之一。step(systematic test and evaluation process)是最早的乙個以預防為主的生命週期模型,step認為測試與開發是並行的,整個測試的生命週期也是由計畫,分析,設計,開發,執行和維護組成,也就是說,測試不是在編碼完成後才開始介入,而是貫穿於整個軟體生命週期。我們都知道,沒有100%完美的軟體,零缺陷是不可能的,所以我們要做的是:盡量早的介入,盡量早的發現這些明顯的或隱藏的bug,發現得越早,修復起來的成本越低,產生的風險也越小。

測試用例(test case),是指對一項特定的軟體產品進行測試任務的描述,體現測試方案、方法、技術和策略。 基本內容應當包含前置條件、測試步驟、預期結果,在測試用例執行後應當包含實際結果、測試結果、執行時間、執行人。有時候也需要加上資料準備、測試環境、測試指令碼等等

bug,直譯成中文是臭蟲的意思,很多人會把bug簡單的理解為程式中個錯誤或異常。其實在軟體測試中,對bug真正的定義應該是不符合需求的功能點。

冒煙測試(smoking),這一術語**於硬體行業,對乙個硬體或硬體元件進行更改或修復後,直接給裝置加電。如果沒有冒煙,

則該元件就通過了基本的測試。在軟體測試中,通常是指產品到達可提測階段後,對主流程或者基本業務的測試,通常冒煙測試點時間盡量在半天內完成,若冒煙測試不通過可以直接打回,拒絕進行第一輪測試。冒煙測試可以由開發同學完成, 也可以由測試同學完成。

黑盒測試又稱功能測試、資料驅動測試或基於規格說明的測試,在不考慮內部結構和內部特徵、測試者只需要知道該程式輸入和輸出之間的關係或程式功能的情況下,依靠能夠反映這一關係和程式功能需求規格的說明書,來確定測試用例和推斷測試結果的正確性。軟體的黑盒測試一般是用來確認軟體功能的正確性和可操作性

白盒又稱結構測試、邏輯驅動測試或基於程式測試。它依賴於程式細節的嚴密檢驗,針對特定的條件和迴圈集設計測試用例,對軟體的邏輯路徑進行測試。在程式的不同點檢驗程式的狀態,來判斷真實情況十分和預期的狀態相一致。軟體的白盒測試一般用例分析程式的內部結構

灰盒測試,是介於白盒測試與黑盒測試之間的一種測試,灰盒測試多用於整合測試階段,不僅需要關注輸出、輸入的正確性,同時也需要關注程式內部的情況。灰盒測試不會像白盒那樣詳細和完整,但又比黑盒測試更關注程式的內部邏輯,常常是通過一些表徵性的現象、事件、標誌來判斷內部的執行狀態。

單元測試(unit test)是指對軟體中的最小可測試單元在與程式其他部分相隔離的情況下進行檢查和驗證的工作,最小可測試單元通常是指函式或者類。

單元測試通常由開發完成,一般會伴隨開發**一起遞交至**庫。單元測試屬於最嚴格的軟體測試手段,是最接近**底層實現的驗證手段,可以在軟體開發的早期以最小的成本保證區域性**的質量。單元測試都是以自動化的方式執行,在大量回歸測試的場景下更能帶來較高收益,缺點是比較耗費開發人員時間。

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,為了節省人力、時間或硬體資源,提高測試效率,便引入了自動化測試的概念,目前市面上比較多的是介面自動化測試和ui自動化測試。

通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試,

安全測試

滲透測試  

文件測試

安裝測試

弱網測試  等

個人比較推薦使用charles,官網位址 ,詳細教程網上也有很多,比較推薦這個:推薦教程鏈結

值得一提的是,正版只要29.9美元,終生可用。

常見的mysql連線工具:nacicat for mysql

常見的oracle連線工具:

pl/sql 需要了解簡單的sql編寫,資料庫相關基本知識

常用的linux連線工具:xshell,,finalshell,securecrt 需要了解linux常用命令,qa人員通常會維護測試環境。

http介面測試工具,支援js程式設計,可以編寫簡單的指令碼進行邏輯測試

soapui    web service的功能/負載/符合性測試

常用的效能測試工具 詳情可見後續效能測試專欄文章

常見的專案、文件、測試用例管理平台工具

持續整合平台,通常用於**部署、自動化測試配置執行,裡面包含了不少自動化測試框架的報告模板以及各種單元測試框架的相容和拓展。

selenium  web自動化

1 簡介 軟體測試技術入門

軟體測試是軟體開發過程中的乙個重要組成部分,是貫穿整個軟體開發生命週期 對軟體產品 包括階段性產品 進行驗證和確認的活動過程,其目的是盡快盡早地發現在軟體產品中所存在的各種問題 與使用者需求 預先定義的不一致性。軟體測試技術 軟體測試的分類 1 從是否需要執行被測試軟體的角度分類 靜態測試和動態測試...

軟體測試簡介

當做課後複習,參考振宇兄的ppt 測試活動 1 測試需求 2 測試設計 criteria based human based 3 測試執行 4 測試評估 5 測試自動化 白盒測試 是通過程式的源 進行測試而不使用使用者介面。這種型別的測試需要從 句法發現內部 在演算法,溢位,路徑,條件等等中的缺點或...

軟體測試基礎課程學習筆記1 軟體測試簡介

一 軟體測試的定義 ieee提出的軟體工程標準術語,軟體測試定義如下 使用人工和自動手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的區別。軟體測試的目的不僅僅是為了發現錯誤。二 軟體測試觀念的變化 傳統測試 在開發的後期介入 現在測試 已經擴充套件到...