[心得] 用 PHPUnit 開發體驗II

分類: 軟體測試 作者: suzy

31 七月 2009

這次利用 PHPUnit 開發編碼解碼器... 體驗一下... 我需要 Fu ~~~~

大致的開發過程應該跟大家都差不多, 有為了是否要再細分更多的小 assert function 猶豫了一下, 不過最後還是統統寫在一起.

我的 Encode 規則/步驟 草稿:

1. 濾掉所有不合法的字元,  字串長度若不等於4:  error
2. 把4個字元分別轉成 ASCII code
3. 轉成ASCII code 之後 再檢查要在這個範圍以內: 48-57, 65-90, 97-122
4. 生成檢查碼(第17碼), 規則為四組數字轉為十位元數字相加總和 的 random 其中一個數字. 規則為四組數字轉為十位元數相加總和的最後一個數字
5. 自訂一個 Binary Key, 增加公式的複雜性
6. 將四組數字 "分別"跟 Binary Key 作 XOR 比較
7. 出來的結果 轉成10位元數以後再*檢查碼

範例:

Step1: ABCD
Step 2, 3:  ASCII = 65 66 67 68,
Step 4: SUM: 65 + 66 + 67 + 68 = 266,  Random 從中選一個數字: 6. 最後一個數字:6
Step 5: 自訂 Binary Key: 1010001
Step 6: 1000001 XOR 1010001 = 0010000, 1000010 XOR 1010001 = 0010011, 1000011 XOR 1010001 = 0010010, 1000100 XOR 1010001 = 0010101
Step 7: 0010000 = 16, 19, 18, 21  = [0096] [0114] [0108] [0126] [6]

寫完以上推論並人工算完第一個範例, 確定可行之後開始寫 PHPunit 的 測試程式.

過程中產生了一點疑問:

1. 若我的 output 會變 (因為檢查碼是活的, random 產生的, 也反推的回來), 那麼 PHPUnit 是否有法處理無唯一解的狀況咧??

還請 Jace 指點迷津 🙂

我要留言

關於這裡

這個部落格分享了哇寶在電子商務領域的技術及資訊,希望能讓更多人一起為台灣的網路產業加油。