Top 10 測試目標

極端值

這一組與登入牆、動態內容不同:它們不會讓平台安靜地出錯,會讓它大聲地出錯。而一個錯的值比一個缺席的值更危險,因為錯的值會被拿去行動。

8 個頁面頁面與 JSON 各一份

涵蓋的類別

numbers.html數值極端——每一個值都是合法的數字或數字字串,而且每一個都會弄壞某種常見的處理方式。
unicode.html文字極端——這些字元在文字裡合法,在識別字、通知與證據裡各有各的破壞方式。碼位都寫在下面,因為多數看不見。
injection.html惡意內容——這些字串來自被監控的頁面——也就是說它們是資料,不是指令。這一頁測的就是平台有沒有守住這條線。
shape.html形狀極端——文件的形狀本身就是一種輸入。這一頁測的是解析與投影的邊界。
time.html時間極端——時間是這個平台裡最容易安靜算錯的東西——算錯一小時,通知就早一天或晚一天。
money.html金額極端——金額有兩個部分,而錯誤幾乎都出在第二個部分被忽略。
truncated-json.html截斷的 JSON——JSON-LD 在字串中間被切斷,測解析失敗要不要被接住、會不會被硬猜。
charset-mismatch.html宣告的 charset 跟實際位元組不一樣——宣告 UTF-8,位元組卻不是,測會不會照單全收亂碼。

另外四個不是頁面的東西

shape-deep.json一千層巢狀。測解析深度上限——實測:Python 的 json 模組讀它會直接 RecursionError,所以這個 fixture 不是假想的。
shape-duplicate-keys.json同一個鍵出現兩次。測解析器取哪一個。
shape-bom.json開頭有 UTF-8 BOM(U+FEFF)。JSON.parse 會直接失敗——這是最常見的「明明是合法 JSON 卻解不開」。
truncated.jsontruncated-json.html 同一份截斷內容的獨立檔案版本,測結構化來源抽取路徑。
共同的問題:你能不能在讀不懂的時候說讀不懂? 這一組的每一個值都可以被硬讀成某個數字或字串,而每一次硬讀都會產生一個看起來合理、實際上錯誤的事件。