測試驅動開發是什麼

更新於 發佈於 閱讀時間約 2 分鐘
在軟體開發中,有許多測試的流派,像是 TDD(Test-Driven Development,測試驅動開發)就是其中之一,除此之外還有 BDD(Behavior-Driven Development,行為驅動開發)等等不同方式,根據不同的情境選擇適合的測試方式也會是一個重要的技巧。

測試與規格

從測試方法的名字中可以很輕鬆的了解到,TDD(測試驅動開發)的前提就是先寫測試,然後再去開發我們的系統。要達成這樣的條件,就會需要有明確的規格才能夠實行。
假設我們沒辦法明確的定義出像是「當日用品跟清潔用品一起購買時折扣 10%」的規格時,我們基本上就可以預期測試驅動開發會變得非常難以進行,因為我們無法給出一個詳細的 User Story(使用者故事)並且根據這些資訊推導出所需要的測試案例應該如何撰寫。

先測試的好處

然而,我們可以反過來思考,假設我們希望先進行測試的話,是否應該反向的驗證規格是否有所缺漏。
基於這樣的前提,我們可以將測試驅動開發想像為一個「反思」的技巧,當我們拿到「當日用品跟清潔用品一起購買時折扣 10%」的條件時,是否還需要更多的資訊呢?舉例來說,我們是否需要限定在特定時間折扣、是否有折扣的額度上限等等
當我們釐清規格的時候,大致上也對當下的需求有了更清晰的理解,此時再去根據測試的限制撰寫實際運作的程式,就能夠更好的控制範圍以及減少錯誤。

穩定的發展專案

如同測試的目的所說,測試能夠讓工程師更勇敢的修改,也會在測試逐步完善的過程中減少反覆驗證的成本,逐漸的加速開發。在這樣的狀態下,我們的專案實際上就是穩定發展的,因為人為疏失或者意外造成的影響會逐步地減少。
然而,在不同的情境下使用不同的測試方式依舊還是有必要的。因為 TDD 大多是以「單元」測試為前提,對於產品經理或者專案經理來說是難以直接給出確切的規格。而 BDD(行為驅動開發)可以搭配像是 Cucumber 這類工具,先由工程師設計對應的關鍵字,讓非工程師可以用「描述行為」的方式來定義功能,先進行一個「大方向」的規格定義,再由工程師確認細節夠撰寫「小單元」測試來確保每一個零件都是正常的。

封面圖片使用 UnsplashLauren Sauder 的作品,有想聽的主題可以透過匿名問卷告訴我,想了解專業的技術主題可以到弦而時習之找找靈感。
為什麼會看到廣告
avatar-img
55會員
40內容數
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
蒼時弦也的沙龍 的其他內容
大多數的工程師常常會有一個疑問,就是「測試」應該要怎麼測試才是正確的?在過去,軟體測試大多還是以人工為主,在這幾年逐漸的出現自動化測試之後,實際上我們是不清楚應該要怎麼寫測試。
刷題的時候,我們應該思考的不是「如何回答」而是用科學的方式,根據情境、題目要求進行分析,最後再找出適合的演算法去解決這些問題,同時也可以反思自己是否缺少對某些知識的理解。
很多公司面試確實會去考這些題目,並不是為了知道你是否會解題,更多的是想知道你怎麼思考。在工作中,當我們遇到各種不同類型的問題時,是否能夠根據自身的知識、經驗去探索出最佳的解決方案,大多是面試工程師所看重的一環。
前陣子剛好聽了 AWS(Amazon Web Service,亞馬遜的雲端服務)介紹他們的雲端服務,簡單來說就是從「硬體思維」轉換到「軟體思維」的方式,以軟體方式去思考就可以看作是「雲端」
既然是例外,就表示出現了我們預期以外的事情,就這點而言這個用詞跟翻譯都非常的精確。假設我們認為這段程式執行的時後不應該出現這個情況,那麼它就必須是一個例外。
當時我不會喝酒,畢竟從小對喝酒的印象就不是很好,因此很自然的到吧台點了一杯「可樂」準備來喝。沒想到,調酒師竟然問我「不調嗎?」然而,身為一個乖寶寶學生,當然要拒絕他!
大多數的工程師常常會有一個疑問,就是「測試」應該要怎麼測試才是正確的?在過去,軟體測試大多還是以人工為主,在這幾年逐漸的出現自動化測試之後,實際上我們是不清楚應該要怎麼寫測試。
刷題的時候,我們應該思考的不是「如何回答」而是用科學的方式,根據情境、題目要求進行分析,最後再找出適合的演算法去解決這些問題,同時也可以反思自己是否缺少對某些知識的理解。
很多公司面試確實會去考這些題目,並不是為了知道你是否會解題,更多的是想知道你怎麼思考。在工作中,當我們遇到各種不同類型的問題時,是否能夠根據自身的知識、經驗去探索出最佳的解決方案,大多是面試工程師所看重的一環。
前陣子剛好聽了 AWS(Amazon Web Service,亞馬遜的雲端服務)介紹他們的雲端服務,簡單來說就是從「硬體思維」轉換到「軟體思維」的方式,以軟體方式去思考就可以看作是「雲端」
既然是例外,就表示出現了我們預期以外的事情,就這點而言這個用詞跟翻譯都非常的精確。假設我們認為這段程式執行的時後不應該出現這個情況,那麼它就必須是一個例外。
當時我不會喝酒,畢竟從小對喝酒的印象就不是很好,因此很自然的到吧台點了一杯「可樂」準備來喝。沒想到,調酒師竟然問我「不調嗎?」然而,身為一個乖寶寶學生,當然要拒絕他!
你可能也想看
Google News 追蹤
在股票市場中,投資者經常使用各種技術分析工具來輔助決策,而移動平均線(Moving Average, MA)無疑是其中最重要且最常用的一種。它不僅能幫助投資者更好地理解市場趨勢,還能提供買賣信號,從而提升投資策略的有效性。本篇文章將深入探討移動平均線的基本概念、常見類型,以及如何將它應用於股票投資中
Thumbnail
測試對於構建複雜的 Vue 應用至關重要,因為它能防止回歸並鼓勵將應用拆分為可測試的模組。我們介紹了測試的基本術語和推薦的工具,包括單元測試、組件測試和端對端測試。建議越早開始測試,避免隨著時間推移而增加的相依性。單元測試專注於函數和邏輯的正確性,而組件測試則驗證 UI 元素的行為與交互。
Thumbnail
單元測試為重構提供了安全防線,確保程式碼在修改後仍能正常運作。透過撰寫測試,我們能夠提高程式碼品質、預防回歸錯誤,並在重構過程中更具信心。測試的過程不僅幫助找出錯誤,也促使我們深入思考系統設計,從而優化整體架構。
Thumbnail
單元測試不僅能發現錯誤,更是提升開發技能的關鍵工具。Laravel 提供強大的測試框架,讓我們可以輕鬆撰寫測試。建立測試資料庫、撰寫測試方法、使用 Factory 生成測試資料,能確保程式碼穩定,並幫助開發者在修改與重構中更有信心。持續撰寫測試能提高程式碼品質,並讓開發過程更有條理與安全感。
Thumbnail
台灣股市下週會怎麼走?降息後的資金回流能否帶動指數突破?AI與半導體是否仍是投資焦點?震盪格局中該如何布局? 用3分鐘告訴您本週台股趨勢預測,我們深入分析國際大事件對台股的影響,提供最精準的操作建議,幫您在市場迷茫中找到方向,穩健掌握投資機會。忙碌的您,再也不必擔心錯過關鍵資訊!
Thumbnail
台股在上週意外收復半年線,並呈現連續反彈的強勢格局,收於21759點。雖然成交量縮減至3000億以下,顯示市場觀望情緒濃厚,但在聯準會(Fed)即將召開的FOMC會議之前,投資人仍抱持期待。未來一週的重點將圍繞在聯準會的利率決策、美國科技股表現,以及AI產業的長線發展。
Thumbnail
PDCA循環是一種有效的管理方法,透過計劃(Plan)、執行(Do)、檢查(Check)與行動(Act)四個步驟,促進企業流程與產品品質的持續提升。這一管理理念強調選擇與努力相互依賴,共同驅動成果。
Thumbnail
什麼是MD測評? MD測評是一種用於評估個人和團隊驅動力的工具,通過問卷測量成就、權力、協作和安全感等驅動因素。最早在荷蘭開發,旨在幫助領導者理解管理風格及其對團隊的影響。MD測評與MBTI、DISC等工具不同,專注於驅動力分析,幫助管理者在團隊建設中做出更有針對性的決策。有助於提升團隊協作效能。
Thumbnail
美國運動醫學會 (American College of Sports Medicine, ACSM) 是全球運動與健康的指標學會之一,去年底,他們預測了 2024 年的運動產業趨勢,內容涵蓋廣泛,總共有 20 項。 總結來說,2024 年穿戴式裝置仍然是首要指標,除了經濟層面外,社會支持是開始運
在股票市場中,投資者經常使用各種技術分析工具來輔助決策,而移動平均線(Moving Average, MA)無疑是其中最重要且最常用的一種。它不僅能幫助投資者更好地理解市場趨勢,還能提供買賣信號,從而提升投資策略的有效性。本篇文章將深入探討移動平均線的基本概念、常見類型,以及如何將它應用於股票投資中
Thumbnail
測試對於構建複雜的 Vue 應用至關重要,因為它能防止回歸並鼓勵將應用拆分為可測試的模組。我們介紹了測試的基本術語和推薦的工具,包括單元測試、組件測試和端對端測試。建議越早開始測試,避免隨著時間推移而增加的相依性。單元測試專注於函數和邏輯的正確性,而組件測試則驗證 UI 元素的行為與交互。
Thumbnail
單元測試為重構提供了安全防線,確保程式碼在修改後仍能正常運作。透過撰寫測試,我們能夠提高程式碼品質、預防回歸錯誤,並在重構過程中更具信心。測試的過程不僅幫助找出錯誤,也促使我們深入思考系統設計,從而優化整體架構。
Thumbnail
單元測試不僅能發現錯誤,更是提升開發技能的關鍵工具。Laravel 提供強大的測試框架,讓我們可以輕鬆撰寫測試。建立測試資料庫、撰寫測試方法、使用 Factory 生成測試資料,能確保程式碼穩定,並幫助開發者在修改與重構中更有信心。持續撰寫測試能提高程式碼品質,並讓開發過程更有條理與安全感。
Thumbnail
台灣股市下週會怎麼走?降息後的資金回流能否帶動指數突破?AI與半導體是否仍是投資焦點?震盪格局中該如何布局? 用3分鐘告訴您本週台股趨勢預測,我們深入分析國際大事件對台股的影響,提供最精準的操作建議,幫您在市場迷茫中找到方向,穩健掌握投資機會。忙碌的您,再也不必擔心錯過關鍵資訊!
Thumbnail
台股在上週意外收復半年線,並呈現連續反彈的強勢格局,收於21759點。雖然成交量縮減至3000億以下,顯示市場觀望情緒濃厚,但在聯準會(Fed)即將召開的FOMC會議之前,投資人仍抱持期待。未來一週的重點將圍繞在聯準會的利率決策、美國科技股表現,以及AI產業的長線發展。
Thumbnail
PDCA循環是一種有效的管理方法,透過計劃(Plan)、執行(Do)、檢查(Check)與行動(Act)四個步驟,促進企業流程與產品品質的持續提升。這一管理理念強調選擇與努力相互依賴,共同驅動成果。
Thumbnail
什麼是MD測評? MD測評是一種用於評估個人和團隊驅動力的工具,通過問卷測量成就、權力、協作和安全感等驅動因素。最早在荷蘭開發,旨在幫助領導者理解管理風格及其對團隊的影響。MD測評與MBTI、DISC等工具不同,專注於驅動力分析,幫助管理者在團隊建設中做出更有針對性的決策。有助於提升團隊協作效能。
Thumbnail
美國運動醫學會 (American College of Sports Medicine, ACSM) 是全球運動與健康的指標學會之一,去年底,他們預測了 2024 年的運動產業趨勢,內容涵蓋廣泛,總共有 20 項。 總結來說,2024 年穿戴式裝置仍然是首要指標,除了經濟層面外,社會支持是開始運