SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
Achieving Zero Defect
 with Agile Methods
  Varokas Panusuwan (Agile66)
   - Bug Day Bangkok 2012 -
Agenda
●   Context
●   TDD
●   QA Role in Agile
●   Continuous Delivery
●   Q&A
About My Team
My Team
●   10 Devs (5+5)
●   2 Product Owner
●   3 QAs
●   Agile !! -- 2 Years from 0
●   Inherited Legacy code
●   Web Application
●   Release Weekly
●   Zero Defect*

                       PMs Love Us !!
     * in TDDed code
Zero Defect
Test Driven Development
Test Driven Development (TDD)
   #1                        #2

                                  <Test 1>
                                  <Test 2>
                                  <Test 3>
                  <Test 1>
                  <Test 2>
                  <Test 3>    Test Failed !!

        Le Write Test




   #3                        #4
                                                  Writing Code
                                  <Test 1>         Like a Sir
                                  <Test 2>
                                  <Test 3>
                 [Code 1]                             Code
                 [Code 2]                            Always
                 [Code 3]         Test Passed!!      Tested


        Le Write Code
TDD == Testable Specification
Story
                                             TDD

          Create Login
          Page
          (1) Email has                      testEmailFormat()
          correct format
          (2) Password                       testPasswordRequired()
          required
          ...
Acceptance
Criteria
              Le Spec                                            Le Test
                                           Automate
                                           Tested
                        #2 fail.
                                   Oh...
                                   setup
                                   wrong
                                                         B****
                                                         PLEASE !!

                 QA                                DEV
[Code 1]
                                                                         [Code 2]
                                                                         [Code 3]


                                                        Req?                Code?


                Interface




                                                                                                      ●    Specific
                                                                                                      ●    Measurable
                                                                                                      ●    Actionable
                                                                                          T           ●    Realistic
                                                                                       EN
                                                                                R EM                  ●    Time-bound
                                                                              UI
                                                                         RE
                                                                           Q                          ●
                                Test

https://github.com/varokas/tdd-examples/blob/master/src/test/java/com/huskycode/stack/StackImplTest.java
Bug




           TDD
                              ? ??
 F***
YEAH!!   Mismatch         Not in Spec
           Spec
TDD == Better Modular Design
    == Easier to Test
QA... U MAD ??


public billing() {
  date = new Date(); //Get Today
  if(date == endOfMonth)
     sendBillToCustomer();
}




              QA
1. Let todayService.getToday == 30
             2. runTest --> billing(todayService)
             3. SUCCESS !!

                        Le Test Code


                  MO                                     K
                       CK                             EA
                                                    TW       Le QA
    Le Dev



public billing(dateService) {
  date = dateService.getToday();
  if(date == endOfMonth)
     sendBillToCustomer();
}
QA Role in Agile Team?
Bug



                          ???
                 Exploratory
                 Testing


  Spec           Not in Spec
Mismatch
Story (Spec) Writing


      SPEC

PM                       #2 Conflict with ...
      (1) HAPPY PATH
      (2) HAPPY PATH


      (3) SAD PATH
DEV   (4) EDGE CASE
      (5) EXCEPTION
        What about ...



                          QA
QA Like a Sir

Agile All The Way
                                 Quality
                                Up Front


1. PM & Dev & QA Write Story
2. QA Review Acceptance Criteria [ TESTs !!! ]
3. Dev implement Story
4. QA Exploratory Test
DONE !!!


                   Regression
                      Test
QA >> Testing
Continuous Delivery
"Responding to Change
 over Following a Plan"
     - Agile Manifesto #4 -




                        http://agilemanifesto.org/
Following Big Plan...

week 1                  Bug in legacy
                        code found !!          H
                                            ANC
week 2                  Need fix in 1    BR                MER
                                                                GE
                        week

              Order Management
                                                   ION
                   System                    ESS
                                        R EGR G
                                            TIN           HOT
                                        TES                     FIX


                                         RELEASE                SCHEDULED
[Release 1]                              PLANNING               DOWNTIME


                                                   REPLAN !!!
              User Management
                   System
                                                                       LL
                                        RE-ESTIMATE                S TA H
                                                                 TE NC
                                                                     A
[Release 2]                                                       BR


              Big Gigantic Module
                System Thingie
                       ..
                       ..
                       ..
Responding to Change                    Weekly
                                                Releases

week 1        View All Orders

week 2
                Add Order
                                                                     Deliver
                                                                     Value
week 3
               Cancel Order                                          Over
                                                                     Time
                    P1 Bug ... Have
                    to fix in 1 week !!
                                                     PM
                                          Fix   Shuffle priorities
                                          Bug   like a sir

  DEV    QA

week 4
              Cancel Order

week 5
               Edit Order

   ...
   ...
One Thing At A Time
Work 1



            Work 2

PM

            Work 3




                     QAs

     Devs
Work 1



            Work 2

PM

            Work 3




                     QAs

     Devs
Code Review / Pair
  Programming
"given enough eyeballs,
 all bugs are shallow"
       - Linus' Law -
Pair Programming == Real time code review




       Does not have to be all the time !!
Better Quality
● Test Harder?
● Test More?
● Don't Change Anything?
Agile == Simplify
● No spec mismatch
● 100% code coverage
● Document always match code
● Automated regression test
● Less bug inducing activities/useless tasks,
  More delivering good quality code.
● "Do the right thing, at the right time"
"The only way to go fast
     is to go well."
         Uncle Bob
Thank you !!
                                       n s?
                                  s tio
                              ue
                            Q
               Agile66:
               www.facebook.com/groups/agile66




Me:
www.facebook.com/varokas
Please:

      Feel free to view and distribute

Use/Modify this slide only under permission
              from the author
Additional Topics
More About Agile ??




           Agile Thailand 2012
               (17/06/2012)
http://agilethailand2k12.eventbrite.com/
TDD == 100% Coverage
Code 1

Test 1


                     Code 2

                        .....
     Test 2
                        .....          YU
              (Le Wild Code appears)   NO TEST?
                         ....
                         ....

     Test 3
                     Code 3




                    Le Code
Incremental Design
Trunk development?
You Ain't Gonna Need It
TDD == Safety Net
Whole Team == reduced bug

Más contenido relacionado

Similar a Achieving Zero Defect with Agile Methods BugDay Bangkok 2012 โดย Varokas Panusuwan (Agile66)

TDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaTDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaEddy Reyes
 
ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)Shashikant Jagtap
 
Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010kensipe
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Peter Kofler
 
Testing is Fun @Confoo.ca 2012
Testing is Fun @Confoo.ca  2012Testing is Fun @Confoo.ca  2012
Testing is Fun @Confoo.ca 2012Gourav Tiwari
 
Test driven development_continuous_integration
Test driven development_continuous_integrationTest driven development_continuous_integration
Test driven development_continuous_integrationhaochenglee
 
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Dharmesh Sheta
 
Take Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentTake Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentBADR
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceJakub Holy
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Rick Hwang
 
Test Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMTest Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMSagar Sane
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dslKnoldus Inc.
 
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid OutagesDeveloping an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid OutagesPascal-Louis Perez
 
김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011devCAT Studio, NEXON
 
Big feature - small sprint
Big feature - small sprint Big feature - small sprint
Big feature - small sprint Igor Goldshmidt
 

Similar a Achieving Zero Defect with Agile Methods BugDay Bangkok 2012 โดย Varokas Panusuwan (Agile66) (20)

TDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and GomegaTDD in Go with Ginkgo and Gomega
TDD in Go with Ginkgo and Gomega
 
ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)
 
Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010Agile - Iteration 0 CodeMash 2010
Agile - Iteration 0 CodeMash 2010
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
 
Oxente BDD
Oxente BDDOxente BDD
Oxente BDD
 
Testing is Fun @Confoo.ca 2012
Testing is Fun @Confoo.ca  2012Testing is Fun @Confoo.ca  2012
Testing is Fun @Confoo.ca 2012
 
Test driven development_continuous_integration
Test driven development_continuous_integrationTest driven development_continuous_integration
Test driven development_continuous_integration
 
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
 
Take Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentTake Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven Development
 
TDD and Getting Paid
TDD and Getting PaidTDD and Getting Paid
TDD and Getting Paid
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World Experience
 
Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214Software Development Process v1.5 - 20121214
Software Development Process v1.5 - 20121214
 
Test Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEMTest Driven Development in CQ5/AEM
Test Driven Development in CQ5/AEM
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
Testing Times
Testing TimesTesting Times
Testing Times
 
Spock pres
Spock presSpock pres
Spock pres
 
Getting started with karate dsl
Getting started with karate dslGetting started with karate dsl
Getting started with karate dsl
 
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid OutagesDeveloping an Immune System — The Hard and Soft Skills required to avoid Outages
Developing an Immune System — The Hard and Soft Skills required to avoid Outages
 
김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011김재석, C++ 프로그래머를 위한 C#, NDC2011
김재석, C++ 프로그래머를 위한 C#, NDC2011
 
Big feature - small sprint
Big feature - small sprint Big feature - small sprint
Big feature - small sprint
 

Más de Prathan Dansakulcharoenkit

QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017Prathan Dansakulcharoenkit
 
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...Prathan Dansakulcharoenkit
 
อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐Prathan Dansakulcharoenkit
 
Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...Prathan Dansakulcharoenkit
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai Prathan Dansakulcharoenkit
 
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อยออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อยPrathan Dansakulcharoenkit
 
Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012Prathan Dansakulcharoenkit
 

Más de Prathan Dansakulcharoenkit (20)

QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
QA Talk in Chiang Mai Community of Practice Meet Up 1/2017
 
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
IMC Monthly Talk: 10 ข้อที่ควรจะต้องทำในการเริ่มต้นนำ Agile for Software Deve...
 
PROJECT MANAGEMENT TRAINING 09-22-2011
PROJECT MANAGEMENT TRAINING 09-22-2011PROJECT MANAGEMENT TRAINING 09-22-2011
PROJECT MANAGEMENT TRAINING 09-22-2011
 
tpse-sprint3r-software-testing-you-know-maybe
tpse-sprint3r-software-testing-you-know-maybetpse-sprint3r-software-testing-you-know-maybe
tpse-sprint3r-software-testing-you-know-maybe
 
SPRINT3R-SWPSDLC2556-CLOSING
SPRINT3R-SWPSDLC2556-CLOSINGSPRINT3R-SWPSDLC2556-CLOSING
SPRINT3R-SWPSDLC2556-CLOSING
 
Introduction to Scrum version 3.1
Introduction to Scrum version 3.1Introduction to Scrum version 3.1
Introduction to Scrum version 3.1
 
SPRINT3R-MY-CITY
SPRINT3R-MY-CITYSPRINT3R-MY-CITY
SPRINT3R-MY-CITY
 
อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐อไจล์ ๑๐๑ รุ่น ๓.๐
อไจล์ ๑๐๑ รุ่น ๓.๐
 
Geek Academy Introduction to Agile
Geek Academy Introduction to AgileGeek Academy Introduction to Agile
Geek Academy Introduction to Agile
 
Sprint3 r agile101-introduction-18052556
Sprint3 r agile101-introduction-18052556Sprint3 r agile101-introduction-18052556
Sprint3 r agile101-introduction-18052556
 
hello-my-name-is-software-testing-v2-pdf
hello-my-name-is-software-testing-v2-pdfhello-my-name-is-software-testing-v2-pdf
hello-my-name-is-software-testing-v2-pdf
 
Opening Session of BugDay Bangkok 2012
Opening Session of BugDay Bangkok 2012Opening Session of BugDay Bangkok 2012
Opening Session of BugDay Bangkok 2012
 
Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012Web Application Security Testing - Aware in BugDay Bangkok 2012
Web Application Security Testing - Aware in BugDay Bangkok 2012
 
The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...The audacity of quality requirement-non functional testing- Aware in BugDay B...
The audacity of quality requirement-non functional testing- Aware in BugDay B...
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012
 
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
Hyper Productivity BugDay Bangkok 2012 - โดย Chokchai Phatharamalai
 
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อยออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
ออกแบบ Test Cases เพื่อทำ Non-Functional Test โดย คุณณรงค์ จันทร์สร้อย
 
Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012Writing Effective Bug Report - BugDay Bangkok 2012
Writing Effective Bug Report - BugDay Bangkok 2012
 
Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012Test Case and User Story - BugDay Bangkok 2012
Test Case and User Story - BugDay Bangkok 2012
 
Data, Information and Analyst
Data, Information and AnalystData, Information and Analyst
Data, Information and Analyst
 

Último

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Último (20)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Achieving Zero Defect with Agile Methods BugDay Bangkok 2012 โดย Varokas Panusuwan (Agile66)

  • 1. Achieving Zero Defect with Agile Methods Varokas Panusuwan (Agile66) - Bug Day Bangkok 2012 -
  • 2. Agenda ● Context ● TDD ● QA Role in Agile ● Continuous Delivery ● Q&A
  • 4.
  • 5. My Team ● 10 Devs (5+5) ● 2 Product Owner ● 3 QAs ● Agile !! -- 2 Years from 0 ● Inherited Legacy code ● Web Application ● Release Weekly ● Zero Defect* PMs Love Us !! * in TDDed code
  • 8. Test Driven Development (TDD) #1 #2 <Test 1> <Test 2> <Test 3> <Test 1> <Test 2> <Test 3> Test Failed !! Le Write Test #3 #4 Writing Code <Test 1> Like a Sir <Test 2> <Test 3> [Code 1] Code [Code 2] Always [Code 3] Test Passed!! Tested Le Write Code
  • 9. TDD == Testable Specification
  • 10. Story TDD Create Login Page (1) Email has testEmailFormat() correct format (2) Password testPasswordRequired() required ... Acceptance Criteria Le Spec Le Test Automate Tested #2 fail. Oh... setup wrong B**** PLEASE !! QA DEV
  • 11. [Code 1] [Code 2] [Code 3] Req? Code? Interface ● Specific ● Measurable ● Actionable T ● Realistic EN R EM ● Time-bound UI RE Q ● Test https://github.com/varokas/tdd-examples/blob/master/src/test/java/com/huskycode/stack/StackImplTest.java
  • 12. Bug TDD ? ?? F*** YEAH!! Mismatch Not in Spec Spec
  • 13. TDD == Better Modular Design == Easier to Test
  • 14. QA... U MAD ?? public billing() { date = new Date(); //Get Today if(date == endOfMonth) sendBillToCustomer(); } QA
  • 15. 1. Let todayService.getToday == 30 2. runTest --> billing(todayService) 3. SUCCESS !! Le Test Code MO K CK EA TW Le QA Le Dev public billing(dateService) { date = dateService.getToday(); if(date == endOfMonth) sendBillToCustomer(); }
  • 16. QA Role in Agile Team?
  • 17. Bug ??? Exploratory Testing Spec Not in Spec Mismatch
  • 18. Story (Spec) Writing SPEC PM #2 Conflict with ... (1) HAPPY PATH (2) HAPPY PATH (3) SAD PATH DEV (4) EDGE CASE (5) EXCEPTION What about ... QA
  • 19. QA Like a Sir Agile All The Way Quality Up Front 1. PM & Dev & QA Write Story 2. QA Review Acceptance Criteria [ TESTs !!! ] 3. Dev implement Story 4. QA Exploratory Test DONE !!! Regression Test
  • 22. "Responding to Change over Following a Plan" - Agile Manifesto #4 - http://agilemanifesto.org/
  • 23. Following Big Plan... week 1 Bug in legacy code found !! H ANC week 2 Need fix in 1 BR MER GE week Order Management ION System ESS R EGR G TIN HOT TES FIX RELEASE SCHEDULED [Release 1] PLANNING DOWNTIME REPLAN !!! User Management System LL RE-ESTIMATE S TA H TE NC A [Release 2] BR Big Gigantic Module System Thingie .. .. ..
  • 24. Responding to Change Weekly Releases week 1 View All Orders week 2 Add Order Deliver Value week 3 Cancel Order Over Time P1 Bug ... Have to fix in 1 week !! PM Fix Shuffle priorities Bug like a sir DEV QA week 4 Cancel Order week 5 Edit Order ... ...
  • 25. One Thing At A Time
  • 26. Work 1 Work 2 PM Work 3 QAs Devs
  • 27. Work 1 Work 2 PM Work 3 QAs Devs
  • 28. Code Review / Pair Programming
  • 29. "given enough eyeballs, all bugs are shallow" - Linus' Law -
  • 30. Pair Programming == Real time code review Does not have to be all the time !!
  • 31. Better Quality ● Test Harder? ● Test More? ● Don't Change Anything?
  • 32. Agile == Simplify ● No spec mismatch ● 100% code coverage ● Document always match code ● Automated regression test ● Less bug inducing activities/useless tasks, More delivering good quality code. ● "Do the right thing, at the right time"
  • 33. "The only way to go fast is to go well." Uncle Bob
  • 34. Thank you !! n s? s tio ue Q Agile66: www.facebook.com/groups/agile66 Me: www.facebook.com/varokas
  • 35. Please: Feel free to view and distribute Use/Modify this slide only under permission from the author
  • 37. More About Agile ?? Agile Thailand 2012 (17/06/2012) http://agilethailand2k12.eventbrite.com/
  • 38. TDD == 100% Coverage
  • 39. Code 1 Test 1 Code 2 ..... Test 2 ..... YU (Le Wild Code appears) NO TEST? .... .... Test 3 Code 3 Le Code
  • 41.
  • 42.
  • 43.
  • 45. You Ain't Gonna Need It
  • 47. Whole Team == reduced bug