軟體測試有哪些必會的設計方法和技術知識點?

我們都知道,IT行業是一個發展很快的領域,需要不斷的精進自己的技能,才能在這條路上走的更遠更好,本期,藉著年末的機會,也給大家總結一下如今測試行業都有哪些必會的方法和技術知識點,主要針對新手,小夥伴們也可以根據文章的內容查漏補缺。

 一、設計方法分類 

黑盒測試

黑盒測試是進行軟體配置項測試、系統測試、驗收測試的主要技術手段。

我們可以這樣理解,黑盒測試把產品軟體看作是一個黑盒子,只需要關注入口和出口,即我們測試過程中,不需要去理解軟體的具體構成和原理,只是往裡面輸入了什麼,又出來了什麼結果就可以了,和使用者的視覺是一樣的。

黑盒測試注重於測試軟體的功能性需求,主要有三種測試技術,分別是等價類劃分、邊界值分析和決策表。但很多時候,僅僅進行黑盒測試容易產生一定的風險性,因此黑盒測試大多數用於輔助白盒測試發現其他型別的錯誤。

白盒測試

白盒測試是一種以理解軟體內部結構和程式執行方式為基礎的軟體測試技術。通常需要跟蹤一個輸入在程式中經過了哪些函式的處理,這些處理方式是否正確。

白盒指的是盒子是可視的,你清楚盒子內部的東西以及裡面是如何運作的。測試者必須檢查程式的內部結構,從檢查程式的邏輯著手,得出測試資料。

白盒測試常用的測試方法有兩大類,靜態測試方法和動態測試方法。白盒測試法的覆蓋標準有邏輯覆蓋、迴圈覆蓋和基本路徑測試,同時包含六種覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋,發現錯誤的能力呈由弱至強的變化。

灰盒測試

灰盒測試是介於黑盒和白盒之間的一種綜合測試方法,它綜合了黑盒與白盒方法的優勢,並有效地避開了兩者各自的缺陷。

灰盒方法透過涵蓋被測軟體的所有層面,以增加技術的覆蓋範圍。如果說黑盒測試人員需要確保介面和功能方面的正常;白盒測試人員透過深入研究軟體的內部結構,以修復原始碼級別的錯誤,那麼灰盒測試則是以非干擾的方式(non-intrusive)同時處理兩方面的測試。

灰盒測試非常適合於整合測試,包括:缺乏原始碼和二進位制檔案的Web應用,以及某些業務領域的需求規範性測試。

對這三種設計方法,不同的方法有著不同的適用場景和想實現目標,應當合理使用來確保軟體滿足各項最終的要求。

二、手動測試和自動化測試分類 

手動測試

手動測試是手動測試軟體以查詢缺陷的過程。測試人員應該具有終端使用者的觀點,並確保所有功能都按需求文件中所述執行,期間無需使用任何的自動化工具,其中手動測試的型別包括:黑盒測試、白盒測試、單元測試、系統測試、整合測試、驗收測試。

自動化測試

自動化測試是使用自動化工具來發現缺陷的軟體測試過程。在此過程中,自動化工具會自動執行測試指令碼並生成結果。目前比較流行的自動化工具有:HP QTP(專業快速測試)/ UFT(統一功能測試)、Selenium 、LoadRunner、IBM Rational Functional Tester、WinRunner。

我們通常在以下領域會進行自動化測試:迴歸測試、負載測試、效能測試。

有很多人認為手動測試是很簡單的一件事,而自動化測試則很難,其實這兩者方式都需要集合使用的,互相都不可代替,自動化測試是對手動測試的一種補充,主要應用在迴歸測試,自動化測試的優勢是可以藉助計算機的力量,重複的進行測試,可以用於大批次的比較,但對於資料的正確性、業務邏輯等的滿意程度,還是需要手動測試來做的。

所有一個優秀的軟體測試工程師,需要能夠掌握兩種測試方式,有機結合,才能使工作效率更高。

三、按測試目的分類

1、功能測試

功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到使用者要求的功能。功能測試經常會也被稱為黑盒測試,只需要考慮測試各個功能是否能夠實現。

通常,我們把功能測試分成如下幾個步驟:

1。 制定測試計劃;

2。 設計測試用例:包含測試什麼東西,在什麼場景什麼環境下測試;

3。 執行測試及產生測試報告;

功能測試是比較測試人員比較基礎的技能點,之後需要往自動化測試、安全測試等方向耕深。

軟體測試有哪些必會的設計方法和技術知識點?

2、非功能性測試

1)效能測試

效能測試是透過自動化的測試工具模擬多種正常,峰值以及異常負載條件來對系統的各項效能指標進行測試。需要測試人員會對效能測試相關的概念有所瞭解,明白什麼是效能測試,以及測試的目的是什麼。

同時需要會使用測試工具,如學習使用工具JMeter或者LoadRunner,進行效能測試,效能測試最難的其實是調優,這個就需要對程式碼以及資料庫有更深的認知之後才可以完成。

2)安全性測試

全性測試是檢查系統對非法侵入的防範能力。主要包括使用者認證、系統網路安全和資料庫安全方面的測試。安全測試期間,測試人員假扮非法入侵者,採用各種辦法試圖突破防線。

3)壓力測試

一般來說,壓力測試的目的是要透過模擬比預期要大的工作負載來讓只在峰值條件下才出現的缺陷曝光。壓力測試主要是為了測試硬體系統是否達到需求文件設計的效能目標。

4)負載測試

負載測試是指在高於平常水泡泡的負載下,系統或者應用軟體會發生什麼情況。

5) 平均無故障時間(MTBF)測試

MTBF測試是測量系統或應用軟體在出錯或當機前的平均執行時間。

6) 容量測試

容量測試一般是用來執行伺服器或服務測試。目的是要確定系統最大承受量

7) 重複性測試

重複性測試是為了確定重複某一程式或場景的效果而採取的一項簡單而“粗暴”(brute force)的技術。

8) 相容性測試

相容性測試是指測試軟體在特定的硬體平臺上、不同的應用軟體之間、不同的操縱系統平臺上、不同的網路等環境中是否能夠很友好的執行的測試。

9)輔助功能測試

輔助功能測試保證軟體公司開發的軟體能被傷殘人使用。

10)本地化測試

本地化就是將軟體版本語言進行更改,本地化測試的物件是軟體的本地化版本。

11)配置測試

配置測試就是測試軟體是否和系統的其他與之互動的元素之間相容,驗證被測軟體在不同的軟體和硬體配置中的執行情況

12)可用性測試

可用性測試是在產品或產品原型階段實施的透過觀察或訪談或二者相結合的方法,發現產品或產品原型存在的可用性問題。

四、按階段分類 

1、單元測試

在單元測試中,在開發階段將測試軟體應用程式的各個元件。單元測試通常由開發人員而不是測試人員完成。測試一段程式碼形式的功能以驗證準確性。簡單來說單元測試就是確認單個模組能否正常工作

2、整合測試

從測試類別來說,整合測試的主要測試內容包括功能性、可靠性、易用性、效率、可維護性和可移植性等,整合測試主要是確認多個模組能否協同工作。

3、系統測試

將整個軟體系統看做一個整體進行測試,包括對功能、效能,以及軟體所執行的軟硬體環境進行測試。

4、驗收測試

正式驗收測試是一項管理嚴格的過程,它通常是系統測試的延續。驗收測試的常用策略有三種,它們分別是:正式驗收、非正式驗收或 Alpha測試、Beta 測試。

五、其他測試型別 

1、迴歸測試

迴歸測試(Regression testing) 指在發生修改之後重新測試先前的測試以保證修改的正確性。

2、冒煙測試

冒煙測試是指開發人員修復了先前測試中發現的bug後,想知道這個bug的修復是否會影響到其他功能模組,需要做的就是冒煙測試。需要保證覆蓋待測產品的絕大部分功能;且被修復了的bug所屬的功能和系統其他骨幹功能都是可用的。

3、隨機測試

隨機測試是沒有書面測試用例、記錄期望結果、檢查列表、指令碼或指令的測試。主要是根據測試者的經驗對軟體進行功能和效能抽查。

寫在最後 

對於新手而言,掌握基礎技巧是目前最重要的事情,因此把握好學習節奏,一步一步來,就離成為一個優秀的軟體測試工程師不遠啦~