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