驗證
故意植入 64 個錯誤,自動測試抓到 59 個
另有 1,066 項程式測試、246 項資料庫測試
結果
我們在自己的程式裡故意植入 64 個真實可能發生的錯誤,再跑自動測試:59 個被抓到,其中 54 個在每次更新上線前必跑的測試裡就會被擋下;5 個沒有被抓到。10 月 3 日初次這樣做時,完整測試只抓到 41 個;漏掉的,我們之後逐一補上測試,所以 59 個是補上測試之後、在同一批錯誤上的結果,不是盲測。10 月 15 日上線的版本另跑 1,066 項程式測試與 246 項資料庫測試,都通過;另有 18 項需要連線正式網站、實車錄製檔或其他作業系統的程式測試,這次沒有執行。
我們做了什麼
每個錯誤都是一處小改動,例如把一個條件放寬,或把一個數字的正負號弄反。改動只放在用完就丟的副本裡,不進正式程式;每改一處就跑一次測試,看有沒有測試失敗。
要算「抓到」,抓到它的那個測試必須在有這個錯誤時單獨重跑 3 次都失敗、拿掉錯誤後 2 次都通過;只因電腦太忙才偶爾失敗的測試不算。最初統計是 57 個:另有 2 個其實也有被抓到,是我們的統計工具把名稱裡有空格的測試讀錯了。修正工具、重新確認之後是 59 個。芯況報告 No. 01(9 月)寫的是 58 個;這次是用 10 月 15 日的程式重跑的結果。
資料庫:每次更新前,先在本機把資料庫從零重建,依序套用全部 38 次結構變更,再跑 246 項測試,全部通過才上線(這個做法自 10 月 3 日起)。程式測試另有 1 項已知、與檢測結果無關的問題,這次沒有計入,待修正。
盲測(10 月 3 日):我們先寫下 12 項通過標準並存檔,之後才拿 27 段從沒讀過的行車資料測試(16 台車,其中 15 台的其他行程之前用過)。解讀規則沒有一條在新資料上失效;但事先寫下的 12 項標準,只有 4 項照原樣成立。其餘 8 項:3 項是我們文件裡的精度數字,寫得比資料能支持的更緊;4 項是標準本身的假設錯了,例如假設一台記錄器只裝在一台車上、行程編號照時間排列;1 項落在邊界上。文件已改成資料能支持的範圍;改過的標準是事後才定的,不算成已經通過。
故意植入的 64 個錯誤,測試抓到幾個
資料來源:芯況驗證稽核。
事先寫下的 12 項標準,結果如何
資料來源:芯況驗證稽核。
這代表什麼
測試寫得多,不代表抓得到錯。這兩個做法直接檢查:真的出錯時,測試會不會發現;事先寫下的標準,在沒看過的資料上站不站得住。
證明了什麼/還沒證明
證明了什麼
在這 64 個事先列出的錯誤裡,現有的自動測試擋得下 59 個;盲測的 12 項標準是事先寫下並存檔的,沒通過的 8 項也照實公布。
還沒證明
59 個是補上測試之後的結果:有些測試正是針對這些錯誤寫的,換成沒列過的錯誤,抓到的比例可能較低。只涵蓋我們想得到、事先列出的錯誤。沒抓到的 5 個:4 個是解讀車輛訊息的細節,1 個是快速檢測取用哪一段資料。盲測改過的標準,還沒有在新的資料上重新測過。
範圍
- 樣本
- 64 個事先列出的錯誤;1,066 項程式測試、246 項資料庫測試;盲測 27 段行車資料、16 台車
- 條件
- 芯況自己的程式與測試,在本機的隔離副本執行,不碰正式資料庫;盲測的資料不是我們在台灣自己錄製的
- 日期
- 2026 年 10 月 15 日(盲測 10 月 3 日)
相關紀錄
Tesla, Supercharger and Tesla model names are trademarks of Tesla, Inc. CELLPROOF is not affiliated with Tesla.