軟體測試基礎理論知識

2021-10-06 10:11:38 字數 4308 閱讀 3301

軟體測試:描述一種用來促進鑑定軟體的正確性、完整性、安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出之間的審核或者比較過程。軟體測試的經典定義是:在規定的條件下對程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。

1. 軟體測試的定義

軟體測試就是根據需求,採用不同的測試方法或測試工具,對軟體進行測試,盡可能早、盡可能多地發現軟體的缺陷,跟蹤並確保缺陷得到正確的解決,提高軟體的質量。

2. 軟體測試的目的

1)軟體測試為了發現程式存在的**或業務邏輯錯誤;

2)軟體測試為了檢驗產品是否符合使用者需求;

3)軟體測試為了提高使用者的體驗。

3. 什麼是軟體缺陷

1)功能:沒有實現的功能、實現了錯誤的功能、實現了多餘的功能、功能出現錯誤、沒有實現一些需求上沒有說明,但是預設要有的功能/隱性需求(密碼掩碼顯示);

2)相容性:在不同的瀏覽器、不同的pc端或移動端上,頁面顯示出現問題;

3)效能:達不到要求的效能指標,比如說:響應或載入的速度慢,無法達到所要求的併發量;

4. 軟體測試的策略

使用不同的測試用例設計方法,設計出合理的資料,在測試環境中,輸入到軟體當中,使軟體的狀態發生變化,觀察軟體的輸出結果,根據需求文件判斷是否是缺陷,如果是缺陷,則提交bug。

5. 測試用例常用的設計方法

1)場景法:運用場景對系統的功能點或業務流程進行描述,然後設計測試用例,從而提高了對系統主要功能和業務流程的測試效果。場景法適合測試業務流程清晰的系統或功能。

2)等價類:等價類劃分思想所有可能輸入的資料(無效資料和有效資料)合理地劃分成若干個等價類,在每個等價類中選取少量的資料來代替這一類其他資料的測試。

4)因果圖:如果程式的輸入條件和動作之間的邏輯關係明確,則可直接使用判定表驅動法。但是,如果輸入條件和動作關係不明確,則應當使用因果圖法

5)錯誤推測:基於經驗和直覺推測程式中所有可能存在的各種錯誤,從而有針對性的設計測試用例的方法。

6)判定表:判定表也稱為決策表,用於描述程式輸入條件組合與相應的程式處理動作之間的對應關係。等價類劃分和邊界值分析都沒有考慮被測程式輸入條件的組合情況,只是孤立地考慮各個輸入條件的測試資料取值問題,對輸入組合情況下產生可能產生的錯誤沒有進行充分地測試。判定表驅動法從多個輸入條件組合的角度來滿足測試的覆蓋率要求,是黑盒測試方法中最嚴格、最有邏輯的測試方法。

6. 軟體測試的原則

軟體測試是為了證明bug的存在,而不是為了證明bug的不存在

測試並不能保證軟體100%無bug,因為就算再嚴格的測試,也會有隱藏的bug在軟體當中

測試工作越早介入越好,因為bug發現得越早,修復的成本就越低

軟體測試應該追溯到使用者需求(沒需求文件則參考同型別的標桿產品)

8-2原則:80%的bug出現在20%的模組上。因為**的編寫是有邏輯關聯性的,如果乙個模組經常出現bug,那麼修復了當前的bug後,往往會有新的bug出現

7. 軟體測試什麼時候進行

因為bug越早發現,修復的成本越低。所以,測試工作的介入越早越好。建議在需求評審階段,甚至需求設計階段,測試人員就針對需求進行測試工作,下面舉兩個方面的例子:

需求設計的不合理,比如:ui隨著使用者心情變化而改變顏色

需求過於繁瑣,比如說:註冊需要賬號密碼和手機號驗證,這兩種只需要取乙個即可。

軟體測試的生命週期?測試流程?測試週期?專案經歷哪些階段?

測試人員在乙個專案中,一般經歷這些階段:需求評審 -> 熟悉需求,編寫測試用例 -> 測試用例的評審和修改 -> 軟體完成,執行測試用例,發現bug則提交bug,並跟蹤bug,對已修復的bug進行驗證測試(有關聯的功能也需要重新測試) -> 測試完畢後,提交測試報告

如果是迭代的新版本,那麼在執行測試用例之前,需要對舊功能進行回歸測試

8. 測試用例有哪些字段

id、測試模組、標題、優先順序、預置條件、測試資料、測試步驟、預期結果、實際結果(如果是介面方面的bug需要另外說明)

9. 測試用例的優先順序根據什麼劃分

按照功能模組的重要程度來劃分,系統的主打功能以及使用者使用最多的功能最優先

10. bug的必備描述字段

一般是按照測試工具上的預設字段進行填寫的。但這裡說明下必備字段:

標題、功能模組、測試環境、bug的詳細描述(復現步驟、預期結果、實際結果)、嚴重程度、優先順序、指派人員、附圖

標題要簡潔易懂,最好是做到開發看到標題就知道bug如何復現,甚至bug的產生原因

bug的描述需要客觀,其中包括bug的復現步驟、預期結果和實際結果。當然,如果知道bug的產生原因更好

ps.乙個bug單隻針對乙個bug進行說明

11. bug的嚴重等級的劃分

一般來說,不同的專案,bug的嚴重等級的劃分也不一樣,而且也沒硬性要求。但一般會分成4個級別,下面概括說下,實際工作中還是具體情況具體處理。

a級:一般是導致軟體不能正常工作的情況,比如說資料庫連線失敗,專案資料夾沒分配許可權、軟體崩潰等情況

b級:一般是軟體功能無法正常執行的情況,比如說登入無法登入,搜尋無法搜尋等情況

c級:一般是軟體功能出現異常的事情況,比如說輸入框搜尋結果不正確,錯誤異常沒有處理直接暴露**等情況,這類bug是最多的事

d級:一般是ui層面上的,比如說控制項的位置不正確,錯別字,提示語不對等情況

12. bug嚴重成都和優先順序有的區別

嚴重成都是在使用者使用系統的角度,是否影響到使用者使用系統

優先順序是在測試人員進行測試工作的角度去看,是否影響到測試人員後續的測試工作

一般來說,嚴重程度高的bug,優先順序也高。不過也有例外的,比如說乙個場景走到最後的步驟是儲存,現在無法儲存,嚴重程度高,優先順序低,因為它沒影響到後續的測試工作 ;也有嚴重程度很低,但是優先順序很高的bug,一般都是ui上面的bug,比如說錯別字,顯示有問題之類的

13. bug的管理流程/bug的生命週期

1)測試人員發現並確定bug;

2)測試人員在測試管理工具中,編寫並提交bug單給負責的開發人員;

3)開發人員解決後,指派給測試人員;

4)測試人員驗證該bug是否修復成功,如果修復成功則關閉bug。如果沒有修復成功,則啟用並說明原因,再指派回負責的開發人員;

5)在驗證bug是否修復的過程中,需要去測試被這個bug所影響到的功能,看是否出現修復了這個bug,卻導致其它新的bug出現的情況。

14. 如何減少開發階段的bug

測試人員在需求評審階段就介入,對需求進行測試工作。

在這一過程,測試人員應該思考功能點如何進行測試、明確功能點的需求、對不合理或多餘的需求提出改善建議等

15. 如何避免bug的產生

如果軟體還沒進入開發階段,那麼可以從需求設計或評審階段進行測試工作,對不合理的需求,能優化的需求提出建議,比如說:乙個表單有個時間字段,那麼這個欄位的值的輸入,可以設計成選擇項,而不是輸入框,這樣就能避免由於使用者輸入的不合理資料所產生的bug

如果軟體已經開發出來了,那麼bug的產生是無法避免的,軟體開發出來,bug就在那裡了。測試人員只能盡可能快,盡可能多地找出bug,從而修復它們

16. 什麼是白盒測試

白盒測試的測試物件是**

白盒測試一般使用測試樁函式來進行測試,代替被測函式所呼叫的那個函式。

白盒測試的覆蓋標準有:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋等(越後覆蓋率越高,耗時和難度越高)

17. 測試用例的定義

測試用例就是設計一種情況,按照這種情況,軟體是否能夠正常執行並且達到預期結果,如果不能正常執行或達不到預期結果,那可能就是乙個bug

18. 測試用例的作用

可以讓測試人員有條理,有順序地執行測試工作,避免盲目測試,並提高測試效率

用例的復用性,可以在新版本迭代後進行回歸測試

有利於工作的改進,測試完畢後,可以總結哪些用例測出的bug機率比較大,哪些用例需要改進

19. 如何進行測試用例評審

人員:測試組評審或者產品開發也參與進來

是否是按照軟體需求來進行編寫的?

對需求的覆蓋率是否到位?是否有需求遺漏了?

異常情況是否考慮全面?

用例的描述是否清晰?是否有冗餘的用例?

ps.再嚴格的評審,也會有遺漏或錯誤

基礎理論知識(五)

1.s,d,f,2f的作用分別是什麼?4分 s 通用佔位符 d 整數型別佔位符 f 小數佔位符 2f 保留兩位小數 2.檔案讀寫的三個基本步驟是什麼?3分 open test.txt w 開啟檔案時,如果檔案不存在會有什麼結果?1分 open test.txt r 開啟檔案時,如果檔案不存在會有什麼...

BGP基礎理論知識

bgp 邊界閘道器路由協議,管理as之間路由傳遞 距離向量型,分布式計算 採用tcp來傳遞路由資訊,埠號179,保障可靠性,但是這樣做了就會喪失鄰居自動發現的功能,只能單播建立鄰居,並且可以非直連建立鄰居關係。bgp設計是用來處理as之間的路由協議重點處理as之間的路由,as之內的路由不作為重點,所...

爬蟲 基礎理論知識(一)

4.所有的目標url全部請求完畢,爬蟲結束 搜尋引擎需要遵守robot協議 搜尋引擎的缺點 b.搜尋引擎搜尋的結果千篇一律,沒有辦法根據特定的使用者,獲取特定的資料 c.搜尋引擎搜尋結果99 並沒用 目的 實現不同的系統互聯之間的資料通訊,實現資料的傳輸 2.表示層 3.會話層 4.傳輸層 5.網路...