關於軟體測試的一些基礎知識

2021-10-08 17:40:29 字數 4721 閱讀 3298

1.什麼是軟體測試?

軟體測試是指在規定的條件下對程式進行操作,發現程式錯誤,衡量軟體質量,驗證軟體功能是否滿足使用者需求。

2.什麼是bug

(如果有需求規格說明並且正確)程式與規格說明之間不匹配;

當沒有需求規格說明判斷標準以使用者為準:當程式沒有實現其終端使用者合理預期的功能要求時,就是軟體錯誤;**級的缺陷和功能級的缺陷都是bug。

3.對測試開發的理解

測試開發首先離不開測試,而軟體測試是指,在規定的條件下對程式進行操作,發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求和使用者需求進行評估的過程;現在不僅僅是通過手工測試來發現定位bug,也會通過編寫指令碼、測試工具來完成自動化測試;因此,對於測試開發人員來說,他除了保證產品質量之外,還要編寫指令碼以及開發測試工具。

4.軟體測試和研發中除錯的區別

目的不同:測試任務是發現程式中的缺陷;除錯的任務是定位並且解決程式中的問題;

參與角色不同:測試由測試人員和開發人員來執行,除錯由開發人員完成

執行的階段不同:測試貫穿整個軟體開發生命週期,除錯一般在開發階段

5.軟體測試人員應該具備的素質

思維模式:發散性思維,探求多項答案,逆向思維

善於懷疑,具備快速學習、溝通、文字、開發能力,具備責任感和壓力

6.需求概念

滿足使用者期望或正式規定文件(合同、標準、規範)所具有的條件和權能,包含使用者需求和軟體需求

7.軟體缺陷的概念

當且僅當規格說明是存在的並且正確,程式與規格說明之間的不匹配才是錯誤;當程式沒有實現 其終端使用者合理預期的功能要求;

8.測試用例的概念

測試用例是為了實施測試而被測試的系統提供的一組集合,包含:測試環境、操作步驟、測試資料、預期結果等要素;

9.軟體開發的生命週期

需求分析、計畫、設計、編碼、測試、執行維護

10.軟體測試的生命週期/軟體測試的流程

需求分析、測試計畫、測試設計測試開發、測試執行、測試評估

11.軟體測試的兩個模型

v模型:

特點:明確的標註了測試過程中存在的不同型別的測試,並且清楚的描述了這些測試階段和開發過程期間各階段的對應關係;

侷限性:僅僅把測試作為編碼之後的乙個階段,未在需求階段進入測試

w模型:

特點:測試的物件不僅是程式,需求、設計等同樣要測試,測試與開發是同步進行的,有利於盡早地全面發現問題;

侷限性:需求、設計、編碼等活動被視為序列的;測試和開發活動也保持著一種線性的前後關係,上一階段完全結束才可正式開始下一階段工作。無法支援敏捷開發模式。

12.描述軟體缺陷的要素

問題出現的版本,問題出現的環境,操作步驟,實際結果,預期結果

13.軟體缺陷的生命週期

new:新發現的bug,未經評審決定是否指派給開發人員進行修改

open:確認是bug,並且認為要修改,指派給開發人員

fixed:開發人員進行修改後標識成修改狀態,待測試人員進行回歸測試

rejected:如果認為不是bug,拒絕修改

delay:如果認為暫時不需要修改或不能修改,延後修改

closed:修改狀態的bug經測試人員的回歸測試驗證通過,關閉bug

reopen:如果驗證bug仍然存在,則重新開啟bug

14.因為乙個bug測試和開發人員發生衝突,測試人員如何處理

1.檢查自身是否對bug描述不清楚

2.站在使用者角度考慮問題,應該讓開發人員了解到bug對使用者可能造成的困擾,促使開發積極地、高質量地修改bug

3.bug定級有理有據

4.提高自身技術和業務水平,不要光提出問題,最好也提出解決方法

5.如果多輪溝通仍不接受,此時可以發起bug評審

15.具體的設計方法

1.等價類:思想:減少測試用例,解決輸入無窮的問題

概念:無窮的輸入分成n個類,然後從類裡邊提取乙個資料進行測試,只要這乙個資料測試通過,我們就認為它所在的這一類資料全部測試通過,這樣就可以用較少的測試用例達到盡量多的功能覆蓋。

使用場景:輸入無窮

2.邊界值:

使用場景:輸入和輸出的「邊界值」

取值規則:開區間、閉區間

【1,50】 取邊界值:0,1,50,51

【1,50) 取邊界值:0,1,49,50

邊界類是等價類這種方法的一種補充方法,成對出現

3.因果圖(只需掌握概念):

使用場景:輸入(原因)和輸出(結果)之間的關係。輸出依賴我們的輸入(多個)。

第一步:理出所有的輸入和輸出

第二步:再理出輸入和輸出之間的關係

第三步:畫因果圖

第四步:畫判定表(列數:輸入作為冪數 輸出:底數)

第五步:從判定表提取測試用例

4.正交排列表(只需掌握概念):

目的:減少測試用例條目

思想:正交表(抽樣)

兩條性質:1.所有列中的資料個數相同

2.任何兩列中額有序對數相同

5.場景設計法:業務流程(乙個業務流程中不一定是乙個場景),事件流。

該方法可以比較生動的描繪出事件觸發時的情景,使測試用例更容易理解和執行

難點:對需求很了解

161.按開發階段劃分:

單元測試:對軟體組成單元測試,又稱模組測試。(白盒測試)

階段:編碼後或編碼前

內容:模組介面、路徑測試、區域性資料結構測試、錯誤處理測試、邊界測試

測試物件:模組介面、**

測試方法:白盒測試

測試依據:詳細模組+文件

測試人員:白盒測試工程師或研發人員

整合測試:對模組組裝整合後測試

階段:單元測試後

內容:模組之間的介面、功能衝突、全域性資料結構、整合後的功能、單模組出現bug對其他 模組的影響

測試物件:模組之間

測試方法:白+黑

測試依據:單元測試模組+概要設計文件

測試人員:白盒測試工程師或研發人員

系統測試(冒煙、回歸):對功能、效能以及軟體所執行的軟硬體環境進行測試

階段:整合測試後

內容:功能、效能、介面、易用、可靠、相容、安全

測試物件:整個系統(軟+硬)

測試方法:黑盒

測試依據:需求規格說明文件

測試人員:黑盒測試工程師

系統測試順序:先冒煙後系統再回歸

冒煙:對核心主幹流程進行測試(例:登陸、註冊、)

作用:是確認軟體基本功能正常,可以進行後續的正式測試工作

回歸:對原有的功能和研發人員修改的bug來進行回歸

核心使用場景:只要**有變動就要進行回歸

驗收測試:

階段:系統測試後

內容:功能、效能、介面、易用、可靠、相容、安全

測試物件:整個系統(軟+硬)

測試方法:黑盒

測試依據:使用者需求+驗收文件

測試人員:使用者

系統測試順序:先冒煙後系統再回歸

測試驅動開發:研發人員依照測試用例寫**

2.按測試實施組織劃分:α測試、β測試

α、β區別:

1.測試人員不一樣:α 公司內部(除本專案的研發人員和測試人員)的人員

β 使用者

2.環境不一樣

α 研發環境或預發布環境

β 使用者環境

3.先後順序

α 在 β 之前

4.時間長短

α 比較短

β 時間長

3.按是否手工劃分

自動化測試:

優點:提高效率、不容易出錯

缺陷:沒有人的思想,死的

手工測試:

優點:自動化無法替代探索性測試、發散思維結果的測試。

缺點:執行效率慢,量大易錯。

4.按是否檢視**劃分:

黑盒測試:就是功能測試(不看**,只對軟體功能進行測試),對乙個軟體進行一系列操作,最後看結果是否是你想要的結果。

白盒測試:對**進行測試,對**裡的介面、業務邏輯、資料結構、事務處理、邊界、路徑覆蓋等等進行測試。(介面測試也是白盒測試的一種)

灰盒測試:介於白盒測試和黑盒測試之間的一種測試(白+黑,**+功能)

5.按是否執行劃分:

靜態測試:**靜態分析和文件測試都屬於靜態測試,:除了測原始碼還要測文件 (單元測試是靜態測試的一類)

動態測試:通過執行被測程式,檢查執行結果與預期結果的差異

16.黑盒測試和白盒測試

黑盒測試:就是功能測試(不看**,只對軟體功能進行測試),測試者只需知道什麼是系統應該做的事,只關心軟體的輸入資料和輸出資料,測試者選擇有效輸入和無效輸入來驗證是否正確的輸出。此測試方法可適合大部分的軟體測試,例如整合測試、系統測試和驗收測試。

黑盒測試主要設計方法:邊界值分析法,等價類劃分法、因果圖法,錯誤推測法、場景設計法等

白盒測試:對**進行測試,對**裡的介面、業務邏輯、資料結構、事務處理、邊界、路徑覆蓋等等進行測試。

主要測試方法:路徑覆蓋法,邏輯覆蓋法,迴圈覆蓋法,靜態結構分析法;

關於一些基礎知識的總結

1.關於輸入的一些用法 cin,cin.get,cin.getline cin很簡單,在使用的時候最多,可以輸入字元,數字,字串,但是碰到空格,回車,tab就停止了。因此對於想在陣列中使用空格回車的,cin很不方便。cin.get 可以返回乙個資料。例如 這樣可以a得到乙個資料,即使輸入大於1個在顯...

關於DNS的一些基礎知識

1 dns就是網域名稱伺服器,他的任務就是確定網域名稱的解析,比如a記錄mx記錄等等。2 任何網域名稱都至少有乙個dns,一般是2個。為什麼要2個以上呢?因為dns可以輪迴處理,第乙個解析失敗可以找第二個。這樣只要有乙個dns解析正常,就不會影響網域名稱的正常使用。3 如何確定網域名稱的dns?很簡...

關於語音的一些基礎知識

傅利葉變換 時域 時間域 橫座標是時間,縱座標是訊號在不同時刻的取值 即振幅,振幅會隨著時間變化 頻域 頻率域 橫座標是頻率,縱座標是在該頻率下訊號的幅度 只顯示峰值振幅 所以頻譜也叫振幅譜。傅利葉級數說 任何週期函式都可以看作不同振幅,不同相位的正弦波的疊加。正弦波不止指sin,亦包括cos 正弦...