SlideShare a Scribd company logo
1 of 23
Download to read offline
Acceptance Test Driven Development
         @kluak110 @sinapam
         proteus-agility.com
             Jun-17, 2012
Imagine there’s no Jira
          It isn’t hard to do
           Just apply ATDD
And Do Continuous Integration Too
     Imagine dev and testers
        Living life in peace
   You may say I am a dreamer
     But I am not the only one
I hope some day you would join us
Defect in the world will be just none
Pam, The CTO
  5-year Agile Evangelist,
 Lead 20+ Agile Projects,
Hardcore Python Developer,




                                        Kulawat, The CEO
                                        5-year Agile Coach,
                                        12-year in Software,
                                          Big5 Consultant,
                                       Agile66.com Founder

                       proteus-agility.com
     Eidos - Agile Software Development Collaboration Tool
                          Agile Training
                         Agile Coaching
                         We are hiring!
http://gojko.net/2010/10/06/top-10-reasons-why-teams-fail-with-atdd/
Objective                                                              Objective

                                                หัวหน้าใหญ่
                   Dev                                                       QA
                   Manager                                                   Manager

      Dev                          Dev
                                                              QA Lead                       QA Lead
      Lead                         Lead


Dev          Dev             Dev          Dev          QA               QA             QA             QA
หัวหน้าใหญ่
                            Dev                                                          QA
                            Manager                                                      Manager

             Dev                            Dev
                                                                          QA Lead                       QA Lead
             Lead                           Lead


       Dev            Dev             Dev            Dev             QA             QA             QA             QA

Team           Team           Team            Team            Team          Team           Team           Team
Member        Member         Member          Member          Member        Member         Member         Member


                                        Self-Managed Scrum Team
                                                                                         ScrumMaster
 เขียน Acceptance Test ก่อน Code
 แค่น้จริงๆ
       ี
 จริงๆนะ


 ปกติ QA ก็ทาอยูแล้ว
                 ่
 DEV ไม่ชนเพราะต้องรอ Acceptance Test ก่อน
          ิ
Before release starts                                      Iteration 0                                                                                                          Iteration n                      Iteration n + 1
                                                       Not Ready for Estimate
                                                                                                                                                                                                  QA close the story once
QA                                                                                                                                                                                                all Acceptance Test are
                                                  QA                                                                                                                                QA                    passed
                                                                                                                                                                                                                                QA
                                                 refine        Story w/                                                                                                          produce




                                                                                  TPM arranges “Release Planning” for DEV & QA to discuss story & estimate
                 PM put use                                                                                                                                                                                                   conduct
                  cases and                       Exit         more XC                                                                                                             Test
                                                                                                                                                                                                                                AT
                                                Criteria                                                                                                                          Scripts
QAL             priority list in
                   PM wiki
                                                                                                                                                                                                       Test
                                                                                                                                                                                                      Scripts

QBA                                               Add more XC instead
                                                  of separated test idea                                                                                           Story w/
                                                                                                                                                                   final XC                     QA produce test
                        BA         Story w/                                                                                                                                                  scripts at least for the
      HLR             break        initial XC                                                                                                                                                   work of the next
                      down
PM                   story &
                                                                                                                                                                                                    iteration
                                                 Story                                                                                                             Estimates
       HLR           kick-off
                                                Priority                                                                                                                                        DEV may start coding but
     Priority        release
                                                                                                                                                                     Story                     should not check it in until
                                                                                                                                                                    Priority                     Test Scripts are run and
BA                                                   Story is in JIRA                                                                                                                                pass on Dev env
                                                  Story Priority in wiki                                                                                            Velocity

                                                                                                                                                                  Release Plan
DL                                                DEV                                                                                                                       In Release Planning,
                                                discuss         Initial                                                                                                      the whole team (or                     DEV
                                                HLD &            HLD                                                                                                       feature team) discuss                               Build
                                                                                                                                                                                                                    code
                                                 Spike                                                                                                                     and estimate if ready.
Dev                                                                                                                                                                         The planning should
                                                                                                                                                                          stop if total estimate is
                                                                                                                                                                          beyond 120% of team
                                                    Not Ready for Estimate
                                                                                                                                                                                   capacity                             ATDD Flow
                                          d1           d2       d3           d4                                                                              d5
                                                                                                                                                                                 จากบริษัทสมมุตว่าอยู่แถวสวนลุมฯ
                                                                                                                                                                                               ิ
 Dev จะว่าง รอ QA
 QA จะรูสกแหม่งๆ อยูดๆกลายเป็ นคนเขียน Requirement
         ้ ึ         ่ ี
 QA จะใช้เวลาเขียน Test นานขึน เพราะกลายเป็ นคนรับผิดชอบ
                              ้
    Requirement!
   Dev จะบ่นว่าทาไม Requirement มันหยุมหยิมไปหมด
   Dev จะรูสกว่าทาไมต้องมาทางาน Test ทังทีตวเองเป็น Dev
            ้ ึ                          ้ ่ ั
   Dev จะคุยกับ QA มากขึน เพราะไม่เข้าใจ Test ทีเขียนมาก
                             ้                   ่
   QA จะคุยกับ Dev มากขึน เพราะไม่รจะเขียน Test ยังไง
                           ้        ู้
จาไม่ได้แล้วว่าเห็นทีไหน น่าจะ NetObjective.com
                     ่
 Dev ชวน QA เข้า Design Session
 Dev เขียน Code ให้ Testable มากขึน หลังจากโดนด่ามาเยอะ
                                   ้
 หา Bug ไม่คอยเจอ
             ่
 เลิกใช้ Bug Tracking … ไม่รจะใช้ทาไม
                             ู้
 QA แทบไม่เหลืองานถึกซ้าซากไม่ใช้สมอง
 QA มีเวลาคิดสร้างสรรค์ Explorative Test
 QA กับ Dev จะคุยกันตลอดเวลา
 ก็ยง ATDD ได้ ดีกว่าไม่ม ี
     ั
 อย่างน้อยก็จะทาให้เกิดการคุยกัน
 แต่จำเป็ นต้องทางานเป็ น iteration และ แบ่งย่อย
  requirement เป็ นหน่วยเล็กๆ เช่น user story เพือให้เกิด
                                                ่
  feedback loop ทีเร็ว  ่
 ดีทสดคือมี Test Automation แบบบ้าคลัง
     ่ี ุ                               ่
 Test กันทังวันคืนด้วย Continuous Integration
             ้
 ATDD, BDD, Specification By Example จะ
  คล้ายๆกัน มีจุดประสงค์เดียวกันคือ Clear Definition-Of-
  Done
 ATDD เหมาะมากกับ Dev Onshore / QA Offshore
  หรือ Distributed Team
 หนังสือ
Demo

More Related Content

More from Kulawat Wongsaroj

KMITL IT - Intro to Agile by Proteus Agility
KMITL IT - Intro to Agile by Proteus AgilityKMITL IT - Intro to Agile by Proteus Agility
KMITL IT - Intro to Agile by Proteus AgilityKulawat Wongsaroj
 
อไจล์คืออัลไล Agile Introduction @Mahidol ICT
อไจล์คืออัลไล Agile Introduction @Mahidol ICTอไจล์คืออัลไล Agile Introduction @Mahidol ICT
อไจล์คืออัลไล Agile Introduction @Mahidol ICTKulawat Wongsaroj
 
Running lean startup with agile 20130810
Running lean startup with agile 20130810Running lean startup with agile 20130810
Running lean startup with agile 20130810Kulawat Wongsaroj
 
Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013
Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013
Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013Kulawat Wongsaroj
 
Confession of an Agile Addict
Confession of an Agile AddictConfession of an Agile Addict
Confession of an Agile AddictKulawat Wongsaroj
 

More from Kulawat Wongsaroj (7)

KMITL IT - Intro to Agile by Proteus Agility
KMITL IT - Intro to Agile by Proteus AgilityKMITL IT - Intro to Agile by Proteus Agility
KMITL IT - Intro to Agile by Proteus Agility
 
อไจล์คืออัลไล Agile Introduction @Mahidol ICT
อไจล์คืออัลไล Agile Introduction @Mahidol ICTอไจล์คืออัลไล Agile Introduction @Mahidol ICT
อไจล์คืออัลไล Agile Introduction @Mahidol ICT
 
Running lean startup with agile 20130810
Running lean startup with agile 20130810Running lean startup with agile 20130810
Running lean startup with agile 20130810
 
Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013
Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013
Eidos Pitch at SeedStarWorld Bangkok - 7 Jun 2013
 
Hunt for early adopter
Hunt for early adopterHunt for early adopter
Hunt for early adopter
 
The Heart Of Agile
The Heart Of AgileThe Heart Of Agile
The Heart Of Agile
 
Confession of an Agile Addict
Confession of an Agile AddictConfession of an Agile Addict
Confession of an Agile Addict
 

ATDD Make Love, Not War @ Agile Thailand

  • 1. Acceptance Test Driven Development @kluak110 @sinapam proteus-agility.com Jun-17, 2012
  • 2. Imagine there’s no Jira It isn’t hard to do Just apply ATDD And Do Continuous Integration Too Imagine dev and testers Living life in peace You may say I am a dreamer But I am not the only one I hope some day you would join us Defect in the world will be just none
  • 3. Pam, The CTO 5-year Agile Evangelist, Lead 20+ Agile Projects, Hardcore Python Developer, Kulawat, The CEO 5-year Agile Coach, 12-year in Software, Big5 Consultant, Agile66.com Founder proteus-agility.com Eidos - Agile Software Development Collaboration Tool Agile Training Agile Coaching We are hiring!
  • 5.
  • 6. Objective Objective หัวหน้าใหญ่ Dev QA Manager Manager Dev Dev QA Lead QA Lead Lead Lead Dev Dev Dev Dev QA QA QA QA
  • 7.
  • 8.
  • 9. หัวหน้าใหญ่ Dev QA Manager Manager Dev Dev QA Lead QA Lead Lead Lead Dev Dev Dev Dev QA QA QA QA Team Team Team Team Team Team Team Team Member Member Member Member Member Member Member Member Self-Managed Scrum Team ScrumMaster
  • 10.
  • 11.
  • 12.  เขียน Acceptance Test ก่อน Code  แค่น้จริงๆ ี  จริงๆนะ  ปกติ QA ก็ทาอยูแล้ว ่  DEV ไม่ชนเพราะต้องรอ Acceptance Test ก่อน ิ
  • 13.
  • 14.
  • 15.
  • 16. Before release starts Iteration 0 Iteration n Iteration n + 1 Not Ready for Estimate QA close the story once QA all Acceptance Test are QA QA passed QA refine Story w/ produce TPM arranges “Release Planning” for DEV & QA to discuss story & estimate PM put use conduct cases and Exit more XC Test AT Criteria Scripts QAL priority list in PM wiki Test Scripts QBA Add more XC instead of separated test idea Story w/ final XC QA produce test BA Story w/ scripts at least for the HLR break initial XC work of the next down PM story & iteration Story Estimates HLR kick-off Priority DEV may start coding but Priority release Story should not check it in until Priority Test Scripts are run and BA Story is in JIRA pass on Dev env Story Priority in wiki Velocity Release Plan DL DEV In Release Planning, discuss Initial the whole team (or DEV HLD & HLD feature team) discuss Build code Spike and estimate if ready. Dev The planning should stop if total estimate is beyond 120% of team Not Ready for Estimate capacity ATDD Flow d1 d2 d3 d4 d5 จากบริษัทสมมุตว่าอยู่แถวสวนลุมฯ ิ
  • 17.  Dev จะว่าง รอ QA  QA จะรูสกแหม่งๆ อยูดๆกลายเป็ นคนเขียน Requirement ้ ึ ่ ี  QA จะใช้เวลาเขียน Test นานขึน เพราะกลายเป็ นคนรับผิดชอบ ้ Requirement!  Dev จะบ่นว่าทาไม Requirement มันหยุมหยิมไปหมด  Dev จะรูสกว่าทาไมต้องมาทางาน Test ทังทีตวเองเป็น Dev ้ ึ ้ ่ ั  Dev จะคุยกับ QA มากขึน เพราะไม่เข้าใจ Test ทีเขียนมาก ้ ่  QA จะคุยกับ Dev มากขึน เพราะไม่รจะเขียน Test ยังไง ้ ู้
  • 19.  Dev ชวน QA เข้า Design Session  Dev เขียน Code ให้ Testable มากขึน หลังจากโดนด่ามาเยอะ ้  หา Bug ไม่คอยเจอ ่  เลิกใช้ Bug Tracking … ไม่รจะใช้ทาไม ู้  QA แทบไม่เหลืองานถึกซ้าซากไม่ใช้สมอง  QA มีเวลาคิดสร้างสรรค์ Explorative Test  QA กับ Dev จะคุยกันตลอดเวลา
  • 20.  ก็ยง ATDD ได้ ดีกว่าไม่ม ี ั  อย่างน้อยก็จะทาให้เกิดการคุยกัน  แต่จำเป็ นต้องทางานเป็ น iteration และ แบ่งย่อย requirement เป็ นหน่วยเล็กๆ เช่น user story เพือให้เกิด ่ feedback loop ทีเร็ว ่  ดีทสดคือมี Test Automation แบบบ้าคลัง ่ี ุ ่  Test กันทังวันคืนด้วย Continuous Integration ้
  • 21.
  • 22.  ATDD, BDD, Specification By Example จะ คล้ายๆกัน มีจุดประสงค์เดียวกันคือ Clear Definition-Of- Done  ATDD เหมาะมากกับ Dev Onshore / QA Offshore หรือ Distributed Team  หนังสือ
  • 23. Demo