一、測試定義與目的
定義:
1983年IEEE提出的軟件工程術語中給軟件測試下的定義是:“使用人工或自動的手段來運行或測定某個軟件系統的過程,其目的是為了檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。"這個定義明確指出:軟件測試的目的是為了檢驗軟件系統是否滿足需求。
目的:
獲取系統在可接受風險范圍內可用的信心;嘗試在非正常情況和條件下的功能和特性;保證一個工作產品是完整的并且可用或者可被集成
發現缺陷、錯誤和系統不足;定義系統的能力和局限性;提供組件、工作產品和系統的質量信息
澄清系統的規格和性能;提供預防或減少可能制造的錯誤的信息;在過程中盡 早檢測錯誤;確認問題和風險,并且提前確認解決這些問題和風險途徑
二、測試原則
測試人員應該盡早介入,越早發現缺陷,修復缺陷的成本越低
缺陷具有集群性,測試過程中80%的錯誤分布在20%的模塊上
站在用戶的角度去體驗產品,所有的測試都應該追溯到用戶的需求
設計測試用例時,要考慮合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下要制造極端狀態和意外狀態,100%的覆蓋需求
完全測試是不可能的,測試需終止,運用風險分析和不同系統功能的測試優先級,里確定測試的關注點
程序員避免檢查自己的程序,除單元測試外。開發對自己的作品在思維上具有局限性;交給第三方或專業測試,利用各種測試技術、測試經驗和對Bug的敏感性,提高軟件質量
制定嚴格的測試計劃,并妥善保存測試過程中的所有文檔
對錯誤結果要進行一個確認過程
三、測試分類
按測試階段劃分
單元測試、集成測試、系統測試、驗收測試(正式驗收測試,Alpha測試、Beta測試)
按測試技術劃分
黑盒測試、白盒測試、灰盒測試
按測試手段劃分
手工測試、自動化測試
被測對象是否運行劃分
動態測試、靜態測試(文檔檢查、代碼走查、界面檢查)
按測試內容劃分
功能測試、安全測試、界面測試、兼容性測試、易用性測試、性能測試、
壓力測試、負載測試、恢復測試
其他測試
冒煙測試、回歸測試、探索性測試(測試思維)
四、軟件的生命周期
定義:
軟件的產生直到報廢或停止使用的過程
階段:
一、問題定義與規劃
主要確認軟件開發的目的及可行性,制定開發計劃。
二、需求分析
在確定軟件開發可行的情況下,對軟件的需要實現的各項功能進行詳細分析,明確客戶的需求,輸出需求規格說明書(原型圖)。
三、軟件設計
把需求分析的結果轉換為軟件結構和數據結構,形成系統架構。
概要設計:主要是架構的實現,指搭建架構、表述各模塊功能、模塊接口連接和數據的實現等。
詳細設計:對概要設計的各個功能模塊進行深入分析,對各個模塊組合進行分析等。
這一階段要求達到偽代碼級別,已經把程序的具體實現的功能,現象等描述出來,其中包括數據庫的設計說明。
四、軟件編碼
按照設計好的詳細模塊功能表,編程人員編寫出計算機可運行的程序代碼。
五、軟件測試
在軟件設計完成后就要經過嚴密的測試,以發現軟件在整個過程中存在的問題并加以糾正。測試方法主要有白盒測試和黑盒測試。
單元測試:主要測試程序代碼,為的是保證各個單元模塊被正確的編譯,比如有具體到模塊的測試,也有具體到類、函數、方法的測試等,一般由開發人員完成
集成測試:單元測試后,將各個單元組成完成的體系,測試單元之間的接口是否正確,數據能否正常傳遞。
系統測試:把軟件系統搭建起來,按照軟件規格說明書中所要求,測試軟件的性能功能等是否和用戶需求相符合,在系統中運行是否存在漏洞等。—— 根據測試用例完整的測試
回歸測試:主要是用戶在拿到軟件的時候,在使用現場根據前面所提到的需求以及規格說明書來做相應的測試,以確定軟件達到預期效果。—— 用戶對軟件進行驗收
六、運行維護
軟件的維護是軟件生命周期中持續時間最長的階段。在軟件開發完成并投入使用后,由于多方面的原因,軟件不能繼續適應客戶的需求。要延續軟件的使用壽命,就必須對軟件進行維護。
軟件的維護主要包括糾錯性維護和改進性維護兩個方面。
五、軟件測試模型
瀑布模型
瀑布模型(Waterfall Model) 是一個項目開發架構,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生循環反饋,因此,如果有信息未被覆蓋或者發現了問題,那么最好 “返回”上一個階段并進行適當的修改,項目開發進程從一個階段“流動”到下一個階段,這也是瀑布模型名稱的由來
V模型
RAD(Rap Application Development,快速應用開發)模型是軟件開發過程中的一個重要模型,由于其模型構圖形似字母V,所以又稱軟件測試的V模型。
優點:
1. 明確地標注了測試過程中存在的不同測試類型;
2. 清楚的描述了這些測試階段和開發過程期間個階段的對應關系;
缺點:
1. 不適合需求變化頻繁的程序;
2. 發現錯誤時間較晚;
3. 僅僅把測試作為在編碼之后的一個階段,未在需求階段就進入測試;
W模型
目的:為解決V模型的缺陷而產生,增加了軟件個開發階段中應同步進行的驗證的確認活動
特點:測試的對象不僅是程序,需求、設計等同樣要測試,開發與測試同步
優點:可以盡早的發現錯誤,降低風險,減少成本,提高質量
缺點:
1. 不能適應用戶需求變化頻繁的項目
2. 需求、設計、編碼等活動被視為串型的 3. 測試和開發活動也保持這一種線性的前后關系,上一階段完全結束,才可以正式開始下一個階段工作 4. 無法支持敏捷開發模式
5. 對于當前軟件開發復雜多變的情況,W模型并不能解除測試管理面臨的困惑