---
# System prepended metadata

title: 探索性測試 vs 傳統腳本測試
tags: [經驗]

---

# 探索性測試 vs 傳統腳本測試
###### tags: `經驗`


#### 探索性測試 vs 腳本測試

- 探索性測試，本質上是一種黑箱測試（Black-box testing）

:::info
意思是你在不了解程式邏輯的情況下，從使用者的角度對你的軟體做各種功能測試

這是一種最貼近使用者的測試方法，能更容易發現使用者可能會遇到的問題
:::


舉個例子，今天你在測試一個跑在Windows筆電上的商用軟體

上班族的使用者行為(user behavior)可能從某層樓搭電梯到另一個樓層的會議室去開會

筆電的狀態會從正常使用 -> 休眠（關上筆電）-> 斷網路(進電梯) -> 重新連線(出電梯) -> 登入(開啟筆電)

在這樣場景下，你的軟體能不能正常運行不Crash，不測試其實沒人知道。

RD對軟體本身的邏輯判斷與功能實作可能想了很多很完整的解決方案

但是對網路狀態與系統狀態的錯誤處理(error handling)不一定都會想得很全面

不過對使用者來說，我就是裝了你們家的產品，出問題我就是要你們修到好（誤）

而相對於探索性測試

- 基於腳本的測試(Scripted test)就是白箱測試 (White-box testing)

:::info
意思是測試有已知的標準答案，驗證過程跟答案是跟著程式邏輯走的。
:::

比如說後端的 /healthcheck API 在服務上線之後

正常情況下戳這隻API，HTTP response都會是200 OK。

那你不論是手動用postman去打或是用簡單的script都可以成功驗證這件事。

或是今天測試一個藏書查詢的網站，輸入一個不存在的藏書編號之後

會跳出查詢到0筆的藏書記錄，且不會跳出其他不相關的藏書在查詢結果等

https://ithelp.ithome.com.tw/articles/10287586
##### 


