什麼是 BDD?
BDD 是 Behavior Driven Development 的縮寫. 它和 TDD, exploratory testing 是 Agile Testing 最重要的三個新的 practice.
很多人都聽過這個名詞, 但是不知道他是什麼
Dan North 在 twitter 上用了這樣一句話來說明
“Using examples at multiple levels to create shared understanding and surface uncertainty to deliver software that matters.”
這裡有提到幾個重點
(1) examples
怎樣解釋需求是最有效的方式, 那就是舉些範例, 由範例來讓大家了解這個需求是怎麼運行的
(2) shared understandling
這個 practice 的重點是要達成共識. 如果你的 BDD 只是工程師自己寫寫自動化, 沒有 PO 或是客戶的加入, 那不能稱為是 BDD, 那只是你多寫了一些測試程式.
(3) surface uncertainty
那些範例需要寫出來? 是什麼地方需要有共同了解? 不是都寫些大家都知道的, 不確定的部分更是我們處理的重點.
(4) deliver software that matters
除了不確定的部分, 有價值的部分更是我們要優先釐清.
這樣有幫助你了解在實施 BDD 時, 什麼地方透別要注意嗎?
如何寫出人人有共識的需求 - 範例描述需求篇
https://kojenchieh.pixnet.net/blog/post/558923197-specbyexamplecourse
報名網址:
https://forms.gle/zqgPBEyCvcEhN6ms5
tdd 範例 在 91 敏捷開發之路 Facebook 的最佳解答
今天終於劃掉待辦清單中,歷時 4 ~ 5 個月的待辦項目啦!(中間大概有40個小待辦)
相關網址:https://tdd.best/book/tdd-by-example/
(天瓏可預購)
翻譯還是很花時間,這讓人挺痛苦的。即使我已經這麼熟悉 TDD,這書翻起來還是吃力。(程式碼是最好懂的語言了)
最難翻的是文字很少又語帶雙關的章節標題,其次是 1980 年代的哏,反而對 Kent Beck 自言自語式的描述感到熟悉,因為我自己也很習慣會這樣寫東西。
最後,我最想感謝的,還是 Kent Beck 同意我的提議,允許我把書裡面每一個範例的演進過程,都放到 GitHub public repository 的 commits 裡面,因為看到全貌很重要,看到差異也很重要,只看書是很難透過自己的腦袋記住這些全貌的。
就如 TDD 最有用的地方之一,就是讓你可以專心專注在單一個東西上,心裡既有全局,又可以專注,又可以安全可靠,又可以從任何一個點重新再來。
當時買了 https://tdd.best 的 domain,就是因為接下來翻譯這本書的任務。我對這本書,心裡是感到有點責任的。就像 2017 年翻譯《單元測試的藝術》一樣,我深信這能為台灣軟體業、開發人員帶來本質上的改善。
這是一本 2002 年的老書,Kent Beck 在寫書時就已經用當年的 Python TDD 出 xUnit 的原型。你沒看錯,用 TDD 來測試驅動開發出它自己的 test framework。
我們,還要落後這個世界現代的開發方法多少年呢?
#KentBeck的測試驅動開發
--
感謝博碩出版社買下版權,感謝編輯 Sam 能讓大家在農曆過年前能買到這本經典鉅作來看。(應該來得及)
tdd 範例 在 91 敏捷開發之路 Facebook 的精選貼文
【#Code4Fun】這次是用 Python 來重構那套運費的範例啦。
心有餘力之餘,就來週更一下 coding for fun 的影片。
影片這裡去:https://www.youtube.com/watch?v=gTEexJCpXcA&feature=youtu.be&ab_channel=JoeyChen
【感想】一看就知道不是寫 Python 出身的,滿滿的 Java/C# 影片。
PyCharm 沒支援 parameter object 就算了,跟 parameter 相關的,都因為其彈性的緣故,也幾乎都沒支援(除非是簡單的值),是一種「其實我可以做,但我怕重構的功能把你本來的東西弄壞了」
沒事,也不是第一次遇到弱型別的語言啦,就是得手動繞一下,多組合一些小細節而已。
啊...我突然發現,我少抽了 product.size() 那一段了,那一段也蠻有趣的,因為 PyCharm 也沒支援 Move method,怎麼繞過去比較省事,要不就留給大家自己摸索了。(我錄影片碰到最大的問題,竟然是硬碟空間不夠了!)
※ 想持續週更,一個是得有時間,另一個是得有人看啊。大家的訂閱就是我的動力啊。
#一起來極速開發
#一起來重構
#一起來kata
#一起來Code4Fun