Skip to content

Latest commit

 

History

History
180 lines (139 loc) · 9.76 KB

File metadata and controls

180 lines (139 loc) · 9.76 KB

AI 日曆助理測試案例

這份文件涵蓋了 AI 日曆助理的核心功能與邊界情境的測試案例。


A. 一般案例 (Happy Path)

  • 案例 A-1 (相對時間)

    • 輸入指令: 明天早上9點開會
    • 預期行為: 成功建立一個在明天早上 9:00-10:00 的「開會」活動。
  • 案例 A-2 (指定日期)

    • 輸入指令: 9月15號下午三點跟John面試
    • 預期行為: 成功建立一個在 9/15 15:00-16:00 的「跟John面試」活動。
  • 案例 A-3 (時間區間)

    • 輸入指令: 週四下午2點到4點的教育訓練
    • 預期行為: 成功建立一個在下個週四 14:00-16:00 的「教育訓練」活動。
  • 案例 A-4 (重複事件)

    • 輸入指令: 每週一早上9點的站立會議
    • 預期行為: AI 應能識別出這是一個重複性活動,但缺少結束條件。系統會主動反問:「好的,活動「站立會議」是一個重複性活動,請問您希望它什麼時候結束? (例如: 直到年底、重複10次、或直到 2025/12/31)」。在使用者回覆結束條件後,系統將整合完整的重複規則,並建立日曆事件。
  • 案例 A-5 (全天事件)

    • 輸入指令: 10月10號國慶日放假
    • 預期行為: 成功建立一個在 10/10全天「國慶日放假」活動。
  • 案例 A-6 (多日事件)

    • 輸入指令: 下週一到下週三出差
    • 預期行為: 成功建立一個從下週一下週三全天「出差」活動。

B. 邊界案例 (Edge Cases)

  • 案例 B-1 (缺少結束時間)

    • 輸入指令: 今天下午4點要去看牙醫
    • 預期行為: AI 應預設活動長度為 1 小時 (16:00-17:00),並在卡片上顯示該時間供您確認。
  • 案例 B-2 (模糊時間)

    • 輸入指令: 週六晚上跟家人吃飯
    • 預期行為: AI 應預設一個合理的晚上時間 (例如 19:00),並在卡片上顯示該時間供您確認。
  • 案例 B-3 (複雜語句)

    • 輸入指令: 對了,別忘了下週五要幫我預約下午兩點的客戶訪談,大概一個半小時
    • 預期行為: AI 應能不受干擾,準確抓取出「客戶訪談」、「下週五」、「14:00-15:30」等關鍵資訊。
  • 案例 B-4 (跨年份)

    • 輸入指令: 明年1月5號員工旅遊
    • 預期行為: AI 應能正確地將年份設定為 2026 年。
  • 案例 B-5 (無明確主旨)

    • 輸入指令: 明天下午三點
    • 預期行為: AI 應能識別出指令中缺少活動主旨,並主動反問:「好的,請問『...』要安排什麼活動呢?」。待使用者回覆活動標題後,系統將整合完整的活動資訊,並接續執行建立日曆事件的流程。

C. 特殊流程測試

  • 案例 C-1 (重複新增)

    • 操作步驟:
      1. 輸入 下週二下午3點開會,並完成新增。
      2. 再次輸入 下週二下午3點開會,並按下「新增」。
    • 預期行為: 第二次新增時,Bot 應回覆一張按鈕卡片,提示「活動已存在」,並附上查看連結。
  • 案例 C-2 (非指令訊息)

    • 操作步驟:
      1. 輸入 你好
      2. 輸入 今天天氣如何?
    • 預期行為: Bot 應保持安靜,不回覆任何訊息。

D. 多日曆情境 (Multi-Calendar Scenarios)

  • 案例 D-1 (選擇單一日曆新增)

    • 前置條件: .env 中已設定 TARGET_CALENDAR_NAME,例如 家庭,工作
    • 輸入指令: 明天下午3點部門會議
    • 預期行為: Bot 應回覆一張按鈕卡片,詢問要將活動加入哪個日曆,卡片上應包含活動標題與時間。
    • 使用者操作: 點擊「工作」按鈕。
    • 預期結果: Bot 在「工作」日曆建立活動,並回覆一張按鈕卡片,顯示成功新增至「工作」日曆,並附上活動連結。
  • 案例 D-2 (選擇全部加入)

    • 前置條件: 同 D-1。
    • 輸入指令: 明天下午3點部門會議
    • 使用者操作: 在多日曆選擇卡片中,點擊「全部加入」按鈕。
    • 預期結果: Bot 應在所有目標日曆 (家庭, 工作) 中建立活動,並回覆一張輪播卡片,內含兩張子卡片,分別顯示成功新增至「家庭」與「工作」日曆,並附上各自的活動連結。
  • 案例 D-3 (分次新增的智慧回覆)

    • 前置條件: 同 D-1。
    • 操作步驟:
      1. 執行一次 案例 D-1,將「部門會議」新增至「工作」日曆。
      2. 再次輸入 明天下午3點部門會議
      3. 在跳出的多日曆選項中,點擊「家庭」按鈕。
    • 預期結果: Bot 在「家庭」日曆建立活動後,應回覆一張輪播卡片,顯示此活動已存在於「工作」與「家庭」兩個日曆中,並附上各自的活動連結。
  • 案例 D-4 (全部加入的智慧回覆)

    • 前置條件: 同 D-1,且「部門會議」已存在於「工作」日曆中。
    • 輸入指令: 明天下午3點部門會議
    • 使用者操作: 在多日曆選擇卡片中,點擊「全部加入」按鈕。
    • 預期結果: Bot 應回覆兩則訊息:
      1. 一則文字訊息,提示「🔍 已存在,故跳過:
  • 工作」。 2. 一張輪播卡片,顯示此活動已存在於「工作」與「家庭」兩個日曆中,並附上各自的活動連結。

E. 活動查詢 (Event Query)

  • 案例 E-1 (查詢特定日期)

    • 輸入指令: 明天有什麼事查詢明天行程
    • 預期行為: Bot 應列出明天所有的日曆活動,包含時間與標題。若無活動,則回覆「您明天沒有安排任何活動」。
  • 案例 E-2 (查詢特定時間範圍)

    • 輸入指令: 下週有什麼活動
    • 預期行為: Bot 應列出下週一至週日的所有活動。
  • 案例 E-3 (查詢特定活動)

    • 輸入指令: 我什麼時候要跟John面試
    • 預期行為: Bot 應找到「跟John面試」的活動,並回覆其日期與時間。

F. 活動修改 (Event Modification)

  • 案例 F-1 (修改活動時間)

    • 前置條件: 已存在一個活動「明天下午3點開會」。
    • 輸入指令: 把明天下午3點的會議改到下午4點
    • 預期行為: Bot 應找到該活動,直接更新活動時間,並回覆包含更新後資訊的成功卡片。
  • 案例 F-2 (修改活動標題)

    • 前置條件: 已存在一個活動「明天下午3點開會」。
    • 輸入指令: 把明天下午3點的會議改成部門同步會議
    • 預期行為: Bot 應找到該活動,直接更新活動標題,並回覆包含更新後資訊的成功卡片。
  • 案例 F-3 (修改地點與備註)

    • 前置條件: 已存在一個活動「明天下午3點開會」。
    • 輸入指令: 修改明天下午3點的會議
    • 預期行為: Bot 回覆一張活動詳情卡片,並提問:「請問您想如何修改這個活動?...若不需要做修改,請輸入「取消」」。
    • 使用者操作: 輸入 地點在301會議室,另外提醒大家要帶筆電
    • 預期結果: Bot 應成功更新活動的地點備註,並回覆包含所有更新後資訊的成功卡片。
  • 案例 F-4 (修改不存在的活動)

    • 輸入指令: 把今天早上9點的讀書會改到10點
    • 預期行為: Bot 應回覆「抱歉,找不到您想修改的活動。」。
  • 案例 F-5 (修改互動流程與取消)

    • 前置條件: 已存在一個活動「明天下午3點開會」。
    • 輸入指令: 修改明天下午3點的會議
    • 預期行為: Bot 回覆一張活動詳情卡片,並提問:「請問您想如何修改這個活動?...若不需要做修改,請輸入「取消」」。
    • 使用者操作: 輸入 取消
    • 預期結果: Bot 回覆「好的,操作已取消。」

G. 活動刪除 (Event Deletion)

  • 案例 G-1 (刪除特定活動)

    • 前置條件: 已存在一個活動「明天下午3點開會」。
    • 輸入指令: 取消明天下午3點的會議
    • 預期行為: Bot 應找到該活動,並詢問使用者是否確認刪除。確認後,刪除活動並回覆成功訊息。
  • 案例 G-2 (刪除不存在的活動)

    • 輸入指令: 刪除今天早上9點的讀書會
    • 預期行為: Bot 應回覆「找不到您指定的活動,請確認活動資訊是否正確」。

H. 衝突檢測 (Conflict Detection)

  • 案例 H-1 (新增時段衝突)

    • 前置條件: 已存在一個活動「明天下午3點到4點開會」。
    • 輸入指令: 明天下午3點半跟客戶吃飯
    • 預期行為: Bot 應檢測到時間衝突,並回覆訊息提示:「該時段已被「開會」佔用 (15:00-16:00),您確定要繼續新增嗎?」,並提供「是/否」的選項。
  • 案例 H-2 (新增時段無衝突)

    • 前置條件: 已存在一個活動「明天下午3點到4點開會」。
    • 輸入指令: 明天下午5點運動
    • 預期行為: Bot 應正常建立活動,無須提示衝突。

I. 輔助指令 (Utility Commands)

  • 案例 I-1 (呼叫功能列表)
    • 輸入指令: 你可以做什麼? (或 功能列表, help 等關鍵字)
    • 預期行為: Bot 應回傳完整的歡迎訊息,內容包含所有主要功能的介紹與範例。