code

2017年11月10日 星期五

Agile Software Development 7 - Testing Practices

Agility achieved thru Testing

agility = speed + quality,而quality只能透過不斷的testing達成。

Code and Tests 這是agile methods核心兩物體。


所有程式都一定要有unit tests (XP)

XP這個宣言是比較嚴格,但不見得是極端的宣言。
伴隨這個宣言就是,所有unit tests要通過才能進入下一個開發 phase。

所以這邊可以使用Lean中的Waste定義:沒有通過unit tests的code基本上就是waste!
這是要極力避免的。

YOU
    SHALL
          NOT
                PASS!!!!!


Test-first Development (XP)

使用tests來取代spec,也被generalize成一種開發方法,稱為test-driven development。


最主要的優點是,等於永遠保持最新的regression tests 定義!
regression test就是過往已經測試過但是failed的tests,開發過程中,一個已經解決的bug通常有機會因為code變動又出現了,所以如果採用test-driven開發的話,基本上等於一直在測試所有過去定義過的tests,也就是可以發現是否發生了failed regression tests。

Bug是沒有測試到的部分 (XP)

bug在test-driven development (TDD)眼中,重新定義成沒有被test cover的部分,所以要fix bug跟開發一個新的function一樣,先寫test!!!!

這其實是相當先進的觀念,我覺得能徹底執行一定很棒。

Root-cause Analysis (XP / Scrum)

這好像沒啥好說的,基本上fix bug本來就該知道root cause不是?

Automating User Acceptance Tests (UAT)

這其實就是automated tests,不過是以UAT 為出發點來寫test cases。這樣也能確保regression tests不會重啟問題。

另一個比較有趣的:可以出版UAT score給team知道,讓大家知道目前版本對過去automated UAT測試的狀態。


沒有留言:

張貼留言