軟體測試——理論基礎2
- 一、軟體測試的目的和原則
-
- 1.軟體測試的目的
- 2.軟體測試的原則
- 二、軟體測試的現狀與發展
-
- 1.現狀
- 2.發展
- 三、測試人員必備素質
- 四、軟體缺陷
-
- 1.缺陷的定義
- 2.産生缺陷的原因
- 3.記錄缺陷
- 4.缺陷分類
- 5.缺陷報告的處理流程
一、軟體測試的目的和原則
1.軟體測試的目的
是讓開發加班(狗頭)(劃掉)。
測試是程式的執行過程,測試的目的可以分為正向和逆向。
逆向:目的在于發現錯誤。
正向:目的在于確定産品完成了它所承諾或公布的功能,并且使用者可以通路到的功能都有明确的書面說明,確定産品滿足性能和效率的要求,確定産品是健壯的和适應使用者環境的。
2.軟體測試的原則
(1)軟體測試應盡早執行
(2)軟體測試應貫穿于整個軟體生命周期
并不是隻有在産品完成後,最終運作階段才可以進行測試。在最開始的需求階段設計階段直到最終的驗收維護階段,軟體測試都可以持續進行。
(3)軟體測試應追溯需求
需求即需求說明書,需求是用來限制産品的最終标準。依據需求來解決問題,如果軟體測試過程中發生争議,将需求說明書作為标準來評判。
(4)測試應由第三方來構造
設計程式的程式員由于本身視角很難發現自己程式的bug,引入第三方能夠從更加客觀的角度評價程式。
(5)遵循Good-enough原則,窮舉測試不可能
Good-enough原則:即不要做過多的測試,也不要做不充分的測試。大部分現實情況是由于項目工期緊,而不能覆寫所有内容進行全面測試,是以僅測試核心功能。
(6)必須确定預期輸出(或結果)
設計測試用例(包括其他測試内容),必須先給出預期測試結果,
作為檢驗測試結果的基準。
(7)必須徹底檢查每個測試結果
重複的缺陷描述可能屬于不同的子產品,要分别處理。
相似的缺陷報告很容易被作為重複的缺陷報告被剔除。
一個缺陷被兩個人送出後,可能都認為是對方跟蹤,結果誰都沒有跟蹤。
(8)充分注意測試中的群集現象
缺陷的二八定律,即百分之八十的bug出現在百分之二十的程式中,測試後程式中殘存的錯誤數目與該程式中已發現的錯誤數目很可能成正比。
(9)嚴格執行測試計劃,排除測試的随意性
(10)注意合法合理的輸入,也要注意非法的非預期的輸入
例:軟體開發了一款防彈背心,測試朝腿上開了一槍,開發把腿擋上了,使用者把防彈背心包在垃圾桶上,然後對自己腦袋開了一槍。(狗頭)
(11)檢查程式是否做了不該做的
不被發現的夾帶私貨就是沒有夾帶私貨。(狗頭)
(12)測試應從“小規模”開始,逐漸轉向“大規模”
(13)殺蟲劑悖論
反複使用同樣的測試會使軟體具有抵抗力。
(14)關注缺陷的修複
修複後保持關注進行複測。
(15)測試活動依賴于測試背景
二、軟體測試的現狀與發展
1.現狀
處于發展階段,目前還是以手工測試為主、國内外軟體企業越來越重視軟體測試。
2.發展
包括兩方面内容:發展原因和發展曆程。
(1)發展原因
(2)發展曆程
三、測試人員必備素質
測試人員必備素質:責任心、溝通能力、團隊合作精神、耐心細心信心、時刻保持懷疑的态度,并且有缺陷預防意識、具備一定的程式設計經驗
四、軟體缺陷
1.缺陷的定義
不符合設計要求,不滿足使用者确定需求。
2.産生缺陷的原因
3.記錄缺陷
有效記錄缺陷的關鍵在于保證重制缺陷,分析故障(使用最少步驟複現故障),包含所有重制缺陷的必要步驟,友善閱讀,盡量簡單(一個缺陷一個報告),注意自己的語氣等。
注意:報告不能重制的缺陷、不能誇大缺陷、小缺陷(甚至建議)也要報告、及時報告缺陷、引用别人的報告時,最好不要修改,可以添加批注之類的補充評論。
4.缺陷分類
(1)按缺陷的嚴重程度分類
(2)按修複缺陷的優先級分類
(3)按缺陷所處狀态
可分為待确認的、新送出的、已配置設定的、問題未解決的、待返測的、已關閉的。
(4)按處理意見分類
可分為已解決的、不是問題、無法修複、延遲解決、重複bug、無法複現等。
5.缺陷報告的處理流程
注意: 注意缺陷報告的處理成本,修改缺陷要量力而行,關注被推遲修改的缺陷,如果決定據理力争就一定要赢。