| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 測試人員 | ||||||||||||||||||||||||
2 | 測試表版本 | 202108211943 | ptt-backend 版本 | v0.9.0 | 通過 | 28 | 45.16129032 | ||||||||||||||||||
3 | 測試時間 | go-bbs 版本(選) | v0.11.0 | 失敗 | 22 | 35.48387097 | |||||||||||||||||||
4 | 測試環境 golang 版本 | v1.16.6 | 未測試 | 12 | 19.35483871 | ||||||||||||||||||||
5 | 對應文件版本 | Draft 21 | 測試環境作業系統版本 | macOS 11.5.1 20G80 | 62 | ||||||||||||||||||||
6 | 文件連結 | https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k/edit | 使用測試集 | bbs_backup_1626627835.tar.xz | 預設使用的帳號密碼 | ||||||||||||||||||||
7 | 測試 | ||||||||||||||||||||||||
8 | Section | Test Case | 參數 | 結果 | 觀察 | ||||||||||||||||||||
9 | Section 1 登入 | ||||||||||||||||||||||||
10 | 測試 /v1/token 這個 Endpoint | ||||||||||||||||||||||||
11 | C1-1-1 | 輸入正確的帳號密碼以 /v1/token 登入系統應該要取得 access token 參數 | -d username=SYSOP -d password=123123 | Pass | 出現Log postToken parse form err: %!w(<nil>) | ||||||||||||||||||||
12 | C1-1-2 | 輸入錯誤的帳號密碼登入系統不應該取得 access token 參數,同時要出現錯誤訊息 | -d username=SYSOP -d password=1231234 | Pass | 出現Log postToken parse form err: %!w(<nil>) | ||||||||||||||||||||
13 | C1-1-3 | 未輸入帳號或密碼登入系統,不應取得 access token 參數,同時要出現錯誤訊息 | Pass | 出現Log postToken parse form err: %!w(<nil>) | |||||||||||||||||||||
14 | |||||||||||||||||||||||||
15 | 測試 /v1/register 這個 Endpoint | ||||||||||||||||||||||||
16 | C1-2-1 | 在沒有 user01 的狀況下以 POST /v1/register 註冊帳號要能註冊成功並且取得 Access Token | -d username=user01 -d password=pass01 | Failed | path /v1/register not found | ||||||||||||||||||||
17 | C1-2-2 | 已經註冊過 user01 的狀況下以 POST /v1/register 註冊帳號應該要跳出錯誤 | -d username=user01 -d password=pass01 | N/A | |||||||||||||||||||||
18 | C1-2-3 | 在註冊 user01後可以用 user01 登入 | N/A | ||||||||||||||||||||||
19 | C1-2-4 | 參數 username 的字元若不在 /[a-zA-Z0-9]/ 內應該要跳出錯誤 | N/A | ||||||||||||||||||||||
20 | C1-2-5 | 參數 username 過長(超過13個字元)應該要跳出錯誤 | N/A | ||||||||||||||||||||||
21 | |||||||||||||||||||||||||
22 | 測試 /v1/register/precheck 這個Endpoint | ||||||||||||||||||||||||
23 | C1-3-1 | 在沒有註冊過 user01 的狀況下輸入 GET /v1/register/precheck?type=username&value=user01 應該要回應 available | Failed | path /v1/register/precheck not found | |||||||||||||||||||||
24 | C1-3-2 | 輸入 GET /v1/register/precheck?type=username&value=SYSOP 應該要回應 forbidden | N/A | ||||||||||||||||||||||
25 | C1-3-3 | 輸入 GET /v1/register/precheck?type=username&value=sysop 應該要回應 forbidden | N/A | ||||||||||||||||||||||
26 | C1-3-4 | 在註冊過 user01 的狀況下輸入 GET /v1/register/precheck?type=username&value=user01 應該要回應 forbidden | N/A | ||||||||||||||||||||||
27 | |||||||||||||||||||||||||
28 | 測試 /v1/users/{{user_id}}/register-form | ||||||||||||||||||||||||
29 | C1-4-1 | 在剛註冊完成時 GET /v1/users/{{自己的ID}}/register-form 應該要是空的 | Failed | path /v1/users/users01/register-form not found | |||||||||||||||||||||
30 | C1-4-2 | 在註冊後傳送 POST /v1/users/{{自己的ID}}/register-form type=regform value={"真實姓名": "王大明"} 後GET register-form 應該要看到資訊 | N/A | ||||||||||||||||||||||
31 | |||||||||||||||||||||||||
32 | Section 2 使用者資料 | ||||||||||||||||||||||||
33 | 測試 /v1/users/{{user_id}}/information 這個 Endpoint | ||||||||||||||||||||||||
34 | C2-1-1 | 取得 Access Token �後 GET /v1/users/SYSOP/information 應該要能夠取得 SYSOP 的資料,其中要有上次登入IP | Pass | 上次登入IP、IPv4、登入時間沒有被更新。 上次登入國家回傳空字串。 郵件描述回傳空字串。 | |||||||||||||||||||||
35 | C2-1-2 | 取得 Access Token �後 GET /v1/users/NOTEXIST/information 不應該取得任何人的資料,回應的 JSON 要有 error 欄位 | Pass | ||||||||||||||||||||||
36 | C2-1-3 | 不放入 Access Token 的時候 GET /v1/users/SYSOP/information 不應該取得任何人的資料,回應的 JSON 要有 error 欄位 | Pass | ||||||||||||||||||||||
37 | C2-1-4 | 取得 Access Token 後 GET /v1/users/{{自己的ID}}/information 應該取得自己的使用者資料,其中金錢數量應該能顯示正確數值 | Pass | ||||||||||||||||||||||
38 | C2-1-5 | 使用 SYSOP 的 Access Token 登入�後 GET /v1/users/SYSOP/information 應該要能夠取得 SYSOP 的資料,其中登入時間應該要是今天 | Failed | 登入時間不是今天,停留在 Telnet 版本的登入時間 | Pb#257 | ||||||||||||||||||||
39 | |||||||||||||||||||||||||
40 | 測試 /v1/users/{{user_id}}/preferences 這個 Endpoint | ||||||||||||||||||||||||
41 | C2-2-1 | 使用非 SYSOP 帳號取得 Access Token 後 GET /v1/users/SYSOP/preferences 不應該取得任何資料,回應的 JSON 要有 error 欄位 | Pass | ||||||||||||||||||||||
42 | C2-2-2 | 取得 Access Token 後 GET /v1/users/{{自己的ID}}/preferences 應該要取得自己的資料 | Pass | ||||||||||||||||||||||
43 | |||||||||||||||||||||||||
44 | 測試 /v1/users/{{user_id}}/favorites 這個 Endpoint | ||||||||||||||||||||||||
45 | C2-3-1 | 取得 Access Token 後在不新增任何最愛項目的情況 GET /v1/users/{{自己的ID}}/favorites 應該要看到 data 和 items 項目,其中items 應該要是空陣列 | Pass | ||||||||||||||||||||||
46 | C2-3-2 | 新增了一條分隔線後,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 line 的元素 | -d action=add_favorite -d type=line | Failed | 新增似乎沒有生效, pichu3 原本一無所有, 執行後仍然一無所有。 | Pb#288 | |||||||||||||||||||
47 | C2-3-3 | 新增一個資料夾後,在只有一個資料夾時,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 folder 的元素 | -d action=add_favorite -d type=folder --data-urlencode title=test | Failed | 新增似乎沒有生效, pichu3 原本一無所有, 執行後仍然一無所有。 | Pb#288 | |||||||||||||||||||
48 | C2-3-4 | 新增一個看板後,在只有一個看板時,取得 Access Token 後 GET /v1/users/{{自己的ID}}/favorites 應該要看到 items 裡面有一個 type 為 board 的元素 | -d action=add_favorite -d type=board -d board_id=SYSOP | Failed | 新增似乎沒有生效, pichu3 原本一無所有, 執行後仍然一無所有。 | Pb#288 | |||||||||||||||||||
49 | |||||||||||||||||||||||||
50 | 測試 /v1/users/{{user_id}}/mails | ||||||||||||||||||||||||
51 | C2-4-1 | ||||||||||||||||||||||||
52 | |||||||||||||||||||||||||
53 | 測試 /v1/users/{{user_id}}/articles | ||||||||||||||||||||||||
54 | C2-5-1 | 不放入 Access Token 的情況下 GET /v1/users/SYSOP/articles 不應該看到任何文章,應該要看到 error 元素 | Pass | ||||||||||||||||||||||
55 | C2-5-2 | 放入 Access Token 之後, GET /v1/users/SYSOP/articles 應該看到 SYSOP 曾經發過的文章 | Pass | aid、board_id、post_date以及 url 回傳空字串 | |||||||||||||||||||||
56 | C2-5-3 | 取得回來的列表要能正確看到看板以及發文日期 (post_date) | Failed | post_date 為空字串 | Pb#259 | ||||||||||||||||||||
57 | |||||||||||||||||||||||||
58 | 測試 /v1/users/{{user_id}}/comments | ||||||||||||||||||||||||
59 | C2-6-1 | 不放入 Access Token 的情況下 GET /v1/users/SYSOP/comments 不應該看到任何文章,應該要看到 error 元素 | Pass | ||||||||||||||||||||||
60 | C2-6-2 | 放入 Access Token 之後, GET /v1/users/SYSOP/comments 應該看到 SYSOP 曾經留言過的文章 | Pass | ||||||||||||||||||||||
61 | |||||||||||||||||||||||||
62 | 測試 /v1/users/{{user_id}}/drafts/{{draft_id}} | ||||||||||||||||||||||||
63 | C2-7-1 | 不放入 Access Token 的情況下 GET /v1/users/SYSOP/drafts/0 不應該看到任何資料,應該要看到 error | Pass | 錯誤內容現為 get user draft permission error : get user id from token failed: token contains an invalid number of segments 是否比照顯示 no permission 即可? | |||||||||||||||||||||
64 | C2-7-2 | 放入 Access Token 之後,在沒有任何草稿的情況下 GET /v1/users/{{自己的ID}}/drafts/0 不應該看到任何資料 | Pass | ||||||||||||||||||||||
65 | C2-7-3 | 放入非 SYSOP 的 Access Token 之後, POST /v1/users/SYSOP/drafts/0 不應該成功,應該要看到 error | Pass | 錯誤內容現為 get user draft permission error : get user id from token failed: token contains an invalid number of segments 是否比照顯示 no permission 即可? | |||||||||||||||||||||
66 | C2-7-4 | 放入 Access Token 之後, POST /v1/users/{{自己的ID}}/drafts/0 (123 的 base64編碼) 應該要成功 | -d action=update_draft --data-urlencode raw=MTIzC== | Failed | HTTP/1.1 400 Bad Request 沒有錯誤訊息 伺服器端錯誤訊息為 failed to decode raw text: illegal base64 data at input byte 5 | ||||||||||||||||||||
67 | C2-7-5 | 放入 Access Token 之後,設定 draft 0 為 123 後, GET /v1/users/{{自己的ID}}/drafts/0 應該要看到 raw 有 MTIzC== (123 的 base64 編碼) | N/A | ||||||||||||||||||||||
68 | C2-7-6 | 放入 Access Token 之後,設定 draft 0 為 「中文」(0xa4a4a4e5) 後, GET /v1/users/{{自己的ID}}/drafts/0 應該要看到 raw 有 「pKSk5Q==」 | -d action=update_draft --data-urlencode raw=pKSk5Q== | Failed | HTTP/1.1 400 Bad Request 沒有錯誤訊息 伺服器端錯誤訊息為 failed to decode raw text: illegal base64 data at input byte 5 | ||||||||||||||||||||
69 | C2-7-7 | 放入 Access Token 之後,設定 draft 0 為 123 後 存取 draft 1 不應該看到任何資料 | Failed | HTTP/1.1 400 Bad Request 沒有錯誤訊息 伺服器端錯誤訊息為 failed to decode raw text: illegal base64 data at input byte 5 | |||||||||||||||||||||
70 | C2-7-8 | 放入 Access Token 之後,設定 draft 0 為 123 後 POST /v1/users/{{自己的ID}}/draft/0 刪除草稿後存取 draft 0 不應該看到任何資料 | -d action=delete_draft | N/A | |||||||||||||||||||||
71 | |||||||||||||||||||||||||
72 | Section 3 看板部分 | ||||||||||||||||||||||||
73 | 測試 /v1/boards 這個 Endpoint | ||||||||||||||||||||||||
74 | C3-1-1 | 放入 Access Token 之後, GET /v1/boards 可以看到 SYSOP 板 | Pass | ||||||||||||||||||||||
75 | C3-1-2 | 以 SYSOP 帳號登入之後, POST /v1/boards 後取得看板列表可以看到 testboard01 看板 | -d board_id=testboard01 --data-urlencode title=TestBoard | Failed | new board TestBoard failed | ||||||||||||||||||||
76 | C3-1-3 | GET /v1/boards 看到的 ptt_app 版應該要顯示 SYSOP 為版主,沒有版主的看板,"moderators" 應該要為空陣列 | Pass | ||||||||||||||||||||||
77 | |||||||||||||||||||||||||
78 | 測試 /v1/boards/{{board_id}}/information 這個 Endpoint | ||||||||||||||||||||||||
79 | C3-2-1 | 放入 Access Token 之後, GET /v1/boards/SYSOP/information 可以看到 SYSOP 看板的看板資訊 | Pass | ||||||||||||||||||||||
80 | C3-2-2 | 沒有放入Access Token 的時候,GET /v1/boards/SYSOP/information 不應該看到看板資訊,要回傳 error | Pass | 錯誤內容現為 get user draft permission error : get user id from token failed: token contains an invalid number of segments 是否比照顯示 no permission 即可? | |||||||||||||||||||||
81 | C3-2-3 | 成功取回 /v1/boards/ptt_app/information 後,應該要在moderators 看到 SYSOP 為版主 | Pass | ||||||||||||||||||||||
82 | |||||||||||||||||||||||||
83 | 測試 /v1/boards/{{board_id}}/settings 這個 Endpoint | ||||||||||||||||||||||||
84 | C3-3-1 | 放入 Access Token 之後, GET /v1/boards/SYSOP/settings 可以看到 SYSOP 看板的看板設定 | Pass | ||||||||||||||||||||||
85 | |||||||||||||||||||||||||
86 | 測試 /v1/classes/{{class_id}} 這個 Endpoint | ||||||||||||||||||||||||
87 | C3-4-1 | 放入 Access Token 之後, GET /v1/classes/1 要返回分類主目錄 | Failed | 非主目錄的分類ID不應該回傳 1 | |||||||||||||||||||||
88 | C3-4-2 | 放入 Access Token 之後, GET /v1/classes/-1 不應返回東西,應該出現 error | Pass | ||||||||||||||||||||||
89 | |||||||||||||||||||||||||
90 | Section 4 熱門看板部分 | ||||||||||||||||||||||||
91 | 測試 /v1/popular-boards 這個 Endpoint | ||||||||||||||||||||||||
92 | C4-1-1 | 在不放入Access Token 的情況下 GET /v1/popular-boards 應該出現熱門看板列表,上限為 100 個看板 | Failed | 熱門看板中出現了不是看板的分類 | Pb#277 | ||||||||||||||||||||
93 | |||||||||||||||||||||||||
94 | Section 5 文章列表部分 | ||||||||||||||||||||||||
95 | 測試 /v1/boards/{{board_id}}/articles 這個 Endpoint | ||||||||||||||||||||||||
96 | C5-1-1 | 在不放入 Access Token 的情況下 GET /v1/boards/SYSOP/articles 不應該出現文章列表,應該出現 error | Pass | user don't have permission for read board SYSOP 文法怪怪的 | |||||||||||||||||||||
97 | C5-1-2 | 在放入一般使用者的 Access Token 的情況下 GET /v1/boards/bm_only/articles (例如 SECURITY )不應該出現文章列表,因為這是版主以上才能看到的版,應該出現 error | Pass | ||||||||||||||||||||||
98 | C5-1-3 | 在放入 Access Token 的情況下在 GET /v1/boards/test/articles 搜尋推文 recommend_count_gt 2 應該要出現「來測試看看轉錄看板文章」這篇文章 | Failed | 連推文數小於標準的文章也出現了 | Pb#279 | ||||||||||||||||||||
99 | C5-1-4 | 在放入 Access Token 的情況下 POST /v1/boards/SYSOP/articles 後應該要在看板列表中看到這篇文章 | -d action=add_article --data-urlencode title=Test --data-urlencode article=Test | Pass | modified_time 異常,出現 2042-07-14 | ||||||||||||||||||||
100 | C5-1-5 | 在放入 Access Token 的情況下以中文 POST /v1/boards/SYSOP/articles 後應該要在看板列表中看到這篇文章,輸入參數為中文,文章回傳為Big-5 | -d action=add_article --data-urlencode title=中文 --data-urlencode article=中文 | Pass | modified_time 異常,出現 2042-07-14 |