軟件測試基本概念程序員
一、軟件=程序+文檔,軟件測試=程序測試+文檔測試。數據庫
「程序」是指可以實現某種功能的指令的集合,「文檔」是指軟件在開發、使用和維護過程當中產生的圖文集合。;瀏覽器
二、軟件的分類服務器
按功能分:系統軟件、應用軟件網絡
按技術架構分:單機版軟件、C/S結構軟件(C是指客戶端, S指服務器端)、B/S結構軟件(B是指瀏覽器)數據結構
按照用戶劃分:產品軟件、項目軟件架構
按開發規模劃分:小型、中型、大型併發
三、BUG的定義:軟件的BUG指的是軟件中(包括程序和文檔)不符合用戶需求的問題。常見的軟件BUG分三種類型:徹底沒有實現的功能;基本實現了用戶需求的功能;實現了用戶不須要的功能。工具
四、測試環境=軟件+網絡+硬件。搭建環境:真實、乾淨、無毒、獨立佈局
五、軟件環境的分類:軟件開發環境軟件生產運行環境
六、測試用例:指在測試執行以前設計的一套詳細的測試方案,包括測試環境、測試步驟、測試數據和與其結果!測試用例=輸入+輸出+測試環境。測試用例有兩個模板,word和excel,前者適合性能測試,後者適合功能測試。
軟件測試分類
一、黑盒測試:指的是把被測的軟件看做是一個黑盒子,咱們不去關心盒子裏面的結構是什麼樣子的,只關心軟件的輸入數據和輸出結果
白盒測試:指的是把盒子蓋 打開,去研究裏面的源代碼和程序結構。
二、靜態測試:是指不實際運行被測軟件,而只是靜態的檢查程序代碼、界面或文檔中可能存在的錯誤的過程。
動態測試:是指實際運行被測程序,輸入相應的測試數據,檢查實際輸出結果和預期結果是否相符的過程,因此咱們判斷一個測試屬於動態測試仍是靜態測試,惟一的標準就是看是否運行程序。
注:同一個測試,既有可能屬於黑盒測試,也有可能屬於動態測試;既有可能屬於靜態測試,也有可能屬於白盒測試。他們之間也有可能交叉。
三、單元測試:編譯運行程序——靜態測試——動態測試
集成測試:是單元測試的下一個階段,是指將經過測試的單元模塊組裝成系統或子系統,再進行測試,重點測試不一樣模塊的接口部分。
系統測試:指的是將整個軟件系統看做1個總體進行測試,包括對功能、性能,以及軟件所運行的軟硬件環境進行測試。
驗收測試:指的是在系統測試的後期,以用戶測試爲主,或有測試人員等質量保障人員共同參與的測試,它也是軟件正式交給用戶使用的最後一道工序.
驗收測試又分爲α測試和β測試,其實α測試指的是由用戶、測試人員、開發人員等共同參與的內部測試,而β測試指的是內側後的公測,即徹底交給最終用戶測試。
四、功能測試:是黑盒測試的一方面,它檢查實際軟件的功能是否符合用戶的需求。功能測試又能夠細分爲不少種:邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試等。
性能測試:軟件的性能包括不少方面,主要有時間性能和空間性能兩種。時間性能:主要指軟件的一個具體事務的響應時間。空間性能:主要指軟件運行時所消耗的系統資源。
軟件性能測試分爲通常性能測試、穩定性測試、負載測試和壓力測試。通常性能測試指的是讓被測系統在正常的軟硬件環境下運行,不向其十佳任何壓力的性能測試。穩定性測試,也叫可靠性測試,是指連續運行內測系統,檢查系統運行時的穩定程度。咱們一般用MTBF(錯誤發生的平均時間間隔)來衡量系統的穩定性,越大穩定性越強。負載測試是性能測試的一種,一般是指讓被測系統在其能忍受的眼裏的極限範圍以內連續運行,來測試系統的穩定性。壓力測試是性能測試的一種,一般是指接二連三地給被測系統增長壓力,直到將被測系統壓垮爲止,用來測試系統所能承受的最大壓力。
假設一我的很輕鬆的就能背一袋米,背兩袋米很吃力,最多就能背三袋米,那麼:
通常性能測試:我就讓他背一袋米
穩定性測試:我讓他背一袋米,可是讓他去操場上跑圈,看多久累倒。
負載測試:我讓他背兩袋米去操場上跑圈,看多久累倒。
壓力測試:我讓他背兩袋米,三袋米,四袋米......發現他最多就能背三袋米。
五、迴歸測試:是指對軟件的新的版本測試時,重複執行上一個版本測試時的用例
冒煙測試:是指在對一個新版本進行西戎大規模的測試以前,先驗證一下軟件的基本功能是否能夠實現,是否具有可測性
隨機測試:是指測試中全部的輸入數據都是都是隨機生成的,其目的是模擬用戶的真是操做,並發現一些邊緣的錯誤。
六、關係
測試工程師
一、測試工程應該具有的基本職業素質:三心二意一能力。三心:細心、耐心、信心。二意:服務意識、團隊意識。一能力:溝通能力。
二、如何成爲一名優秀的測試工程師:內功(基礎知識:計算機硬件、網絡、操做系統、數據庫等)、測試技術(黑盒測試中等價類、邊界值、因果圖等,白盒測試中的語句覆蓋、分支覆蓋、路徑覆蓋等)
1)、不斷學習充電
2)、閱讀原版書籍
3)、閱讀缺陷管理系統中的缺陷報告
4)、閱讀高手寫的測試用例
5)、學習產品相關的業務知識
三、SQA——軟件質量保障,CMM是SQA用來監督項目的一個標準質量模型,SQA按照CMM上面各類規則來檢驗各類各樣的項目。CMM——能力成熟度模型
四、軟件測試的原則:
1)、Zero bug——指的是軟件沒有任何bug,沒有bug是不可能的,咱們只能千方百計把軟件的bug數控制在能夠忍受的範圍以內。Good enough——指的是隻要軟件達到必定的質量要求,就能夠中止測試了。
2)、不要試圖窮舉測試
3)、開發人員不能既是運動員又是裁判員
4)、軟件測試要儘早執行
5)、軟件測試應該追溯需求
6)、缺陷的二八定理——缺陷的集羣現象或是蟲子窩現象
7)、缺陷具備免疫性
黑盒測試技術
等價類技術、邊界值技術、因果圖法、流程圖法
缺陷管理
一、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
一、因爲開發時間、進度、重要程度或者技術/設計/需求等方面的緣由,認爲不能解決、須延期解決、或者本版不作留待到後續版本解決的Bug;
二、因設計結構問題沒法修改。測試人員認爲是Bug,不符合邏輯,也不符合用戶的要求,但開發人員則認爲是按照設計作的、只能如此處理,不然修改代價太大 ,這種問題能夠拖後處理
duplicated
bug重複提交
Not error
測試員理解錯,不是bug,測試員提錯了
二、提交BUG注意事項:確保重現、要用最少且必要的步驟描述BUG、簡潔準確完整、一個BUG一個報告
三、常見的BUG管理工具:TD、Track Record、Clearquest、Bugzilla、Mantis、JIRA
測試管理
測試周期:計劃——測試設計——測試執行——測試評估
軟件測試工具簡介
一、通常軟件測試工具分爲黑盒測試工具、白盒測試工具、測試管理工具
二、MI loadrunner——性能測試,MI winrunner——功能測試,MI testdirector——測試管理工具,MI QTP——功能測試工具......