軟體測試的常識

2021-05-11 04:19:14 字數 2943 閱讀 6940

1.軟體測試基本概念

1.1 軟體分類

1) 按功能:系統軟體、應用軟體

2) 按技術架構:單機版軟體、c/s結構軟體、b/s結構軟體

3) 按功能:產品軟體、專案軟體

4) 按開發規模:小型軟體、中型軟體、大型軟體

1.2 測試用例(tc)

測試用例的基本要素:測試環境、操作步驟、輸入資料、期望結果

測試模板:excel模板(適合寫功能用例)、word模板(適合寫效能用例)

2. 軟體測試分類

2.1 黑盒測試和白盒測試

黑盒測試(black-box testing):把被測軟體看作乙個黑盒子,只關心軟體的輸入資料和輸出結果。它包括功能測試和效能測試。

白盒測試(white-box testing):研究軟體的原始碼和程式結構。需要一定編碼能力,並會使用一些測試工具。

2.2 靜態測試和動態測試

靜態測試(static testing):不實際執行被測軟體,只是靜態地檢查程式**、介面或文件中可能存在的錯誤。

動態測試(dynamic testing):實際執行被測軟體,輸入相應的測試資料,檢查實際輸出結果和預期結果是否相符。

2.3 單元測試、整合測試、系統測試和驗收測試

它們是軟體測試中的重要概念,是按照軟體測試的階段來劃分的。

單元測試(unit testing):指對軟體中的最小可測試單元進行檢查和認證。通常在程式設計師編碼之後,**已通過編譯後進行。單元測試一般由白拿測試工程師或開發人員來測試。依據是源程式本身和專案的《詳細設計》文件。標準是語句的覆蓋率達到100%,分支的覆蓋率達到85%。

整合測試(integration testing):單元測試的下乙個階段,是指將通過測試的單元模組組裝成系統或子系統,再進行測試,重點測試不同模組的介面部分。整合測試就是用來檢查各個單元模組結合到一起能否協同配合,正常執行。一般由白拿測試工程師或開發人員來測試。整合測試的依據是單元測試的模組以及《概要設計》文件。

系統測試(system testing):將整個軟體系統看做乙個整體進行測試,包括對功能、效能以及軟體所執行的軟硬體環境進行測試。主要由黑盒測試工程師在整個系統整合完畢後進行測試,前期主要測試系統的功能是否滿足需求,後期主要測試系統執行的效能是否滿足需求,以及系統在不同的軟硬體環境中的相容性等。系統測試的主要依據是《系統需求規格說明書》文件。

驗收測試(acceptance testing):

指的是在系統測試的後期,以使用者測試為主,或有測試人員等質量保障人員共同參與的測試,它也是軟體正式交給使用者使用的最後一道工序。驗收測試又分為α測試和β測試。其中α測試指的是由使用者、測試人員、開發人員等共同參與的內部測試,而測試指的是內測後的公測,即完全交給終端使用者測試。測試的主要依據是《系統需求規格說明書》和驗收標準。

2.4 功能測試和效能測試

功能測試(function testing):檢查實際軟體的功能是否符合使用者需求。細分為多種:邏輯功能測試、介面測試、易用性測試、安裝測試、相容性測試等。

效能測試(performance testing):一般要用到自動化測試工具。包括一般效能測試、穩定性測試、負載測試和壓力測試。一般效能測試指的是讓被測試系統在正常的軟硬體環境下執行的測試。穩定性測試,也叫可靠性測試,指連續執行被測系統,檢查系統執行時的穩定程式。負載測試指讓被測系統在其能忍受的壓力的極限範圍內連續執行,為測試系統的穩定性。與穩定性測試的區別在於負載測試需要給被測系統施加其剛好能承受的壓力,為我們測試系統在臨界狀態下執行是否穩定提供了一種方法。壓力測試指持續不斷地給被測系統增加壓力,直到將被測系統壓垮為止,用來測試系統所能承受的最大壓力。

3. 黑盒測試技術

主要包括等價類技術、邊界值技術、因果圖技術、業務流程圖技術

4. 白盒測試技術

根據是否執行源**,白盒測試又可分為:靜態測試和動態技術。實用的動態測試技術包括:邊界值、邏輯驅動覆蓋、路徑圖法等。

4.1 邊界值:資料型別的邊界值、陣列的邊界值、分支判斷語句的邊界值

(1) 資料型別的邊界值:32760 + 8 = 32768 嗎?

#include

<

stdio.h

>

main() 

(2) 陣列的邊界值:陣列上下越界問題

#include

<

stdio.h

>

main() 

4.2 邏輯驅動覆蓋:是一種傳統的白盒測試技術,專門用來測試程式中的分支結構和迴圈結構。分支結構的測試又包括語句覆蓋、分支覆蓋、條件覆蓋、分支-條件覆蓋、條件組合覆蓋及路徑覆蓋等方法。

(1) 語句覆蓋測試:指設計若干測試用例,使得程式中的每條語句至少執行一次。雖然能夠執行所有的語句,但不能覆蓋所有的分支,是最弱的邏輯驅動覆蓋。

(2) 分支覆蓋測試:也叫判定覆蓋測試,是指設計若干測試用例,使得程式中每個分支的取真分支和取假分支至少各執行一次。

(3) 條件覆蓋測試:條件覆蓋是選取足夠多的測試資料,使被測試程式中不僅每條語句至少執行一次,而且每個判定表示式中的每個條件都取到各種可能的結果。

(4) 分支-條件覆蓋測試:選取足夠多的測試資料,使得程式中每個分支的取真分支和取假分支至少各執行一次,而且每個判定表示式中的每個條件都取到各種可能的結果。

(5) 條件組合覆蓋測試:選取足夠多的測試資料,使得判定表示式中條件的各種可能組合都至少出現一次。

(6) 路徑覆蓋測試:選取足夠多的測試資料,使得程式的每條可能路徑都至少執行一次。

tag標籤:

軟體測試

, 黑盒測試

, 白盒測試

, 單元測試

, 整合測試

, 系統測試

軟體測試常識

軟體開發和使用的歷史已經留給了我們很多由於軟體缺陷而導致的巨大財力 物力損失的經驗教訓。這些經驗教訓迫使我們這些測試工程師們必須採取強有力的檢測措施來檢測未發現的隱藏的軟體缺陷。生產軟體的最終目的是為了滿足客戶需求,我們以客戶需求作為評判軟體質量的標準,認為軟體缺陷 software bug 的具體...

軟體測試常識

軟體開發和使用的歷史已經留給了我們很多由於軟體缺陷而導致的巨大財力 物力損失的經驗教訓。這些經驗教訓迫使我們這些測試工程師們必須採取強有力的檢測措施來檢測未發現的隱藏的軟體缺陷。生產軟體的最終目的是為了滿足客戶需求,我們以客戶需求作為評判軟體質量的標準,認為軟體缺陷 software bug 的具體...

軟體測試常識

墮落佛發表於 2006年06月25日 08 33 00 href http blog.csdn.net laorer services pingback.aspx rel pingback 軟體測試的常識 軟體開發和使用的歷史已經留給了我們很多由於軟體缺陷而導致的巨大財力 物力損失的經驗教訓。這些經...