今天是學習《軟體測試》的第一天,由于剛開始的綜述比較簡單,就一次性把前三章看完了。主要包括軟測背景/軟體開發過程和軟測實質三部分内容。
1.軟體測試背景
- 通過幾個比較有名的軟體錯誤案例,如Intel奔騰浮點除法缺陷等,引出“軟體缺陷”的概念。
- 在給出解釋“軟體缺陷”的概念前,先說明“産品說明書”的概念,即對開發的産品進行定義,給出産品細節、如何做、做什麼、不能做什麼。
-
軟體缺陷的官方概念:
a.軟體未實作産品說明書要求的功能;
b.軟體出現産品說明書中指明不應該出現的錯誤;
c.軟體實作了産品說明書中未提及的功能;
d.軟體未實作産品說明書未明确提及但應該實作的功能;
e.軟體難以了解、不易操作、運作緩慢或使用者認為不好。
- 軟體出現缺陷的第一來源是産品說明書,第二來源是設計。
- 軟體修複成本:從開始到計劃/設計/程式設計/測試,都會發現産品缺陷,但修複缺陷的成本确實随着時間的推移呈指數級增長的。
- 軟體測試人員的目标:盡可能早地發現軟體缺陷,并確定其得以修複。
2.軟體開發過程
-
産品的組成:
使用者需求、産品說明書軟體設計文檔(包括結構文檔【軟體整體設計】、資料流圖、狀态轉換圖、流程圖【描述程式邏輯】、代碼注釋)測試文檔(測試計劃、測試用例、缺陷報告、測試工具和自動測試、度量統計和總結)
-
産品開發的生命周期模式
1、大爆炸模式
描述:計劃、進度安排和正規開發過程幾乎沒有,是以精力都放在開發軟體和代碼編寫上。
優點:簡單。
缺點:沒有測試工作;若有也是在産品釋出或傳遞前進行,測試的深入會發現缺陷很多,影響傳遞工作。
2、邊改邊寫模式
描述:隻進行粗略的設想和簡單的設計,就開始進入來回編寫、測試和修複缺陷的過程。适合快速制作且用完就扔的項目。
3、瀑布模式
描述:從最初構思到最終産品要經過一系列步驟。每個步驟結束時都要組織審查,并決定是否能夠進入下一步。
強調三點:強調産品定義;強調各步驟是獨立的、不交叉的;無法回溯。
優點:每一步都有完整的說明,後期測試得以制作精确的計劃和進度。
缺點:測試在最後,根本性問題未及時發現,知道準備釋出時才發現,提高了修複成本。
3、螺旋模式
描述:一開始不必詳細定義是以細節。從小開始,定義重要功能,努力實作這些功能,并接受使用者回報,然後進入下一階段。重複上述過程,直至得到最終産品。
每一次循環的步驟:确定目标、可選方案和限制條件。明确并化解風險。評估可選方案。目前階段開發和測試工作。計劃下一階段工作/确定下一階段的工作方法。
優點:發現問題早、成本低。測試人員可以參與設計工作,盡早地影響産品産,對産品的了解也更深刻。
測試的實質
1.測試原則:
- 完全測試是不可能的
- 測試有風險
- 測試無法顯示潛伏的軟體
- 缺陷發現的缺陷越多,說明軟體的缺陷越多
- 殺蟲劑怪事,即軟體測試越多,對測試的免疫力越強
- 并不是所有的缺陷都需要修複(無需修複原因:時間不夠;不算真正的缺陷;修複風險太大;不值得修複)
- 什麼時候交缺陷難以說清
2.需要注意的幾個測試術語:
- 準确和精确
- 确認(確定産品符合産品說明書)和驗證(保證産品滿足使用者需求)
- 品質和可靠性(隻是品質的一個方面)
- 測試(盡早找出缺陷并確定修複)和品質保證(主要職責是建立和執行改進軟體開發過程并防止軟體缺陷發生的标準和方法)