軟件測試概述
軟件的概念
軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它包括了程序、文檔、數(shù)據(jù)的完整集合。
軟件的分類
按照軟件功能分類:
????系統(tǒng)軟件:WIN7 IOS 安卓。
????支持軟件:VB VC 等開發(fā)工具。
????應用軟件:office,Photoshop,機票查詢等
按照技術特點分類:
? ? 業(yè)務管理軟件:MIS ERP DSS CRM
????科學計算軟件:Scilab 輔助計算。
????嵌入式軟件:WindowsCe VxWorks
????桌面軟件:QQ 輸入法
????個人計算機軟件:文字處理,電子報表,娛樂
????人工智能軟件:專家系統(tǒng),輔助決策和識別模式。
按照部署結構分類:
????單機版軟件、分布式軟件(CS/BS)
軟件測試的定義
使用人工或自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清預期結果與實際結果的差別。
軟件測試的目的
軟件測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤。
測試是為了證明程序有錯誤,而不是證明程序無錯誤
一個成功的測試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。
一個成功的測試是為了發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤測試。
通過分析錯誤,發(fā)現(xiàn)當前所采用的軟件過程缺陷,改進軟件過程。
通過被測試軟件業(yè)務的深入了解,對新產(chǎn)品的改進提出有意義的建議。
驗證產(chǎn)品符合質(zhì)量標準。
軟件測試工程師必備的基本素質(zhì)
正確高效的溝通能力
超強責任心
堅持原則
懂得尊重開發(fā)人員,不要背后評論
有較全面的技術知識
軟件測試工程師必備技能
測試專業(yè)技能
軟件編程技能
網(wǎng)絡、操作系統(tǒng)、中間件等知識
軟件缺陷的概念
在軟件工程整個生命周期中任何背離需求、無法正確完成用戶所需求的功能的問題,包括存在于組件、
設備或系統(tǒng)軟件中,因異常條件不支持而導致系統(tǒng)的失敗等都屬于缺陷。
缺陷產(chǎn)生的原因

掌握避免提交無效缺陷的的技巧
測試環(huán)境錯誤。測試過程中,測試工程師不仔細檢查測試環(huán)境,直接當成一個缺陷提交了。
發(fā)現(xiàn)一個錯誤不要馬上想著提交,而應該分析一下是否測試機器的配置環(huán)境是否有問題。
需求文檔沒有明確產(chǎn)品需求:需求不明確時,提交缺陷應做充分分析。
需求理解錯誤:擴充自己的知識面,尋找正確的測試方法。
缺陷重復。同一個缺陷A測試工程師提交后,B測試工程師又提交。
掌握重現(xiàn)缺陷的方法
檢查系統(tǒng)日志(log),看有沒有異常。
檢查數(shù)據(jù)庫配置、網(wǎng)絡、硬件配置是否與開發(fā)環(huán)境有差異。
狀態(tài)缺陷是否僅在特定軟件狀態(tài)中顯露。
檢查被測對象版本信息狀態(tài)缺陷是否只在特定的軟件狀態(tài)顯露。
借助其他工具,如Debug或者fiddler工具去分析。
軟件測試環(huán)境異于開發(fā)環(huán)境。
完整的缺陷報告
簡單描述
????用一句話簡單地描述清楚問題。
詳細描述
????描述問題的基本環(huán)境,包括操作系統(tǒng),硬件環(huán)境,網(wǎng)絡環(huán)境。
????使用最少步驟去重現(xiàn)測試工程師的操作步驟和使用的數(shù)據(jù)。
????測試工程師根據(jù)上述信息可以給出對問題的簡單分析。
????被測試軟件版本。
????狀態(tài)、嚴重級別、優(yōu)先級別。
????提交日期、提交人。
相關附件
????如果從圖形界面上反映出軟件的異常,最好采用拷屏的方式截圖。
????被測試軟件運行時的相關日志文件。
缺陷報告準則
方便閱讀
統(tǒng)一缺陷嚴重程度
一個缺陷一個報告
報告小缺陷
及時報告缺陷
引用他人報告時要小心
缺陷報告的用途
記錄缺陷、缺陷分類、缺陷跟蹤、缺陷統(tǒng)計。
缺陷報告分類
按缺陷所屬模塊分類。
按缺陷嚴重程度分類。
按優(yōu)先級分類。
按缺陷引入原因分類。
按缺陷復現(xiàn)率分類。
缺陷處理流程
正常的處理流程:
測試人員提交缺陷報告-->分配給相應的開發(fā)人員-->開發(fā)人員處理了缺陷-->測試人員驗證缺陷已經(jīng)修改-->測試人員關閉缺陷。
其他流程

軟件開發(fā)和測試流程
軟件開發(fā)模型
瀑布模型、原型模型、螺旋模型、敏捷開發(fā)模型。
瀑布模型生命周期:計劃、需求分析、設計、編碼、測試、運行維護。
軟件測試的生命周期:軟件測試計劃、測試用例設計和開發(fā),實施測試和提交缺陷、提交測試總結報告。
常用的開發(fā)模型:V模型、W模型、H模型、X模型。
軟件測試分類
按測試階段分:單元測試、集成測試、冒煙測試、系統(tǒng)測試、Alpha測試、Beta測試、驗收測試
按技術分:白盒測試、黑盒測試、灰盒測試、靜態(tài)測試、動態(tài)測試。
按測試實施組織分:開發(fā)商測試、外包測試。
外包測試又分為:現(xiàn)場測試、完全離岸外包、設立聯(lián)合研發(fā)中心
軟件測試的生命周期

軟件測試流程圖

WEB系統(tǒng)測試類型
功能測試、性能測試、安全性測試、兼容性測試、易用性測試、配置測試、文檔測試、壓力測試、負載測試。
編寫測試計劃和測試方案
項目管理
項目管理通常是指在項目活動中運用專門的知識、技能、工具和方法,使項目能夠?qū)崿F(xiàn)或超過項目干系人的需要和期望。
項目管理包括:范圍管理、人力資源管理、時間管理、風險管理、質(zhì)量管理、溝通管理、采購管理、成本管理。
軟件測試計劃包括的內(nèi)容
簡介、測試參考文檔和測試提交文檔、測試進度、測試資源、測試策略、問題嚴重程度及優(yōu)先級描述、測試風險
軟件測試計劃原則
避免測試項目只有一個軟件測試計劃
避免不分析就進行軟件階段日常安排
避免測試任務的安排超前于開發(fā)任務
避免有些系統(tǒng)測試類型無法按期進入測試
不正確的變更測試計劃
測試計劃中明確更新周期和暫停測試原則
測試計劃不是一成不變的
測試風險分析
軟件需求風險
人員風險
測試環(huán)境風險
測試工程師對產(chǎn)品業(yè)務不熟悉
軟件測試原則
盡早地進行軟件測試,并把軟件測試貫穿于整個軟件生命周期
所有測試的標準都是建立在用戶需求之上
測試應由第三方來測試
窮舉測試是不可能的,要遵循Good-enough原則
軟件測試計劃是做好軟件測試工作的前提
必須確定預期輸出結果
充分注意測試中的群集現(xiàn)象
測試用例是設計出來的,不是寫出來的
事先定義好產(chǎn)品的質(zhì)量標準
軟件測試的二八定理
正確認識軟件測試
軟件的質(zhì)量不是測出來的
軟件測試不一定比開發(fā)軟件容易
軟件測試需要開發(fā)人員和測試人員共同努力
關于處理缺陷
關注開發(fā)修復缺陷時寫的回歸測試范圍
修改缺陷要量力而行
關注被推遲修改的缺陷
如果決定據(jù)理力爭就一定要贏
定期進行缺陷交流
軟件測試結束標準
模塊測試用例執(zhí)行完畢
缺陷收斂趨勢符合質(zhì)量要求
缺陷修復率達到產(chǎn)品設計人員需求
測試覆蓋了全部軟件需求
按照客戶交付時間結束
達到預先的缺陷度量原則基于“質(zhì)量/成本/進度”的原則
值得借鑒的經(jīng)驗
測試人員關注失效,才能保證產(chǎn)品質(zhì)量
測試必須依據(jù)需求
重視界面測試
不能進行“疲勞”測試
軟件測試總結報告包括哪些內(nèi)容
概述
測試情況
測試環(huán)境
測試結果及缺陷分析
測試遺留問題報告
測試評價