軟件測試基本概念
1、軟件=程序+文檔,軟件測試=程序測試+文檔測試。
“程序”是指能夠實現某種功能的指令的集合,“文檔”是指軟件在開發、使用和維護過程中產生的圖文集合。;
2、軟件的分類
按功能分:系統軟件、應用軟件
按技術架構分:單機版軟件、C/S結構軟件(C是指客戶端, S指服務器端)、B/S結構軟件(B是指瀏覽器)
按照用戶划分:產品軟件、項目軟件
按開發規模划分:小型、中型、大型
3、BUG的定義:軟件的BUG指的是軟件中(包括程序和文檔)不符合用戶需求的問題。常見的軟件BUG分三種類型:完全沒有實現的功能;基本實現了用戶需求的功能;實現了用戶不需要的功能。
4、測試環境=軟件+網絡+硬件。搭建環境:真實、干凈、無毒、獨立
5、軟件環境的分類:軟件開發環境\軟件生產運行環境
6、測試用例:指在測試執行之前設計的一套詳細的測試方案,包括測試環境、測試步驟、測試數據和與其結果!測試用例=輸入+輸出+測試環境。測試用例有兩個模板,word和excel,前者適合性能測試,后者適合功能測試。
軟件測試分類
1、黑盒測試:指的是把被測的軟件看作是一個黑盒子,我們不去關心盒子里面的結構是什么樣子的,只關心軟件的輸入數據和輸出結果
白盒測試:指的是把盒子蓋打開,去研究里面的源代碼和程序結構。
2、靜態測試:是指不實際運行被測軟件,而只是靜態的檢查程序代碼、界面或文檔中可能存在的錯誤的過程。
動態測試:是指實際運行被測程序,輸入相應的測試數據,檢查實際輸出結果和預期結果是否相符的過程,所以我們判斷一個測試屬於動態測試還是靜態測試,唯一的標准就是看是否運行程序。
注:同一個測試,既有可能屬於黑盒測試,也有可能屬於動態測試;既有可能屬於靜態測試,也有可能屬於白盒測試。他們之間也有可能交叉。
3、單元測試:編譯運行程序——靜態測試——動態測試
集成測試:是單元測試的下一個階段,是指將通過測試的單元模塊組裝成系統或子系統,再進行測試,重點測試不同模塊的接口部分。
系統測試:指的是將整個軟件系統看作1個整體進行測試,包括對功能、性能,以及軟件所運行的軟硬件環境進行測試。
驗收測試:指的是在系統測試的后期,以用戶測試為主,或有測試人員等質量保障人員共同參與的測試,它也是軟件正式交給用戶使用的最后一道工序.
驗收測試又分為α測試和β測試,其實α測試指的是由用戶、測試人員、開發人員等共同參與的內部測試,而β測試指的是內側后的公測,即完全交給最終用戶測試。
4、功能測試:是黑盒測試的一方面,它檢查實際軟件的功能是否符合用戶的需求。功能測試又可以細分為很多種:邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試等。
性能測試:軟件的性能包括很多方面,主要有時間性能和空間性能兩種。時間性能:主要指軟件的一個具體事務的響應時間。空間性能:主要指軟件運行時所消耗的系統資源。
軟件性能測試分為一般性能測試、穩定性測試、負載測試和壓力測試。一般性能測試指的是讓被測系統在正常的軟硬件環境下運行,不向其施加任何壓力的性能測試。穩定性測試,也叫可靠性測試,是指連續運行內測系統,檢查系統運行時的穩定程度。我們通常用MTBF(錯誤發生的平均時間間隔)來衡量系統的穩定性,越大穩定性越強。負載測試是性能測試的一種,通常是指讓被測系統在其能忍受的極限范圍之內連續運行,來測試系統的穩定性。壓力測試是性能測試的一種,通常是指連續不斷地給被測系統增加壓力,直到將被測系統壓垮為止,用來測試系統所能承受的最大壓力。
假設一個人很輕松的就能背一袋米,背兩袋米很吃力,最多就能背三袋米,那么:
一般性能測試:我就讓他背一袋米
穩定性測試:我讓他背一袋米,但是讓他去操場上跑圈,看多久累倒。
負載測試:我讓他背兩袋米去操場上跑圈,看多久累倒。
壓力測試:我讓他背兩袋米,三袋米,四袋米......發現他最多就能背三袋米。
5、回歸測試:是指對軟件的新的版本測試時,重復執行上一個版本測試時的用例
冒煙測試:是指在對一個新版本進行西戎大規模的測試之前,先驗證一下軟件的基本功能是否可以實現,是否具備可測性
隨機測試:是指測試中所有的輸入數據都是都是隨機生成的,其目的是模擬用戶的真是操作,並發現一些邊緣的錯誤。
6、關系
測試工程師
1、測試工程應該具備的基本職業素質:三心二意一能力。三心:細心、耐心、信心。二意:服務意識、團隊意識。一能力:溝通能力。
2、如何成為一名優秀的測試工程師:內功(基礎知識:計算機硬件、網絡、操作系統、數據庫等)、測試技術(黑盒測試中等價類、邊界值、因果圖等,白盒測試中的語句覆蓋、分支覆蓋、路徑覆蓋等)
1)、不斷學習充電
2)、閱讀原版書籍
3)、閱讀缺陷管理系統中的缺陷報告
4)、閱讀高手寫的測試用例
5)、學習產品相關的業務知識
3、SQA——軟件質量保障,CMM是SQA用來監督項目的一個標准質量模型,SQA按照CMM上面各種規則來檢驗各種各樣的項目。CMM——能力成熟度模型
4、軟件測試的原則:
1)、Zero bug——指的是軟件沒有任何bug,沒有bug是不可能的,我們只能想方設法把軟件的bug數控制在可以忍受的范圍之內。Good enough——指的是只要軟件達到一定的質量要求,就可以停止測試了。
2)、不要試圖窮舉測試
3)、開發人員不能既是運動員又是裁判員
4)、軟件測試要盡早執行
5)、軟件測試應該追溯需求
6)、缺陷的二八定理——缺陷的集群現象或是蟲子窩現象
7)、缺陷具有免疫性
黑盒測試技術
等價類技術、邊界值技術、因果圖法、流程圖法
缺陷管理
1、BUG的分類
Bug嚴重級別(Severity,Bug級別):是指因缺陷引起的故障對軟件產品的影響程度。由測試人員指定。
A
錯誤導致了死機、產品失敗(“崩潰”)、系統懸掛無法操作;
B
功能未實現或導致一個特性不能運行並且不可能有替代方案(包括計算錯誤);
C
錯誤導致了一個特性不能運行但可有一個替代方案;
D
錯誤是表面化或微小的(提示信息不太准確友好、錯別字、UI布局或罕見故障等),對功能幾乎沒有影響,產品及屬性仍可使用;
E
建設性的意見或建議。
Bug優先級(Priority):指缺陷必須被修復的緊急程度。由Bug分配者(開發組長/經理)指定。5
阻止相關開發人員的進一步開發活動,立即進行修復工作;阻止與此密切相關功能的進一步測試
4
必須修改,發版前必須修正
3
必須修改,不一定馬上修改,但需確定在某個特定里程碑結束前須修正
2
如果時間允許應該修改
1
允許不修改
缺陷類型(Type):是根據缺陷的自然屬性划分的缺陷種類。
Build
由於配置庫、變更管理或版本控制引起的錯誤。
Data
數據、數據庫、計算錯誤等。
Function
影響了重要的特性、產品接口、硬件結構接口和全局數據結構。如邏輯,指針,循環,遞歸,功能等缺陷。
Interface
與其他組件、模塊或設備驅動程序、調用參數、控制塊或參數列表相互影響的接口缺陷。
Performance
不滿足系統可測量的屬性值,如:執行時間,事務處理速率等。
Requirement
需求方面缺陷如(不明確、錯誤、考慮不全面等等)。
User Interface(簡寫UI)
人機交互特性:屏幕格式,頁面排版、控件位置等方面的缺陷。
其它
未知錯誤
Bug狀態(Status):指缺陷通過一個跟蹤修復過程的進展情況。包括Open、Fixed、Closed及Postponed等Open
為測試人員新問題提交所標志的狀態。為任務分配人(開發組長/經理)對該問題准備進行修改並對該問題分配修改人員所標志的狀態。Bug解決中的狀態,由任務分配人改變。對沒有進入此狀態的Bug,程序員不用管。
Fixed
為開發人員修改問題后所標志的狀態,修改后還未測試。
Closed
為測試人員對修改問題進行驗證后通過所標志的狀態。由測試人員改變。
Postponed
1、由於開發時間、進度、重要程度或者技術/設計/需求等方面的原因,認為不能解決、須延期解決、或者本版不做留待到后續版本解決的Bug;
2、因設計結構問題無法修改。測試人員認為是Bug,不符合邏輯,也不符合用戶的要求,但開發人員則認為是按照設計做的、只能如此處理,否則修改代價太大,這種問題可以拖后處理
duplicated
bug重復提交
Not error
測試員理解錯,不是bug,測試員提錯了
2、提交BUG注意事項:確保重現、要用最少且必要的步驟描述BUG、簡潔准確完整、一個BUG一個報告
3、常見的BUG管理工具:TD、Track Record、Clearquest、Bugzilla、Mantis、JIRA
測試管理
測試周期:計划——測試設計——測試執行——測試評估
軟件測試工具簡介
1、一般軟件測試工具分為黑盒測試工具、白盒測試工具、測試管理工具
2、MI loadrunner——性能測試,MI winrunner——功能測試,MI testdirector——測試管理工具,MI QTP——功能測試工具......