iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

如何一步步實踐TDD (測試驅動開發) 系列

TDD(測試驅動開發),一個敏捷開發的技巧,即使不是實行敏捷開發的流程,開發者也能夠利用TDD,提升程式碼品質,如何一步步去學習,實踐並體會TDD的精髓,同時瞭解為何窒礙難行、其不適用之處、以及迷思陷阱,文章主要以PHP為例說明。

鐵人鍊成 | 共 30 篇文章 | 42 人訂閱 訂閱系列文 RSS系列文 團隊好想工作室 v3.0
DAY 1

為什麼想講 TDD

TDD ( Test-driven development ) 是一種寫程式的開發技巧,提倡能為開發者及程式帶來多項好處: 更好的程式結構 程式碼更簡潔...

2019-09-16 ‧ 由 Louis 分享
DAY 2

TDD 範例一:函式 (PHP)

來複習一下前一篇提到的 TDD 步驟: 寫測試: 在寫任何產品程式之前,只先編寫最少量、剛好能運作的自動化測試 寫程式: 編寫最少量、剛好能通過的產品程式...

2019-09-17 ‧ 由 Louis 分享
DAY 3

TDD 的理由

看完上一篇的範例,是不是很簡單呢,一天馬上就學會了 TDD!什麼?你說這樣一個小小的 function,你10秒就寫完了?幹嘛還要用 TDD,結果講了10分鐘。...

2019-09-18 ‧ 由 Louis 分享
DAY 4

TDD 範例二:物件 (PHP)

這個範例讓我們來看看怎麼用 TDD 來寫物件,不過我寫完程式之後才發現都沒看到什麼需要Refactor的地方,有點可惜沒有演示到這部分。 複習 TDD 步驟:...

2019-09-19 ‧ 由 Louis 分享
DAY 5

測試框架 (PHPUnit)

我們可以利用 測試框架 來幫助我們編寫測試,減少重複的程式碼,以及豐富的 Assertion 函式可以在不同狀況下使用。 雖然常用程式語言的原生語法中,大概都有...

2019-09-20 ‧ 由 Louis 分享
DAY 6

TDD 範例三:用 PHPUnit 改寫範例二

來看看用測試框架 PHPUnit 改寫範例二,有什麼差別。 範例二的題目:一個可以計算多人薪水總和的程式。有一個Salary類別,代表一個人的名字與薪水,以及P...

2019-09-21 ‧ 由 Louis 分享
DAY 7

插入曲:關於 Interface 與 public / private

開始寫這個系列之後,討論到一個 TDD 使用時的議題,以及另一個相關的延伸問題,因此來聊聊我目前的看法。 1. TDD 與 定物件的介面 (Interface)...

2019-09-22 ‧ 由 Louis 分享
DAY 8

自動化測試的層級

到目前為止,我們所提到的自動化測試,都是單元測試這個層級,而自動化測試能做的可不只如此,自動化測試金字塔看起來像這樣:          ____      ...

2019-09-23 ‧ 由 Louis 分享
DAY 9

測試覆蓋率 與 PHPUnit 設定檔

今天回到我們的測試框架,關於測試的覆蓋率,之前提過 TDD 能夠帶來高覆蓋率,代表我們的產品程式幾乎都有被自動化測試過,因此提高對於產品執行無誤的信心。 讓我們...

2019-09-24 ‧ 由 Louis 分享
DAY 10

如何在一個環境開始 TDD

前幾篇的範例都是用 PHP 說明,如果你並不是用 PHP 的開發者,可能會直接跳過那幾個部分。 因此今天來整理一下,關於如何在一個語言或環境開始使用 TDD。...

2019-09-25 ‧ 由 Louis 分享