軟件測試(原書第二版)讀書筆記(二)

第四章 檢查產品說明書

黑盒測試和白盒測試

1、黑盒測試中,軟件測試員只需要知道軟件要做什麼——而無法看見盒子裏的軟件是如何運行的 ,只要進行一些輸入,就能得到某種輸出結果。他不知道軟件如何運行,爲什麼會這樣,只知道程序做了什麼。

黑盒測試有時候又稱爲功能性測試或行爲測試。

2、白盒測試中,軟件測試員可以訪問程序員的代碼,並通過檢測代碼的線索來協助測試——可以看見盒子裏面。測試員根據代碼檢查結果判斷或多或少可能出錯的數目,並據此定製測試。

靜態測試和動態測試

1、靜態測試是指測試不運行的部分——只是檢查和審覈;動態測試是指通常意義上的測試——使用和運行軟件。
2、測試產品說明書屬於靜態黑盒測試。產品說明書是書面文檔,而不是可執行程序,因此是靜態的。

對產品說明書進行高級審查

1、測試產品說明書的第一步不是馬上鑽進去找缺陷,而是站在一個高度上進行審查。審查產品說明書是爲了找出根本性的問題。
2、當軟件測試員第一次接到需要審查的產品說明書時,最容易做的事情就是把自己當成客戶

瞭解客戶所想是很重要的。質量的定義是“滿足客戶需求”。

3、標準與規範的差別在於程度不同,標準比規範更加嚴格。如果小組認爲很重要,則標準應嚴格遵守;規範是可選的,但應該遵守。
4、在審查競爭產品時需要注意的問題包括:

規模。軟件的功能強大還是單一?代碼多還是少?這些差別和測試有關嗎?
複雜性。軟件簡單還是複雜?這會影響測試嗎?
測試性。是否有足夠的資源、時間和經驗來測試軟件?
質量和可靠性。軟件是否完全滿足質量要求?可靠性高還是低?
安全性。競爭對手軟件的安全性和自身比起來如何?

產品說明書的低層次測試技術

1、產品說明書屬性檢查清單:

完整。
準確。
精確、清晰。
一致。
貼切。
合理。
代碼無關。
可測試性。

2、產品說明書術語檢查清單:

總是、每一種、所有、沒有、從不。
當然、因此、明顯、顯然、必然。
某些、有時、常常、大多、幾乎。
等等、以此類推、例如。
良好、迅速、高效、廉價、穩定。
處理、進行、拒絕、跳過、排除。
如果……那麼……(沒有否則)。

第五章 帶上眼罩測試軟件

動態黑盒測試:帶上眼罩測試軟件

1、不深入代碼細節測試軟件的方法稱爲動態黑盒測試。常被稱爲行爲測試。
2、有效的動態測試需要需求文檔或產品說明書。
3、測試用例是指進行測試時使用的特定輸入,以及測試軟件的過程步驟。

通過性測試和失效性測試

1、測試軟件有兩種基本方法:通過性測試和失效性測試。
2、在進行通過性測試時,實際上是確認軟件至少能做什麼,而不會考驗其能力。軟件測試員不需要想盡辦法讓軟件崩潰,僅僅運用最簡單、最直觀的測試用例。

在設計和執行測試用例時,總是首先進行 通過性測試。在破壞性測試之前看看軟件機功能是否實現是很重要的。

3、確認軟件在普通情況下能正確運行之後,就可以採取各種手段搞垮軟件來找出軟件缺陷了。純粹爲了破壞軟件而設計和執行的測試用例成爲失效性測試或錯誤強制測試。

等價類劃分

1、選擇測試用例是軟件測試員最重要的任務。選擇測試用例的方法是等價類劃分。等價類劃分是指分步驟把海量的測試用例集減得很小,但過程同樣有效。

在尋找等價劃分時,考慮把軟件具有相似輸入、相似輸出、相似操作的分在一組。這些組就是等價劃分。

2、等價類劃分的目標是把可能的測試用例集縮減到可控制且仍然足以測試軟件的小範圍內。因爲選擇了不完全測試,就要冒一定風險,所以選擇分類時必須仔細。

數據測試

1、對軟件最簡單的認識就是分爲兩部分:數據和程序。軟件測試常用的一個方法是把測試工作按同樣的形式劃分。
2、對數據進行軟件測試,就是在檢查用戶輸入的信息、返回的結果以及中間計算結果是否正確。
3、根據一些關鍵的原則進行等價類劃分,以合理減少測試用例,這些關鍵的原則是:邊界條件、次邊界條件、空值和無效數據。
4、測試邊界:如果建立兩個等價劃分就可以找出更多軟件缺陷。第一個劃分包含認爲應該正確的數據——在邊界內部最後一兩個合法的數據點第二個區間包含認爲可能出現錯誤的數據——邊界之外——一到兩個非法的數據點

越界測試一般是簡單地對最大值加1或者很小的數,以及對於最小值減1或者很小的數。
圍繞邊界條件進行等價劃分,並建立測試用例是至關重要的,這是減小測試工作量最爲有效的辦法。

5、有些邊界在軟件內部,最終用戶幾乎看不到,但是軟件測試員扔有必要進行檢查,稱爲次邊界條件,或者內部邊界條件。

軟件中2的冪有範圍或值,是作爲邊界條件的重要數據。
另一個常用的次邊界是ASCII字符表。

6、另一種看起來很明顯的軟件缺陷來源是當軟件要求輸入時——比如在文本框中——不是沒有輸入正確信息,而是根本沒有輸入任何內容,可能單單按了Enter鍵。這種情況產品說明書常常忽視
7、數據測試的最後一種類型是垃圾數據。這是失效性測試的對象。經過邊界測試、次邊界測試和默認值測試等通過性測試證實軟件能夠工作之後,就該進行垃圾數據測試了。

狀態測試

1、軟件狀態是指軟件當前所處的條件或者模式。
2、軟件測試員必須測試程序的狀態及其轉換。
3、測試軟件的邏輯流程

建立狀態轉換圖。
減少要測試的狀態和轉換的數量。
怎麼進行具體測試。

4.失敗狀態測試

競爭條件和時序混亂。
重複、壓迫和重負。

第六章 檢查代碼

靜態白盒測試:檢查設計和代碼

1、靜態白盒測試是在不執行軟件的條件下有條理地仔細審查軟件設計、體系結構和代碼,從而找出軟件缺陷的過程,有時候稱爲結構化分析。
2、進行靜態白盒測試的首要原因是儘早發現軟件缺陷,以找出動態黑盒測試難以發現或隔離的軟件缺陷。
3、進行靜態白盒測試的另外一個好處是,爲黑盒測試員在接受軟件進行測試時設計和應用測試用例提供思路。
4、檢查代碼——靜態白盒測試——被證實是早期發現軟件缺陷最有效的辦法

正式審查

1、正式審查就是進行靜態白盒測試的過程。
2、正是審查的四個基本要素:

確定問題。
遵守規則。
準備。
編寫報告。

3、同事審查、走查、檢驗。

編程標準和規範實例

標準由4個主要部分組成:

標題。
標準。
解釋說明。
示例。

通用代碼審查清單

數據引用錯誤
數據聲明錯誤
計算錯誤
比較錯誤
控制流程錯誤
子程序參數錯誤
輸入/輸出錯誤
其他檢查

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章