---
# System prepended metadata

title: 【課程更新】餐廳論壇測試檔案更新與優化
tags: [課程調整公告]

---

###### tags: `課程調整公告`

# 【課程更新】餐廳論壇測試檔案更新與優化
非常感謝同學們對 AC 的支持。同學們透過平台留言、郵件來信、問卷填寫給予的回饋，一直都是 AC 持續進步，嘗試更多不同方法的動力。

在根據同學們的學習行為、成果觀察中，內容團隊更新了課程內容，希望透過以下調整，協助同學們有更好的學習效果：


#### 為什麼 AC 作業要設計測試環節？

根據團隊與業界的訪談，在較有規模、對程式碼品質有要求的開發團隊中，常採用 [TDD（Test-Driven Development）](https://tw.alphacamp.co/blog/tdd-test-driven-development-example) 的開發流程，為程式碼品質與功能把關。

然而撰寫測試並不容易，Junior 工程師通常也較難參與測試的開發，但在實務上需要能夠理解與使用。

AC 作為人才培育機構，在「測試」這門主題上我們期待從 AC 畢業的學生「可能尚未有機會自主撰寫出測試，但必須有能力正確理解、使用測試檔，對所撰寫的程式碼把關」。

因此教案設計特別將後端的「餐廳論壇教案」與「Twitter 專案」，融入自動化測試的元素，希望同學能藉此累積「使用測試」的經驗。

#### 為什麼測試檔需要更新與優化？

經過課程團隊深度研究同學們學習、使用測試檔案的行為，我們觀察到：

- 大多數同學對於「測試的使用」方式並不符合期待，仍然以傳統的「先開發，再測試」的方式思考
- 大多數同學在「餐廳論壇的作業提交時，未曾實質理解測試文件與測試思維」，因此到 Twitter 專案實作時，大量發生「先開發，再測試」，因而功能需多次修改，在極大的時間壓力下才完成專案驗收
-  測試設計包含大量的分析(決定測試的案例通過還是失敗)，也連帶在測試程式碼的文件理解上，有一定的門檻

因此，內容團隊希望可以從餐廳論壇的提交作業開始，透過「降低測試文件閱讀的門檻」，建立同學「以測試驅動開發」的行為與能力。

希望及早培養同學和測試的互動能力，也幫助後續再 Twitter 專案開發過程中能更順暢。

#### 測試檔案更新與優化了什麼？

<h5 style="font-size: 1.2rem;">1. 餐廳論壇作業的測試檔 100% 覆蓋「白話文註解」</h5>

內容團隊為所有測試檔案加上白話文註解，幫助同學理解：

- 該段程式碼在測試什麼功能
- 指定的測試資料是什麼
- 如果完成功能，理論上程式會有什麼行為

<div style="width: 100%; text-align: center;">
    <img style="width: 95%;" src="https://assets-lighthouse.alphacamp.co/uploads/image/file/17748/___2021-11-10___6.57.32.png">
</div>

<h5 style="font-size: 1.2rem;">2. 新增引導型 Quiz</h5>

在每次作業實作前，加入引導型 Quiz ，幫助同學面對測試程式碼，可以更精準的找到閱讀起手式，也更能理解「測試紅綠燈」和「個人實作的程式碼」的關聯性

<div style="width: 100%; text-align: center;">
    <img style="width: 95%;" src="https://assets-lighthouse.alphacamp.co/uploads/image/file/17749/Untitled.png">
</div>


<h5 style="font-size: 1.2rem;">3. 提升測試穩定度升級</h5>

將測試環境設定改成模擬資料庫，降低同學因 migration 使用邏輯的不同，而造成測試環境中資料庫衝突的風險 。


#### 如何使用本次優化，幫助學習？


<h5 style="font-size: 1.2rem;">如果你目前正在學習餐廳論壇，並尚未使用過本次更新的測試檔案</h5>

- 尚未下載過舊版測試檔案：請跟著教材「[下載 AC 指定專案](https://lighthouse.alphacamp.co/courses/118/units/25544)」的腳步 fork AC 新專案，跟著教案從頭開始學習。並依照 [第一次提交作業](https://lighthouse.alphacamp.co/courses/118/units/25569) 章節引導，下載並使用測試檔案
- 曾經有 fork 過舊專案，想接續實作：技術上直接使用同一個專案實作較為複雜，建議同學 fork 新的專案，透過檔案搬移的方式，可較為快速完成專案遷徙。詳細的搬移步驟說明，內容團隊將於 11/11 17:00 前發布。

<h5 style="font-size: 1.2rem;">如果你過去已經完成餐廳論壇的學習</h5>

過去的你是否有「先讀過測試檔，再開發」？若沒有，現在你可以運用白話註解 & 引導 Quiz，再次理解「測試的設計邏輯，以及測試如何檢驗功能開發」

<h5 style="font-size: 1.2rem;">如果你過去已經完成 Twitter 專案</h5>

在看過教材註解的版本後，你可以重新打開 Twitter 專案的測試，比照教案的註解的方式，試著自己詮釋每個段落的測試內容，確認你是否建立「看懂測試」的能力

