軟體測試基礎知識總結
第一部分:軟體評測知識
1. 軟體質量與軟體測試
軟體測試:在規定條件下對程式進行操作,以發現錯誤,對軟體質量進行評估,包括對軟體形成過程的文件、資料以及程式進行測試
軟體質量:軟體特性的總和,軟體滿足規定或潛在使用者需求的能力
2. 軟體測試與質量保證
軟體測試只是質量保證工作中的一個環節,軟體質量保證與軟體測試是軟體質量工程的兩個不同層面的工作;
質量保證:通過預防、檢查與改進來保證軟體質量,採用全面質量管理和過程改進的原理來開展質量保證工作,主要關注軟體質量的檢查與測試,主要著眼於軟體開發活動的過程、步驟和產特
軟體測試:通過執行軟體來,對過程中的產物(開發文件和程式)進行走查,發現問題,報告質量
3. 軟體測試的目的
測試是程式的執行過程,目的在於發現錯誤;
一個好的測試用例在於發現了至今未發現的錯誤;
一個成功的測試是發現了 至今未發現的錯誤的測試;
4. 軟體測試原則
所有的軟體測試都應追溯到使用者需求
應當把“儘早地和不斷地進行軟體測試”作為測試者的座右銘
完全測試是不可能的,測試需要終止
測試無法顯示軟體潛在的缺陷;
充分注意測試中的群集現象
程式設計師應避免檢查自己的程式
儘量避免測試的隨意性
5. 軟體測試物件
程式開發過程中的各個文件、源程式
6. 軟體測試過程模型-V模型
是軟體開發瀑布模型的變種,主要反映測試活動與分析和設計的關係;
侷限性:把測試作為編碼之後的最後一個活動,需求分析等前期產生的錯誤直到後期的驗收測試才能發現
7. 軟體測試過程模型-W模型
在V模型的基礎上,增加千開發階段的同步測試,形成W模型;測試與開發同步進行,有利用盡早的發現問題
侷限性:仍把開發活動看成是從需求開始到編碼結束的序列活動,只有上一階段完成後,才可以開始下一階段的活動,不能支援迭代,自發性以及變更調整
8. 軟體測試過程模型-H模型
在H模型中,軟體測試過程活動完全獨立,貫穿於整個產品的週期,與其他流程併發地進行,某個測試點準備就緒時,就可以從測試準備階段進行到測試執行階段;軟體測試可以進行儘早的進行;軟體測試可以根據被測物的不同而分層次進行
9. 測試模型使用
在實際工作中應靈活地運用各種模型的優點
V模型 |
強調了在整個軟體專案開發中需要經歷的若干個測試級別,並與每一個開發級別對應;忽略了測試的物件不應該僅僅包括程式,沒有明確指出對需求、設計的測試 |
W模型 |
補充了V模型中忽略的內容,強調了測試計劃等工作的先行和對系統需求和系統設計的測試;與V模型相同,沒有對軟體測試的流程進行說明 |
H模型 |
強調測試是獨立的,只要測試準備完成,就可以執行測試 |
10. 單元測試
定義 |
又稱模組測試,是針對軟體設計的最小單位程式模組進行正確性檢查的測試工作;可以從程式的內部結構出發設計測試用例,多個模組測試可以平行地獨立進行測試 |
目的 |
發現模組內部可能存在的各種差錯 |
內容 |
模組介面測試、區域性資料結構測試、路徑測試、錯誤處理測試、邊界測試 |
步驟 |
利用設計文件設計測試用例;建立被測模組的樁模組或驅動模組;利用被測試模組、驅動模組和樁模組來建立測試環境,進行測試 |
11.整合測試
定義 |
又稱組裝測試或聯合測試,在單元測試基礎上,將所有模組按概要設計和詳細設計進行組裝 |
目的 |
發現模組連線中的介面可能存在的各種差錯 |
內容 |
穿越模組之間的資料是否會丟失;一個模組組裝後是否會對另一模組或其他模組存在影響;各個子功能組裝在一起是否會達到預期的父功能;全域性資料結構是否有問題;單個模組的錯誤累積起來是否會放在 |
組裝方法 |
一次性組裝方式,非增殖式方式也叫整體拼裝,對模組分別測試然後將所有模組組裝;第二種增殖式組裝方式,可以是自頂向下或自底向上 |
完成標誌 |
成功地執行了測試計劃中規定的所有測試用例;修正了所發現的錯誤;測試結果通過專門小組的評審 |
12.確認測試
目的 |
驗證軟體的功能和效能及其他特性是否與使用者的要求一致 |
測試內容 |
有效性測試 執行黑盒測試方法驗證所測軟體是否滿足需求規格說明書列出的需求;所有文件正確且便於使用;軟體可移植性、易用性、相容性進行測試;軟體配置複查 保證軟體配置的所有成分都齊全 |
13.系統測試
目的 |
驗證和確認系統是否達到其原始目標,而對整合的硬體和軟體系統進行的測試 |
測試內容 |
在真實或模擬系統執行環境下,檢查完整的程式系統能否和系統(硬體裝置、網路、系統軟體)正確配置、連線,滿足使用者需求 |
14.驗收測試
測試內容:根據任務書或合迥、供需雙方約定的驗收依據文件進行對整個系統的測試與評審,確認是否接收或拒絕系統;
15.開發方測試
通常也叫‘驗收測試’或‘a測試’,在軟體開發環境中,開發者檢測與證實軟體的實現是否滿足軟體設計說明或軟體需求說明的要求
16.使用者測試
在使用者的應用環境下,使用者檢測與核實軟體實現是否符合自己預期的要求。B測試通常被認為是使用者測試,把軟體有計劃地免費地分發到目標市場,讓使用者大量使用、評價檢查軟體
17.第三方測試
由第三方測試機構來進行的測試,也稱獨立測試
18.動態測試
通過人工或使用工具執行程式進行檢查,分析程式的執行狀態和程式的外部表現
19.靜態測試
不執行程式,能過人工對程式和文件進行分析與檢查,包括走查、符號執行、需求確認等
20.白盒測試
通過對程式內部結構的分析、檢測來尋找問題,檢查程式的結構及路徑是否正確,檢查程式的內部動作是否按照設計說明的規定正常進行
21.黑盒測試
又稱功能測試,通過執行程式發現其缺陷和錯誤,在程式介面處進行測試
22.灰盒測試
介於白盒和黑盒測試之間,關注輸出對於輸入的正確性,也關注程式的內部結構,但沒有白盒測試那樣詳細、完整
23.測試分類
開發過程 |
單元、整合、確認、系統、驗證 |
實施組織 |
開發方、使用者、第三方 |
測試技術 |
白盒、黑盒、灰盒或靜態、動態 |
24.軟體問題分類
軟體錯誤、軟體缺陷、軟體故障、軟體失效
軟體錯誤:在軟體生存週期內的不希望或不可接受的人為錯誤
軟體缺陷:存在於軟體(檔案、程式、資料)之中的不希望或不可接受的偏差
軟體故障:軟體執行過程中出現的一種不希望或不可接受的內部狀態。
軟體失效:軟體執行時產生的一種不希望或不可接受的外部行為
25.GB/T16260.1 產品質量-質量模型
質量模型:代表軟體質量屬性的總體
軟體質量特性與度量:質量特性和子特性、外部度量、內部度量
外部、內部質量的質量模型:質量屬性包括:功能性、可靠性、易用性、效率、維護性和可移植性
26.GB/T18905.1 軟體工程 產品評價-概述
概述了軟體產品評價的過程,提供了評價需求和指南
27.GB/T18905.5 軟體工程 產品評價-評價者用的過程
28.軟體測試的國內外現狀
國外:軟體測試已成為一個獨立的產業,在軟體公司佔有重要的地位,軟體測試理論研究蓬勃發展,軟體測試市場繁榮,開發了大量的測試工具;
國內:軟體測試成為一個新興產業,測試技術貧乏,從業人員少,測試服務沒有足夠規模;著名的軟體公司已成立了專業的測試隊伍,國家在職業資格中新增了‘軟體評測師’,企業資集認證時軟體測試能務成為重要指標,軟體產品增加了登記測試,成立第三方測試機構,軟體測試成為一個獨立課程
29.軟體評測發展趨勢
測試工作將進一步前移
軟體架構師、開發工程師、QA人員、測試工程題將進行更新的融合
測試行業將得到充分的尊重
設定獨立的測試部門將得到越來越多公司的軟體公司的共識
測試外包服務將快速增長
30.測試過程的特性與要求
軟體測試過程 |
是一抽象的、遵循GB/T18905《評價者用的過程》中定義軟體評價過程的模型 |
|||||
評價過程的特性 |
可重複性:同一評價者按同一評價規格說明對同一產品進行重複地評價,應產生同一種可接受的結果 |
|||||
可再現性:同不同評價者同一評價規格說明對同一產品進行評價,應產生同一種可接受的結果 |
||||||
公正性:評價應不偏向任何特殊的結果 |
||||||
客觀性:評價結果應是客觀事實 |
||||||
評價過程的要求 |
一般要求 |
組織和質量體系:評價者應立足於一個組織;評價組織為保證質量,可以建立質量體系 |
||||
請求者職責:對軟體產品確立必要的合法權利;為標識和描述產品提供必要的資訊;闡述初步評價需求,與評價者協商確定實際需求,需求遵守相關的法規和標準;闡述對評價提交的資訊的保密性需求;必要時在開發者和評價者之間起中介作用;必要時向評價者提供計算機和其他裝置 |
||||||
評價者職責:檢查請求者對軟體產品是否有充分合法的權利;按規定對請求者提供保密承諾;提供有資格的人員,以便實施評價;提供評價工具和技術;按照評價需求實施測試;保證評價過程中的所有記錄 ;保證及時向請求者提交評價報告 |
||||||
活動要求 |
確立軟體評價需求 |
編制評價規格說明 |
制定評價計劃 |
評價執行 |
作評價結論 |
31.軟體測試與配置管理
配置管理活動 |
配置項標識:標識測試樣品、標準、工具、文件報告等配置項的名稱和型別、標識各配置項的所有者及儲存位置 |
配置項控制(變更控制):規定測試基線、基線創立時間、變更控制委員會人員組成、職能、確定變更請求的處理程式和終止條件、變更過程中測試人員變更的職能等 |
|
配置狀態報告:定義報告形式、內容和提交方式、確認過程記錄和跟蹤問題報告、更改請求、更改次序;確定測試報告提交的時間與方式; |
|
配置審計:確定審計執行人員和執行時機;確定審計的內容與方式;確定發現問題的處理方法 |
32.測試的組織與人員
測試的組織 |
組織結構設計因素:垂直還是緩、市場還是產品、集中還是分散、分級還是分散、專業人員還是工作人員、功能還是專案 |
||
獨立測試組織:沒有此組織,建立系統不會理想 |
|||
集中管理的測試組織:成立獨立部門,集中管理 |
|||
選擇測試組織結構方案的準則:提供軟體測試的快速決策能力;利於合作;能夠獨立運作並具有精幹的人員配置;有利於協調測試與質量管理的關係;有利於滿足軟體測試過程管理要求;有利於為測試技術提供專有技校;充分利用現有測試資源;對測試者的職業道德產生積極影響 |
|||
測試的人員 |
測試組織管理者 |
具有理解與評價軟體測試政策、標準、過程、工具、培訓和度量的能力;具有領導能力;具有吸引並留住傑出測試專業人才的能力;具有溝通、支援和控制能力;具有測試時間、質量和成本控制能力 |
|
測試人員 |
應具有的能力 |
一般的表達、交流、協調、質量意識、軟體工程能力;測試技能和方法;測試規劃能力;測試執行能力;測試分析、報告和改進能力; |
|
職業發展: |
1~2年測試技能;3~4年測試過程;4~5年測試組織工作;5~6年技術管理;6~12年測試管理 |
||
人員培訓 |
按培訓內容分類:測試基礎知識和技能培訓;測試設計培訓、測試工具培訓;測試物件軟體產品培訓;測試過程培訓;測試管理培訓 |
33.軟體測試風險分析
軟體測試風險:是軟體測試過程出現的或潛在的問題,造成的原因主要是測試計劃的不充分、測試方法有誤或測試過程的偏離,造成測試的補充以及結果不準確
軟體測試風險主要是對測試計劃執行的風險分析與制定要採取應急措施;重點在措施
測試計劃的風險:一般指測試進度滯後或出現非計劃事件;常見的有交付日期、測試需求、測試範圍、測試資源、人員的能力、測試預算、測試環境、測試支援、測試工具;
34.軟體測試的成本管理
測試實施成本 |
測試準備成本、測試執行成本、測試結束成本 |
低測試實施成本 |
測試準備環境儘可能使用軟體和測試環境配置自動化;測試實施儘可能採用自動化測試工具(測試用例自動化執行),人工測試最好請初級技術人員,不使用測試工程師;測試結束編制測試報告測試結果與預期結果比較採用自動化方法(測試文件編制模板化) |
質量成本要素 |
一致性成本(用於測試實施成本)、非一致性成本(由出現的問題和故障引起) 質量成本=一致性成本+非一致性成本 |
缺陷探測率DD P |
=Bugs(tester)/ (Bugs(tester)+ Bugs(customer)) 衡量測試投資回報的一個重要指標註:第116頁計算題 |
35.文件測試的範圍
使用者文件 |
使用者手冊、操作手冊、維護修改建議 |
開發文件 |
需求說明書、概要設計、資料庫設計、詳細設計、可行性研究報告 |
管理文件 |
專案開發計劃、測試計劃、測試報告、開發進度月報、開發總結報告 |
36.使用者文件的內容
包裝上的文字及圖案;宣傳材料、廣告及其他插頁;授權/註冊登記表;終端使用者許可協議;標籤和不乾膠條;安裝和設定指導;使用者手冊;聯機幫助;指南、嚮導;樣例、示例和模板;錯誤提示資訊;
37.使用者文件測試的要點
明確讀者群:根據讀者群(如初級、中級、高階使用者)的不同來檢查文件內容,保證使用者能夠看得懂、能理解
術語:文件中術語的描述要適合定位的讀者群,用法一致,標準定義與業界規範相吻合
文件內容的正確性:要保證所有資訊是真實正確的
文件內容的完整性:要完全根據提示逐步操作,檢查是否存在遺漏的地方
文件與程式的一致性:按照文件操作後,檢查軟體返回的結果與文件描述是否一致
文件的易用性:檢查是否便於使用者查詢相應的內容
圖表與介面截圖:檢查所有圖表與介面截圖與釋出的程式版本一致
樣例和示例:檢查所有的樣例和示例能夠正確完成;
語言:中文文件保證無錯別字和二義性
印刷與包裝:印刷質量,包裝質量
38.使用者手冊的測試
準確的按照手冊的描述使用程式;嘗試每一條建議;檢查每條陳述;查詢容易誤導使用者的內容;
39.線上幫助的測試
內容的準確性;幫助功能的可靠性;每一條索引和主題列表要逐條檢查,是否能夠由索引進入主題;幫助系統中的每一個超級連結;主題是否全部能夠在索引中找到;幫助系統的風格應簡潔;
40.功能易用性測試
業務符合性 |
程式實現的業務邏輯與實際業務邏輯是否一致; |
功能定製性 |
對軟體功能應能夠靈活定製 |
業務模組整合度 |
對於存在緊密關係的模組,是否方便功能轉換,從一個功能進入到別一個功能 |
資料共享能力 |
對於多處使用的資料應可以一次輸入多處使用,減少使用者重複工作 |
約束性 |
對於流程性強的操作,應能夠限制操作順序;對非法資訊應不允許進行系統 |
互動性 |
對於使用者的每一次操作,應能夠給出提示或迴應,使使用者清晰的看到系統的執行狀態 |
錯誤提示 |
對於關鍵操作完成後或刪除資料之前給出明確的提示資訊; |
41.使用者介面測試:介面整體、介面元素測試
介面整體 |
規範性測試:符合現行標準和規範 |
合理性測試:介面與軟體功能是否相融洽,介面的佈局是否協調 |
|
一致性測試:使用的控制元件、標籤風格、錯誤提示資訊、操作方法是否一致 |
|
介面定製性測試:介面元素的可定製性;工具欄的可定製性;統計檢索的可定製性;報表的可定製性 |
|
介面元素 |
視窗測試:大小、顯示、視窗大小改變、多個視窗同時開啟、支援操作方法等 |
選單測試:是否符合需求;措辭是否準確;順序是否合理;圖形佈局是否一致 |
|
圖示測試:是否符合表達習慣;不同的目標是否採用不同的圖示;圖示尺寸是否合適;建議與對應功能相似;圖示上是否有標註 |
|
滑鼠測試:互動環境中是否可以識別滑鼠操作;多次點選是否識別;無規則點選是否會產生無法預料的結果;右鍵彈出選單是否正確; |
|
文字測試:介面文字是否正確,準確,無二義性; |
42.硬體相容性測試
目的 |
確認軟體系統對於伺服器端、客戶端及網路所需的環境是否正確、合理 |
測試內容 |
最低配置是否能滿足系統執行的需要;在推薦配置下系統的響應是否迅速;考察軟體對執行硬體環境有無特殊說明;軟體系統能否執行在多種硬體配置環境下 |
與整機相容性 |
確認要求的最低配置和推薦配置的合理性和正確性;主要指標:機型的要求;CPU;記憶體;硬碟 |
與板卡及配件相容性 |
獨立板卡;主機板晶片組;驅動程式中的自由軟體 |
與印表機的相容性 |
對不同廠商、不同型號的印表機進行以下測試:安裝;列印測試頁;調整紙張大小;選擇解析度;調整列印方向;逐頁、多份列印;雙面列印、網路列印 |
其他 |
紅外線滑鼠、鍵盤、掃描器、視訊軟體,燒錄軟體的相容性 |
43.軟體相容性
與作業系統的相容性 |
確認軟體系統是否與多種型別的作業系統相容,包括安裝、關鍵流程的檢查;作業系統包括Windows平臺、Linux平臺、UNIX平臺;Macintosh 圖形專用軟體 |
與資料庫的相容性 |
確認軟體系統在不同資料庫的可移植性、互操作性,對完整性、應用系統測試;效能測試;資料庫包括SQL;ODBC;JDBC;ADO;OLE DB;JDO |
與中介軟體的相容性 |
指對不同版本、不同補丁包的相容性進行測試,檢查應用程式是否能夠正確執行,效能的變化; |
與瀏覽器的相容性 |
建立一個相容性矩陣,測試不同廠商、不同版本的瀏覽器對某些構件和設定的適應性;如Applets,JavaScript,ActiveX,VBScript |
與其他軟體的相容性 |
與支援軟體(財務軟體匯出Excel)的相容性測試;與其他同類軟體的相容性(與其他同類軟體同時在機器中使用);與其他非同類軟體的相容性 |
44.資料相容性測試
不同資料格式相容性 |
確認軟體之間能否正確地互動和共享資訊,不同格式的資訊是否相容;包括系統與其他系統複製貼上文字是否正確;舊版本資訊在新版本是否能開啟;新版本檔案在舊系統中是否能開啟;同類軟體是否可以進行資料交換 |
XML符合性 |
XML能夠使不同來 |