轉自:http://www.scriptlover.com/post/664
1.軟體測試:使用人工和自動手段來運行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別。
2.測試和調試的區別:
測試的目的是找出存在的錯誤,而調試的目的是定位錯誤並修改程式以修正錯誤。
調試是測試之後的活動,測試和調試在目標,方法和思路上都有所不同。
測試是從一個已知的條件開始,使用預先已定義流程,有預知的結果,調試從一個未知的條件開始,結束的過程不可預計。
測試過程可以實現設計,進度可實現確定;調試不能描述過程或期間。
3.軟體研發的相關要素:人員,工具和過程。
4.軟體研發的四個重要過程:組態管理,需求管理,缺陷管理和同行評審。
5.軟體研發中常見的引入缺陷的原因:
開發過程缺乏有效溝通,或者沒有進行溝通
軟體複雜度越來越高
編程中產生錯誤
需求不斷變更
項目進度的壓力
不重視開發文檔
軟體開發工具本身隱藏的問題
6.缺陷的類型:遺漏,錯誤,額外的實現。
7.軟體品質的定義:一個實體的所有特性,基於這些特性可以滿足明顯的或者隱含的需求,而品質就是實體基於這些特性滿足需求的程度。
8.軟體品質的三個層次:符合需求規格,符合使用者顯示需求,符合使用者實際需求。
9.影響軟體品質的因素:技術,組織,流程。
10.軟體品質的管理體系:ISO9000,CMM,六西格瑪。
11.CMM的五個等級:初始級,可重複級,已定義級,已管理級,最佳化級。
12.CMM的五個等級中的關鍵過程域:
初始級:無
可重複級:需求管理,軟體組態管理,軟體品質保證。
已定義級:同行評審。
已管理級:定量的過程管理,軟體品質管理。
最佳化級:缺陷預防。
13.ISO9001與CMM的關係
最大的相似點:強調管理,過程,正常化和文檔化
不同點:CMM把焦點嚴格對準軟體
ISO9001的範圍包括:硬體,軟體,流程性材料和服務。
兩者之間的聯絡:CMM2級與ISO9001強相關。
CMM的每個關鍵過程域至少按某種解釋與ISO9001弱相關。
14.六西格瑪的實施方式:DMAIC
定義:define,測量:measure,分析:analyse,改進:improve,控制:control
15.軟體的品質模型:
品質模型:一組特性與特性之間的關係,它提供規定品質需求和評價品質的基礎。包括六大特性,27個子特性
六大特性包括:功能性,可靠性,易用性,維護性,效率,可移植性。
16.軟體品質活動:
軟體組織主要軟體品質活動:軟體品質保證(SQA)和測試。
17.SQA和測試的關係:
軟體品質由組織,流程和技術三個方面決定。
SQA從流程方面保證軟體的品質
測試從技術方面保證軟體的品質。
只要進行SQA活動或只進行測試活動不一定能產生好的軟體品質。
18.SQA的主要工作範圍:
指導並監督項目按照過程實施。
對項目進行度量,分析,增加項目的可視性。
審核工作產品,評價工作產品和過程品質目標的符合度。
進行缺陷分析,缺陷預防活動,發現過程的缺陷,提供決策參考,促見流程改善。
19.品質管理PDCA迴圈:
P:plan,計劃設計
D:do,實施執行。
C:check,檢查檢測
A:act,矯正措施,改進。
20.軟體度量的作用:理解,預測,評估,改進。
21.軟體度量的分類:四個基本度量項:規模,工作量,進度,品質-缺陷。
22.黑箱測試,白盒測試和灰盒測試的區別:
定義:
黑箱測試:黑箱測試又稱功能測試、資料驅動測試或者基於規格說明的測試,被測試程式當作黑盒處理,只考慮其整體特性,不考慮其內部具體實現。比如系統測試一般採用黑箱測試方法,並參考SRS。
白盒測試:根據被測試程式的內部結構設計測試案例的一類測試,有人也稱它為透明盒或者玻璃盒測試,涉及到軟體設計的細節。比如單元測試一般採用白盒測試方法,並參考LLD。
區別:
測試依據:
黑箱測試:根據使用者能看到的規格說明,即針對命令、資訊、報表等使用者介面以及體現它們的輸入資料與輸出資料之間的對應關係,特別是針對功能進行測試。
白盒測試:根據程式的內部結構,比如語句的控制結構、模組間的控制結構以及內部資料結構等進行測試。
特點:
黑箱測試:
優點:能站在使用者立場上進行測試。
對於更大的代碼單元來說比白盒測試效率更高;
有助於暴露任何規格不一致或有歧義的問題;
測試人員不需要瞭解實現的細節,包括特定的程式設計語言。
缺點:不能測試程式內部特定部位;
如果規格說明有誤,則無法發現;
白盒測試:
優點:能夠對程式內部的特定部位進行覆蓋測試。
對代碼的測試比較徹底;
最佳化;揭示隱藏在代碼中的錯誤;
缺點:無法檢驗程式的外部特徵;
無法對未實現規格說明的程式內部欠缺部分進行測試(無法檢測代碼中遺漏的路徑和資料敏感性錯誤);
昂貴;
方法舉例:
黑箱測試:等價類別劃分、邊界值分析、因果圖/判定表、錯誤推測、(功能覆蓋率)、
白盒測試:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、路徑覆蓋、面對對象的覆蓋(繼承上下文覆蓋、基於狀態的上下文覆蓋、已定義的上下文覆蓋等)、另外還有一些靜態分析方法。
23.單元,整合,系統測試的比較:
測試方法不同:
單元測試屬於白盒測試範疇,整合測試屬於灰盒測試範疇,
系統測試屬於黑箱測試範疇。
考察範圍不同:
單元測試主要測試單元內部的資料結構,邏輯控制,異常處理等。
整合測試主要測試模組之間的介面盒介面資料傳遞關係,以及模組組合後的整體功能。
系統測試主要測試整個系統相對於需求的符合度。
評估基準不同
單元測試的評估基準主要是邏輯覆蓋率。
整合測試的評估基準主要是介面覆蓋率。
系統測試的評估基準主要是測試案例對需求規格的覆蓋率。
24.迴歸測試冊策略:
完全重複策略,選擇性重複策略(其中包括覆蓋修改法,周邊影響法,指標達成法)
25.測試V模型:
V模型實現了測試設計和測試執行相分離
V模型揭示了軟體測試活動分層和分階段的本質特性,測試執行的順序與開發活動相反。
26.單元測試:
定義:對軟體基本組成單元進行的測試。
目的:發現各模組內部可能存在的各種錯誤,驗證代碼是與設計相符合的,
發現設計和需求中存在的錯誤,發現在編碼中引入的錯誤。
關注的重點:單元介面,局部資料結構,邊界條件,獨立路徑,出錯處理。
單元測試策略:孤立策略,自頂向下策略,自底向上策略。
單元測試的結束標準:以覆蓋率為標準,以遺留缺陷為標準。
27.整合測試:
定義:在單元測試的基礎上,將所有的函數按照概要設計要求組裝成為子系統或系統所進行的測試。
目的:確保各組件組合在一起後能夠按照既定意圖協作運行,並確保增量的行為正確,
驗證介面是與設計相符合的,發現設計和需求中存在的錯誤。
關注的重點:單元間的介面和整合後的功能。
整合測試的層次:模組內整合測試,子系統內整合測試,子系統間整合測試。
整合測試的策略:大爆炸整合,自頂向下,自底向上,三明治,基幹整合,分層整合,基於功能的整合,基於訊息,基於進度,基於風險。
28.系統測試:
定義:是將已經整合好的軟體系統,作為整個基於電腦系統的一個元素,與電腦
硬體,外設,某些支援軟體,資料和人員等其他元素結合在一起,在實際啟動並執行
環境下,對電腦系統進行一系列的測試活動。
目的:通過與系統的需求定義做比較,發現軟體與系統定義不符合或與之矛盾的地方。
對象:是軟硬體集合在一起的系統,不應是獨立的軟體與硬體環境。
系統測試類型:功能測試,效能測試,壓力測試,容量測試,安全性測試,GUI測試,
可用性測試,安裝測試,配置測試,異常測試,備份測試,健壯性測試,
文檔測試,線上協助測試,網路測試,穩定性測試。