1. 程式人生 > >軟體測試入門:閱讀《軟體測試》(原書第2版,(美)Ron Patton 著,張小松、王鈺、曹躍 等譯)一書

軟體測試入門:閱讀《軟體測試》(原書第2版,(美)Ron Patton 著,張小松、王鈺、曹躍 等譯)一書

該書全面系統地介紹了軟體測試理論及應用技術,不僅講述基本的測試技能,也講述成為一個成功的軟體測試員所必須掌握的高階技能。

第一部分 軟體測試綜述

第1章 軟體測試的背景

軟體錯誤例項:迪斯尼的獅子王遊戲在大多數系統不能執行;愛國者導彈系統時鐘累積錯誤;千年蟲(年份用兩位數表示)出現問題等。

產品說明書對開發的產品進行定義,給出產品細節、如何做、做什麼、不能做什麼。

至少滿足如下5個規則之一才稱軟體缺陷:1.軟體未實現產品說明書的要求;2.軟體出現產品說明書指明不該出現的錯誤;3.軟體出現產品說明書未提及功能;4.軟體未實現產品說明書雖未明確提及但應實現的功能;5.軟體難以理解,不易使用、執行緩慢。

軟體缺陷來源:產品說明書、設計、編碼、其他。修復費用越往後越多,指數級增長。

軟體測試員目標是儘可能早地發現軟體缺陷,並確保其得以修復。

第2章 軟體開發的過程

軟體產品需要多少投入:客戶需求;產品說明書;進度表;軟體設計文件;測試文件(測試計劃、測試用例、缺陷報告、測試工具和自動化測試、度量和統計)。

軟體產品包括:幫助檔案、使用者手冊、樣本和示例、標籤和不乾膠、產品支援資訊、圖示和標誌、錯誤資訊、廣告和宣傳材料、安裝、說明檔案。

軟體專案成員:專案經理、系統架構師、程式開發人員、測試員、技術作者、配置管理員。

軟體開發生命週期模式:大爆炸模式、邊寫邊改模式、瀑布模式(構思-分析-設計-開發

-測試)、螺旋模式(測試員通過參與最初設計階段,可以儘早影響到產品,可以把產品來龍去脈弄清楚)。

敏捷軟體開發:快速原型、極限程式設計或進化開發。

第3章 軟體測試的實質

測試的原則:完全測試程式不可能;軟體測試有風險;測試無法顯示潛伏的軟體缺陷;找到的軟體缺陷越多,說明軟體缺陷越多;殺蟲劑抵抗力怪事;並非所有缺陷都修復;什麼時候叫缺陷難以說清;產品說明書沒有最終版本;軟體測試員在產品小組不受歡迎;軟體測試是一項講究條理的技術專業。

術語:精確和準確;確認(保證軟體符合產品說明書的過程)和驗證(保證軟體滿足使用者要求的過程);質量(滿足客戶要求)和可靠性(穩定,是質量的一方面);測試和質量保證。

第二部分 測試基礎

第4章 檢查產品說明書

描述測試方式的術語:黑盒測試(功能性測試/行為測試)和白盒測試(透明盒測試)。靜態測試(檢查和稽核)和動態測試(使用和執行軟體)。

測試產品說明書屬於靜態黑盒測試。

測試產品說明書第一步是高階審查:假設自己是客戶;研究現有的標準和規範;審查和測試類似軟體。

產品說明書低層次測試技術:產品說明書屬性檢查清單:完整;準確;精確;一致;貼切;合理;程式碼無關;可測試性。

第5章 帶上眼罩測試軟體

測試用例(test case)是指進行測試時使用的特定輸入,以及測試軟體的過程步驟。

通過性測試(至少能做什麼)和失效性測試(搞垮它)。

等價類劃分是指分步驟地把海量測試用例縮減得很小,但過程同樣有效。

資料測試等價類劃分原則:邊界條件;次邊界條件;預設、空白、空值和無;非法、錯誤、不正確和垃圾資料。

狀態轉換圖應該表示出:軟體可能進入的每一種獨立狀態;從一種狀態進入另一種狀態的輸入和條件。進入或者退出狀態的設定條件及輸出結果。

通過性狀態測試:檢查軟體、描繪狀態、嘗試各種合法可能性、確認狀態及其轉換正常。

失效性狀態測試:競爭條件和時序錯亂、重複、壓迫和重負。

第6章 檢查程式碼

靜態白盒測試是在不執行軟體的條件下有條理地仔細審查軟體設計、體系結構和程式碼,從而找出軟體缺陷的過程,有時也稱為結構化分析。

正式審查是進行靜態白盒測試的過程,包括4個基本要素:確定問題;遵守規則;準備;編寫報告。

編碼標準和規範:可靠性;可讀性/維護性;移植性。

通用程式碼審查清單:資料引用錯誤(導致緩衝區溢位,安全缺陷);資料宣告錯誤;計算錯誤;比較錯誤;控制流程錯誤;子程式引數錯誤;輸入/輸出錯誤;其他檢查。

第7章 帶上X光眼鏡測試

動態白盒測試是指利用檢視程式碼功能(做什麼)和實現方式(怎麼做)得到的資訊來確定哪些需要測試、哪些不需要測試、如何開展測試,也稱結構化測試。

單元測試/模組測試、整合測試、系統測試

遞增測試兩條途徑:自底向上(測試驅動呼叫被測試模組)和自頂向下(測試樁)。

資料覆蓋:資料流、次邊界、公式和等式、錯誤強制。

程式碼覆蓋:程式語句和程式碼行覆蓋、分支覆蓋、條件覆蓋。

第三部分 運用測試技術

第8章 配置測試

執行任務:1、確定所需硬體型別。2、確定有哪些廠商的硬體、型號和驅動程式可用。3.確定可能的硬體特性、模式和選項。4、將確定後的硬體配置縮減為可控制的範圍。5、明確與硬體配置有關的軟體唯一特性。6、設計在每一種配置中執行的測試用例。7、在每種配置中執行測試。8、反覆測試直到小組對結果滿意為止。

第9章 相容性測試

軟體相容性測試是指檢查軟體之間是否能夠正確地互動和共享資訊。

向後相容(可以使用軟體以前版本)和向前相容(可以使用軟體未來版本)。

高階標準和規範是產品普遍遵守的原則,低階標準是本質細節。

相容性測試記住3點:對相容軟體的所有可能選擇進行等價劃分;研究適用於測試軟體的高階/低階標準和規範;測試軟體程式之間的不同資料流動方式。

第10章 外國語言測試

使軟體適應地域特徵,照顧到語言、方言、地區習俗和文化的過程稱為本地化或國際化。

翻譯問題:文字擴充套件;ASCII;熱鍵和快捷鍵;擴充套件字元;字元計算;從左向右和從右向左讀;圖形中的文字;讓文字與程式碼脫離。

本地化問題:內容,資料格式。

配置和相容性問題:國外平臺配置,資料相容性。

第11章 易用性測試

優秀UI具備的7個要素:符合標準和規範;直觀;一致;靈活;舒適;正確;實用。

為有殘疾障礙的人員測試:輔助選項測試。

第12章 測試文件

文件包括:市場宣傳材料、廣告,授權登記表,標籤和不乾膠,安裝和設定指導,使用者手冊,聯機幫助,指南,樣本和示例,錯誤提示資訊等。

好的軟體文件可提高軟體易用性、可靠性,降低支援費用。

文件測試檢測清單:通用部分:聽眾、術語、內容和主題;正確性:緊扣事實、逐步執行;檢查的內容:圖表和截圖、樣本和示例、拼寫和語法。

第13章 軟體安全性測試

黑客動機:挑戰/成名,好奇,借用,惡意破壞(醜化、破壞、拒絕服務),偷竊。

威脅模型分析,整個專案小組執行的正式過程,用於評估軟體系統的安全問題。

瞭解緩衝區溢位,使用安全的字串函式,計算機取證。

第14章 網站測試

黑盒測試:文字(當作文件對待);超級連結;圖片;表單(用於輸入和選擇資訊的文字框、列表框和其他域);物件和其他各種簡單功能。

灰盒測試(介於白盒和黑盒之間)適合網頁測試,HTML(超文字標記語言)

白盒測試,網站系統結構和程式設計知識:動態內容;資料庫驅動的網頁;用程式設計方法建立的網頁;伺服器效能和載入;安全性。

配置和相容性測試,易用性測試。

第四部分 測試的補充

第15章 自動測試和測試工具

重複執行測試的過程稱為迴歸測試。

工具和自動化的主要屬性:速度;效率;準確度和精確度;節省資源;模擬和模擬;堅持不懈。

測試工具:檢視器/監視器;驅動程式;樁;壓力和負載工具;干擾注入器和噪聲發生器;分析工具。

軟體測試自動化可以執行測試用例,查詢軟體缺陷,分析看到的資訊,記錄結果。

自動化:巨集錄製和回放;可程式設計的巨集;完全可程式設計的自動測試工具。

隨機測試:模擬使用者可能的操作,測試猴子。

第16章 缺陷轟炸和beta測試

讓別人測試你的軟體,測試共享:整個測試小組參加缺陷轟炸。

Beta測試是用於描述外部測試過程的術語。在該過程中,軟體分發給選定的潛在客戶群,讓他們在實際環境中使用軟體。

外包測試,配置和相容性測試通常是外包測試的理想選擇。

第五部分 使用測試文件

第17章 計劃測試工作

測試計劃的目的:規定測試活動的範圍、方法、資源和進度;明確正在測試的專案、要測試的特性、要執行的測試任務、每個任務的負責人,以及與計劃相關的風險。

測試計劃主題:高階期望;人、地點和事;定義;團隊之間的責任;哪些要測試、哪些不要測試;測試的階段;測試策略;資源需求;測試員的任務分配;測試進度;測試用例;軟體缺陷報告;度量和統計。風險和問題。

第18章 編寫和跟蹤測試用例

有條不紊地仔細計劃測試用例的重要性:組織;重複性;跟蹤;測試證實。

測試用例計劃綜述:測試設計說明——測試用例說明——測試過程說明。

測試用例組織和跟蹤:憑腦子記;書面文件;電子表格;自定義資料庫。

第19章 報告發現的問題

不修復軟體缺陷的原因:沒有足夠時間;不算真正的軟體缺陷;修復風險太大;不值得修復;無效的軟體缺陷報告。

報告軟體缺陷的原則:儘快報告軟體缺陷;有效描述軟體缺陷(短小,單一,明顯並通用,可再現);在報告軟體缺陷時不評價;對軟體缺陷報告跟蹤到底。

軟體缺陷分等級:嚴重性和優先順序。

軟體缺陷生命週期:開啟、解決、(審查、推遲、)關閉。

軟體缺陷跟蹤系統:標準,測試事件報告;手工軟體缺陷和跟蹤;自動化軟體缺陷報告和跟蹤。

第20章 成效評價

在日常測試中使用的度量;常用專案級度量。

使用度量的目的是評估測試員和專案的成效,獲知一切是否按預定計劃進行,如果不是,應該修正。

開啟的缺陷   修復/解決的缺陷    關閉的缺陷

第六部分 軟體測試的未來

第21章 軟體質量保證

一致性費用是指與一次性計劃和執行測試相關的全部費用,用於保證軟體按照預期方式執行。

軟體質量保證人員的主要職責是檢查和評價當前軟體開發的過程,找出改進過程的方法,已達到防止軟體缺陷出現的目的。

QA質量保證,QC質量控制,QM質量管理

能力成熟度模型(CMM)1.初始的,隨意和混亂的過程;2.可重複的,專案級的思想;3.定義的,組織級別的思想;4.可管理的,可控制的過程。5.不斷優化的。

ISO9000(國際標準化組織),ISO9000-3(負責開發、供應、安裝和維護計算機軟體方面的事務)。

第22章 軟體測試員的職業

軟體測試技術人員、軟體測試員或者軟體測試工程師、軟體測試工具開發師或軟體測試開發工程師、軟體測試負責人、軟體測試經理。

開原始碼測試

計算機使用者的權利議案:觀點;安裝;服從;指示;控制;反饋;依賴;範圍;協助;易用性。(使用者第一)