跳至內容

系統解決問題的方法:測試

來自華夏公益教科書,開放書籍,開放世界

試卷 1 - ⇑ 系統解決問題的方法 ⇑

← 實現 測試 評估 →


建立完解決方案後,我們需要測試整個系統是否有效。這個過程應該很簡單,因為我們只需要將最終產品與我們在分析階段設定的目標進行比較。有幾種方法可以測試系統,你需要了解所有方法以及可能使用的各種資料型別。

測試計劃

[編輯 | 編輯原始碼]

在專案早期階段,你應該考慮如何測試系統以確保其正常執行。你需要了解並能夠區分三種主要的測試方法。

黑盒測試

[編輯 | 編輯原始碼]
黑盒測試模型

將程式原始碼視為一個黑盒子,你無法訪問它,也不必瞭解它的工作原理。你只需輸入資料,並測試輸出是否符合預期。內部工作機制是未知的,它們在一個黑盒子裡。黑盒測試的例子是,如果你為一款新的遊戲主機遊戲擔任遊戲測試員。你不會參與系統的設計或編碼,你所要做的只是輸入命令,檢視是否能輸出想要的結果。

白盒測試

[編輯 | 編輯原始碼]
白盒測試模型,展示了對程式碼中各種路徑進行測試

在白盒測試中,你瞭解構成程式的編碼結構。你進行的所有測試都將執行程式中的不同路徑,檢查是否輸出了正確的結果。

幹執行測試

[編輯 | 編輯原始碼]

幹執行是在計算機程式設計師腦中進行的計算機程式執行,程式設計師逐行檢查原始碼,並確定執行時程式會做什麼。在理論計算機科學中,幹執行是在腦中對演算法(有時用偽程式碼表示)進行執行,計算機科學家逐行檢查演算法的步驟。在這兩種情況下,幹執行通常藉助於跟蹤表。既然我們在這裡,不妨多練習一下

練習:幹執行測試

完成以下程式碼的跟蹤表

var a <- 5
var b <- 4
var count <- 0
while count < b
  a <- a + a
  count <- count + 1
end while
a b count
5 4

答案

a b count
5 4 0
10 4 1
20 4 2
40 4 3
80 4 4


完成以下程式碼的跟蹤表

array nums() <- {4,2,5,2,1}
var z <- 4
var high <- nums(0)
while z > 0
  if high < nums(z)
    high <- nums(z)
  end if
  z <- z - 1
end while
z high
4 4

答案

z high
4 4
3 4
2 4
1 5
0 5


方法 原始碼可用性 標題文字
黑盒 示例
白盒 可能(需要理解) 示例
幹執行 示例
練習:測試方法

為以下每個場景命名合適的測試方法

  • 你無法訪問原始碼,需要檢查一些輸入是否能產生預期的輸出

答案

黑盒測試,因為你無法訪問程式的內部工作機制

  • 程式碼中某個地方存在錯誤,導致給定輸入產生錯誤的輸出,而你能夠訪問程式碼

答案

幹執行測試,因為你能夠訪問原始碼,這將幫助你找到有問題的程式設計行

對以下演算法進行幹執行測試

典型、錯誤、極端

[編輯 | 編輯原始碼]

我們可以使用三種類型的測試資料。它們是什麼?答案主要在於它們的名稱,讓我們看一下這個例子,有人建立了一箇中學註冊系統,允許學生自行註冊。我們不想讓年齡過小的學生入學,也不想讓年齡過大的學生入學。事實上,我們希望招收 11-16 歲的學生。

  • 一個典型的學生將是 12、13、14 或 15 歲。
  • 一個錯誤(或錯誤)年齡的學生將是 45 歲、6 歲或任何不在允許範圍內的年齡。
  • 一個極端(或邊界)年齡的學生剛入學或即將畢業,他們將是 11 歲或 16 歲。

如果你正在測試包含典型、錯誤和極端資料的資料,請展示這三種資料的測試。有些測試可能只包含典型和錯誤資料,例如,輸入正確密碼可能只包含典型值和錯誤值。有些事情可能只包含典型測試,例如,一個指向下一頁的按鈕是否起作用,或一個計算是否正確。

示例:電子工藝測試資料

想象以下目標被設定

一名球員在一場比賽中獲得的黃牌數量不能超過 2 張
典型:0、1、2(最有可能列出 1)
錯誤:3、-6
極端:0、2

比賽的加時時間不能超過 15 分鐘
典型:0、1 分 45 秒、9 分 23 秒
錯誤:-6、15 分 01 秒
極端:0、15 分 00 秒

球隊的名稱不能超過 20 個字元
典型:Monster United
錯誤:Monster and Dagrington League of Gentlefolk
極端:Moincicestier United(20 個字元!)

練習:測試資料

列出以下內容的典型、錯誤和極端資料

  • 一盒 20 支香菸中當前剩餘的香菸數量

答案

Typical : 5,16,18 

錯誤:21、-7
極端:0 或 20

  • 大學老師的年齡

答案

Typical : 28,56,32

錯誤:16、86
極端:21、68

  • 一個必須採用 <字母><字母><數字><數字> 格式的系統使用者名稱

答案

Typical : GH24

錯誤:G678
極端:AA00、ZZ99

  • 某人生日的日期

答案

Typical : 12/07/1987

錯誤:1987 年 9 月 31 日、1987 年 2 月 31 日
極端:1999 年 12 月 31 日、2001 年 1 月 1 日(這更難指定,可能取決於你允許的年齡範圍)

  • 某人的頭髮顏色

答案

典型:棕色、紅色、黑色
錯誤:腳踏車
極端:n/a(我們不是來評判人的!)

  • 以下計算是否有效:14 * 2

答案

Typical : 28

錯誤:n/a
極端:n/a

  • 一本書的頁數

答案

典型:24、500
錯誤:-9
極端:1(注意沒有上限,假設沒有頁面就沒有書!)

  • 命名 2 月份中的一個日期

答案

典型:23 日、16 日
錯誤:30 日(你也可以在這裡提到閏年)
極端:1 日、28 日或 29 日(取決於閏年)

華夏公益教科書