SlideShare una empresa de Scribd logo
1 de 25
www.synerzip.com
Test Driven Development
What Works & What Doesn’t
November 5, 2008
Confidential
Today’s Discussion
• Synerzip Introduction
• Agile Development Lifecycle
• Test Driven Development
– Case for TDD & Continuous Integration
– User Acceptance Testing
– Functional Testing
– Unit Testing
– Regression Testing
– Common Tools & Useful Resources
• Q & A
Confidential
Synerzip in a Nut-shell
1. Software development partner for small/mid-sized
technology companies
• Focus: small/mid-sized technology companies
• Deep experience in product development, testing, & deployment
• Handles full software development life cycle
• Technology and industry domain agnostic
2. Actually reduces risk of development/delivery
• Experienced software management team
• Brings in appropriate level of engineering discipline
• Practices Agile development – responsive & disciplined
3. Reduces cost – dual-shore team, 50% cost advantage
4. Offers long term flexibility – allows (facilitates) taking
offshore team captive
Confidential
Our Clients
Confidential
Today’s Discussion
• Synerzip Introduction
• Agile Development Lifecycle
• Test Driven Development
– Case for TDD & Continuous Integration
– User Acceptance Testing
– Functional Testing
– Unit Testing
– Regression Testing
– Common Tools & Useful Resources
• Q & A
Confidential
Agile Development
• Why agile development?
– Due to a dynamic , ever changing business environment;
requirements change.
– Innovation happens when requirements change.
– Agile not only allows but encourages requirements to change.
– Agile is an iterative show and build process. The customer gets to
see some new functionality at the end of each short iteration. Ideas
evolve and new requirements get generated when the customer
sees something working.
– Shorter the iteration closer the compliance with requirements.
• Challenges of agile development
– In a short iteration of 3 weeks if 1 week is required for integration,
testing and deployment then only 2 weeks are left for actual coding
or development work.
– There is an interdependence of TDD and automation.
Confidential
Common Misconception
Confidential
Agile Lifecycle – Iterations & QA
Small
Release
Unit and
Automated
F & R/ UA
Testing
Iteration
Release
Planning
User Stories
Requirements
User
Acceptance
Testing
Test Scenarios
Iteration Plan
Confident
Estimates
Feedback
/Functional
Regression
Testing
Customer Approval
Confidential
Testing Terminology
• Unit testing – testing a code component or class.
– Coverage is measured against lines of code
• Functional testing - testing against required
functionality by going through the same steps that
an end-user will execute.
– Coverage is measured against requirements
• Regression testing – when functional testing is
carried out again after fixing defects to ensure that
no new bugs get introduced.
• User acceptance testing – a subset of functional
test cases that form the basis on which the release
is accepted by the customer.
Confidential
Agile Lifecycle - Roles
Iteration zero Iteration n Final Iteration
Product
Owner
Requirements
analysis
Review of product
demo and changes
User acceptance
testing and sign
off.
Project
Manager
Estimation and
planning
Monitoring and re-
estimation
Monitoring and
release notes
Architect Prototype or POC
design
Designing and code
review
Design documents
Developer Estimation,
understanding
requirements and
coding POC
Writing unit tests and
code. Writing build
automation script
Fixing bugs and
documentation.
QA Writing test cases Testing and some
automation
Filing bugs and
regression testing
Confidential
Today’s Discussion
• Synerzip Introduction
• Agile Development Lifecycle
• Test Driven Development
– Case for TDD & Continuous Integration
– User Acceptance Testing
– Functional Testing
– Unit Testing
– Regression Testing
– Common Tools & Useful Resources
• Q & A
Confidential
What is TDD?
• Test Driven Development (TDD) means
capturing the intent of requirements in the
form of a test case before starting to code
• Test case could be a manual test case or an
automated test script
• Test case could be a functional or a user-
acceptance or a unit test
Confidential
TDD Means More Code?
Use your judgement, e.g. don’t write tests for every getter and setter
Confidential
TDD in Practice
Value of TDD – especially in Agile
• Tests are more explicit expression of requirements
• Earlier defect detection by frequent testing
• Ensures better coverage - don’t end up having
superfluous code, without tests
Challenges – team resistance & reluctance?
• ROI is realized in the long term – in maint phase
• Extra coding effort seems unjustified in the
beginning
• Easier said than done- difficult to implement
• Developer resistance
Confidential
Role of Continuous Integration
• Agile development has its roots in lean
manufacturing. “Stop the line” principle at Toyota is
implemented in software development by making
automated tests a part of the build process.
• The build fails if even one test fails. This reduces
the time-lag between detection of defect and fixing
of defect. Ensures timely corrective action.
• This also ensures that tests are updated to stay in
sync with changing requirements.
Confidential
User Acceptance Testing (FIT)
• What Works
– Wiki based tables are used to express and share
requirements or user stories
– Test fixtures are written only for significant and complex
requirements. Ready made test fixtures are used for
simple requirements
– Subwikis are used to build test suites
• What Doesn’t
– Customer/ product owner doesn’t spend enough time
reviewing the test cases
– Developers spend too much time writing test fixtures
– FIT tables don’t cover unhappy path. A use case can go
wrong in many ways.
Confidential
Manual Functional Testing
• What Works
– Better expression of requirements by insisting on writing the test
cases up front (Note: 70% of defects arise due to faulty
requirements)
– Better understanding of the requirements by the QA staff
– Examples or test data
– QA should be a part of the Product Management/BA team
• What Doesn’t
– No time allocated by the customer and product owner to review the
test cases
– Test cases aren’t updated as new requirements evolve. Need to
make sure QA team and Product Mgmt/BAs are always in sync
– Test cases are at a high level – but difficult to be useful for
generating test data
Confidential
Unit Testing
• What Works
– Write tests first
– Write tests only for the complex methods/units
– No significant or complex code is written unless there is
a unit test already written for it.
• What Doesn’t
– Writing tests later after the code is written.
– Completing the formality of writing unit tests for each
and every method including accessor methods.
– Writing unit tests for legacy code
• Case Study: A customer started TDD practice by writing unit
tests for all the legacy code and ended up testing the tests with
the code.
Confidential
Mechanics of Unit TDD
Add some
code
Confidential
Functional/ Regression Testing
• What Works
– Automating only that functionality which has stable
manual test cases
– Test suites that run as a part of the build process
– Test reports automatically published on the wiki
• What Doesn’t
– Trying to automate everything. Coverage can’t go
beyond 70%
– Tests scripts that are never integrated into a test suite
– Tests are data specific and start breaking when the data
changes
Confidential
Continuous Integration
• What Works
– Separate build tasks for unit, regression and UAT
– Quick builds facilitate frequent (continuous) integration
– Reports are a part of the build
• What Doesn’t
– No distinction in dev, prod and test builds.
– Long and tedious builds. Developer’s attention gets
diverted if it takes any longer than 30 secs.
– Absence of teardowns to cancel all setup data
– Tasks are dropped if the build fails
– Untested dependencies
Confidential
Common Tools
Tools
Manual Jira, Bugzilla, Test Director
Unit Junit, Nunit, HttpUnit, DbUnit,
SpringUnit etc.
Functional and
regression
Watir, Selenium, QTP, AutoIt,
Winrunner, RSpec, Tkl/Tk
Performance Loadrunner, OpenSta, jMeter,
User Acceptance Fitnesse
Continuous
Integration
Maven,Cruise Control, Luntbuild, PMD,
FindBugs, Jalopy (automated code
review), Clover (code coverage)
Confidential
Useful Resources
• http://www.agiledata.org/essays/tdd.html
• http://www.methodsandtools.com/dynpoll/oldpoll.php?UnitTest2
• http://www.testdriven.com/modules/news/
• http://www.kevinwilliampang.com/post/Is-Code-Coverage-Really-All-
That-Useful.aspx
• http://www.fitnesse.org
• http://www.rubyforge.org
• http://selenium.openqa.org
• http://maven.apache.org/
• http://cruisecontrol.sourceforge.net/
• http://luntbuild.javaforge.com/
• http://pmd.sourceforge.net/
• http://jalopy.sourceforge.net/
• http://findbugs.sourceforge.net/
• http://www.atlassian.com/software/clover/
• http://www.developer.com/design/article.php/3700651
Confidential
Today’s Discussion
• Synerzip Introduction
• Agile Development Lifecycle
• Test Driven Development
– Case for TDD & Continuous Integration
– User Acceptance Testing
– Functional Testing
– Unit Testing
– Regression Testing
– Common Tools & Useful Resources
• Q & A
Confidential
Contact Information
• Hemant Elhence (Dallas based)
– hemant@synerzip.com
– Cell Phone: 214.762.4873
• www.synerzip.com
• HQ in Dallas, TX
– 14228 Midway Rd, #130, Dallas, TX 75244
– Office Tel: 469.322.0349
– Office Fax: 469.322.0490
Thanks!

Más contenido relacionado

La actualidad más candente

Istqb Agile-tester Extension
Istqb Agile-tester ExtensionIstqb Agile-tester Extension
Istqb Agile-tester ExtensionGirish Goutam
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing MethodologyGaya1985
 
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...IBM Danmark
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegasjaredrrichardson
 
Agile Testing Introduction
Agile Testing IntroductionAgile Testing Introduction
Agile Testing IntroductionHai Tran Son
 
Optimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile WorldOptimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile WorldOriginal Software
 
How to make Automation an asset for Organization
How to make Automation an asset for OrganizationHow to make Automation an asset for Organization
How to make Automation an asset for Organizationanuvip
 
Agile QA Automation process
Agile QA Automation processAgile QA Automation process
Agile QA Automation processTanvi Nanda
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speedSvitlana Dubyk
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarRisk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarQASymphony
 
Testing automation in agile environment
Testing automation in agile environmentTesting automation in agile environment
Testing automation in agile environmentPerfecto Mobile
 
Agile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clientsAgile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clientsYuval Yeret
 
Vladimir Primakov - Qa management in big agile teams
Vladimir Primakov - Qa management in big agile teamsVladimir Primakov - Qa management in big agile teams
Vladimir Primakov - Qa management in big agile teamsIevgenii Katsan
 
product Qa workflow
product Qa workflowproduct Qa workflow
product Qa workflowtanvir afzal
 
Integrate Test Activities in Agile
Integrate Test Activities in AgileIntegrate Test Activities in Agile
Integrate Test Activities in AgileTEST Huddle
 
Automation testing
Automation testingAutomation testing
Automation testingTomy Rhymond
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goalsgaoliang641
 

La actualidad más candente (20)

Istqb Agile-tester Extension
Istqb Agile-tester ExtensionIstqb Agile-tester Extension
Istqb Agile-tester Extension
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
CICS TS for z/OS, From Waterfall to Agile using Rational Jazz Technology - no...
 
Guide to Agile testing
Guide to Agile testingGuide to Agile testing
Guide to Agile testing
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
 
Agile Testing Introduction
Agile Testing IntroductionAgile Testing Introduction
Agile Testing Introduction
 
Optimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile WorldOptimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile World
 
How to make Automation an asset for Organization
How to make Automation an asset for OrganizationHow to make Automation an asset for Organization
How to make Automation an asset for Organization
 
Agile QA Automation process
Agile QA Automation processAgile QA Automation process
Agile QA Automation process
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speed
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Automation Concepts
Automation ConceptsAutomation Concepts
Automation Concepts
 
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarRisk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
 
Testing automation in agile environment
Testing automation in agile environmentTesting automation in agile environment
Testing automation in agile environment
 
Agile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clientsAgile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clients
 
Vladimir Primakov - Qa management in big agile teams
Vladimir Primakov - Qa management in big agile teamsVladimir Primakov - Qa management in big agile teams
Vladimir Primakov - Qa management in big agile teams
 
product Qa workflow
product Qa workflowproduct Qa workflow
product Qa workflow
 
Integrate Test Activities in Agile
Integrate Test Activities in AgileIntegrate Test Activities in Agile
Integrate Test Activities in Agile
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goals
 

Similar a Test Driven Development – What Works And What Doesn’t

Test planning and software's engineering
Test planning and software's engineeringTest planning and software's engineering
Test planning and software's engineeringMansiganeshJawale
 
Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".
Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".
Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".Emerasoft, solutions to collaborate
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseClareMcLennan
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing ProcessSynerzip
 
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2babak danyal
 
Chapter -5 Agile Testing types and its examples.pptx
Chapter -5 Agile Testing types and its examples.pptxChapter -5 Agile Testing types and its examples.pptx
Chapter -5 Agile Testing types and its examples.pptxManishaPatil932723
 
Solano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testingSolano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testingMassTLC
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.pptghkadous
 
Continuous testing for continuous delivery
Continuous testing for continuous deliveryContinuous testing for continuous delivery
Continuous testing for continuous deliveryDavid Hart
 
Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Pete Schneider
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overviewAlex Pop
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMIBM UrbanCode Products
 
unit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptxunit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptxPriyaFulpagare1
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycleDiUS
 
CISSP - Software Development Security
CISSP - Software Development SecurityCISSP - Software Development Security
CISSP - Software Development SecurityKarthikeyan Dhayalan
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementationyogi syafrialdi
 

Similar a Test Driven Development – What Works And What Doesn’t (20)

Test planning and software's engineering
Test planning and software's engineeringTest planning and software's engineering
Test planning and software's engineering
 
Agile testing
Agile testingAgile testing
Agile testing
 
AgileTesting_Ver1.0
AgileTesting_Ver1.0AgileTesting_Ver1.0
AgileTesting_Ver1.0
 
Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".
Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".
Webinar: "5 semplici passi per migliorare la Quality e i processi di Test".
 
CNUG TDD June 2014
CNUG TDD June 2014CNUG TDD June 2014
CNUG TDD June 2014
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with Fitnesse
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
 
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2
 
Chapter -5 Agile Testing types and its examples.pptx
Chapter -5 Agile Testing types and its examples.pptxChapter -5 Agile Testing types and its examples.pptx
Chapter -5 Agile Testing types and its examples.pptx
 
Solano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testingSolano Labs presented at MassTLC's automated testing
Solano Labs presented at MassTLC's automated testing
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
Continuous testing for continuous delivery
Continuous testing for continuous deliveryContinuous testing for continuous delivery
Continuous testing for continuous delivery
 
Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBM
 
unit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptxunit-2_20-july-2018 (1).pptx
unit-2_20-july-2018 (1).pptx
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycle
 
CISSP - Software Development Security
CISSP - Software Development SecurityCISSP - Software Development Security
CISSP - Software Development Security
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 

Más de Synerzip

HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...
HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...
HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...Synerzip
 
Distributed/Dual-Shore Agile Software Development – Is It Effective?
Distributed/Dual-Shore Agile Software Development – Is It Effective?Distributed/Dual-Shore Agile Software Development – Is It Effective?
Distributed/Dual-Shore Agile Software Development – Is It Effective?Synerzip
 
Using Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget ProjectsUsing Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget ProjectsSynerzip
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams Synerzip
 
Agile For Mobile App Development
Agile For Mobile App Development Agile For Mobile App Development
Agile For Mobile App Development Synerzip
 
Using Agile in Non-Ideal Situations
Using Agile in Non-Ideal SituationsUsing Agile in Non-Ideal Situations
Using Agile in Non-Ideal SituationsSynerzip
 
Accelerating Agile Transformations - Ravi Verma
Accelerating Agile Transformations - Ravi VermaAccelerating Agile Transformations - Ravi Verma
Accelerating Agile Transformations - Ravi VermaSynerzip
 
Agile Product Management Basics
Agile Product Management BasicsAgile Product Management Basics
Agile Product Management BasicsSynerzip
 
Product Portfolio Kanban - by Erik Huddleston
Product Portfolio Kanban - by Erik HuddlestonProduct Portfolio Kanban - by Erik Huddleston
Product Portfolio Kanban - by Erik HuddlestonSynerzip
 
Modern Software Practices - by Damon Poole
Modern Software Practices - by Damon PooleModern Software Practices - by Damon Poole
Modern Software Practices - by Damon PooleSynerzip
 
Context Driven Agile Leadership
Context Driven Agile LeadershipContext Driven Agile Leadership
Context Driven Agile LeadershipSynerzip
 
Adopting TDD - by Don McGreal
Adopting TDD - by Don McGrealAdopting TDD - by Don McGreal
Adopting TDD - by Don McGrealSynerzip
 
Pragmatics of Agility - by Venkat Subramaniam
Pragmatics of Agility - by Venkat SubramaniamPragmatics of Agility - by Venkat Subramaniam
Pragmatics of Agility - by Venkat SubramaniamSynerzip
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App DevelopmentSynerzip
 
Agile2011 Conference – Key Take Aways
Agile2011 Conference – Key Take AwaysAgile2011 Conference – Key Take Aways
Agile2011 Conference – Key Take AwaysSynerzip
 
Performance Evaluation in Agile
Performance Evaluation in AgilePerformance Evaluation in Agile
Performance Evaluation in AgileSynerzip
 
Scrum And Kanban (for better agile teams)
Scrum And Kanban (for better agile teams)Scrum And Kanban (for better agile teams)
Scrum And Kanban (for better agile teams)Synerzip
 
Managing Technical Debt - by Michael Hall
Managing Technical Debt - by Michael HallManaging Technical Debt - by Michael Hall
Managing Technical Debt - by Michael HallSynerzip
 
Elephants in The Agile Room - by Todd Little
Elephants in The Agile Room - by Todd LittleElephants in The Agile Room - by Todd Little
Elephants in The Agile Room - by Todd LittleSynerzip
 
Panning for User Story Gold - by Damon Poole, Agile Coach
Panning for User Story Gold - by Damon Poole, Agile CoachPanning for User Story Gold - by Damon Poole, Agile Coach
Panning for User Story Gold - by Damon Poole, Agile CoachSynerzip
 

Más de Synerzip (20)

HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...
HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...
HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...
 
Distributed/Dual-Shore Agile Software Development – Is It Effective?
Distributed/Dual-Shore Agile Software Development – Is It Effective?Distributed/Dual-Shore Agile Software Development – Is It Effective?
Distributed/Dual-Shore Agile Software Development – Is It Effective?
 
Using Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget ProjectsUsing Agile Approach with Fixed Budget Projects
Using Agile Approach with Fixed Budget Projects
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams
 
Agile For Mobile App Development
Agile For Mobile App Development Agile For Mobile App Development
Agile For Mobile App Development
 
Using Agile in Non-Ideal Situations
Using Agile in Non-Ideal SituationsUsing Agile in Non-Ideal Situations
Using Agile in Non-Ideal Situations
 
Accelerating Agile Transformations - Ravi Verma
Accelerating Agile Transformations - Ravi VermaAccelerating Agile Transformations - Ravi Verma
Accelerating Agile Transformations - Ravi Verma
 
Agile Product Management Basics
Agile Product Management BasicsAgile Product Management Basics
Agile Product Management Basics
 
Product Portfolio Kanban - by Erik Huddleston
Product Portfolio Kanban - by Erik HuddlestonProduct Portfolio Kanban - by Erik Huddleston
Product Portfolio Kanban - by Erik Huddleston
 
Modern Software Practices - by Damon Poole
Modern Software Practices - by Damon PooleModern Software Practices - by Damon Poole
Modern Software Practices - by Damon Poole
 
Context Driven Agile Leadership
Context Driven Agile LeadershipContext Driven Agile Leadership
Context Driven Agile Leadership
 
Adopting TDD - by Don McGreal
Adopting TDD - by Don McGrealAdopting TDD - by Don McGreal
Adopting TDD - by Don McGreal
 
Pragmatics of Agility - by Venkat Subramaniam
Pragmatics of Agility - by Venkat SubramaniamPragmatics of Agility - by Venkat Subramaniam
Pragmatics of Agility - by Venkat Subramaniam
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App Development
 
Agile2011 Conference – Key Take Aways
Agile2011 Conference – Key Take AwaysAgile2011 Conference – Key Take Aways
Agile2011 Conference – Key Take Aways
 
Performance Evaluation in Agile
Performance Evaluation in AgilePerformance Evaluation in Agile
Performance Evaluation in Agile
 
Scrum And Kanban (for better agile teams)
Scrum And Kanban (for better agile teams)Scrum And Kanban (for better agile teams)
Scrum And Kanban (for better agile teams)
 
Managing Technical Debt - by Michael Hall
Managing Technical Debt - by Michael HallManaging Technical Debt - by Michael Hall
Managing Technical Debt - by Michael Hall
 
Elephants in The Agile Room - by Todd Little
Elephants in The Agile Room - by Todd LittleElephants in The Agile Room - by Todd Little
Elephants in The Agile Room - by Todd Little
 
Panning for User Story Gold - by Damon Poole, Agile Coach
Panning for User Story Gold - by Damon Poole, Agile CoachPanning for User Story Gold - by Damon Poole, Agile Coach
Panning for User Story Gold - by Damon Poole, Agile Coach
 

Último

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...masabamasaba
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durbanmasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Último (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Test Driven Development – What Works And What Doesn’t

  • 1. www.synerzip.com Test Driven Development What Works & What Doesn’t November 5, 2008
  • 2. Confidential Today’s Discussion • Synerzip Introduction • Agile Development Lifecycle • Test Driven Development – Case for TDD & Continuous Integration – User Acceptance Testing – Functional Testing – Unit Testing – Regression Testing – Common Tools & Useful Resources • Q & A
  • 3. Confidential Synerzip in a Nut-shell 1. Software development partner for small/mid-sized technology companies • Focus: small/mid-sized technology companies • Deep experience in product development, testing, & deployment • Handles full software development life cycle • Technology and industry domain agnostic 2. Actually reduces risk of development/delivery • Experienced software management team • Brings in appropriate level of engineering discipline • Practices Agile development – responsive & disciplined 3. Reduces cost – dual-shore team, 50% cost advantage 4. Offers long term flexibility – allows (facilitates) taking offshore team captive
  • 5. Confidential Today’s Discussion • Synerzip Introduction • Agile Development Lifecycle • Test Driven Development – Case for TDD & Continuous Integration – User Acceptance Testing – Functional Testing – Unit Testing – Regression Testing – Common Tools & Useful Resources • Q & A
  • 6. Confidential Agile Development • Why agile development? – Due to a dynamic , ever changing business environment; requirements change. – Innovation happens when requirements change. – Agile not only allows but encourages requirements to change. – Agile is an iterative show and build process. The customer gets to see some new functionality at the end of each short iteration. Ideas evolve and new requirements get generated when the customer sees something working. – Shorter the iteration closer the compliance with requirements. • Challenges of agile development – In a short iteration of 3 weeks if 1 week is required for integration, testing and deployment then only 2 weeks are left for actual coding or development work. – There is an interdependence of TDD and automation.
  • 8. Confidential Agile Lifecycle – Iterations & QA Small Release Unit and Automated F & R/ UA Testing Iteration Release Planning User Stories Requirements User Acceptance Testing Test Scenarios Iteration Plan Confident Estimates Feedback /Functional Regression Testing Customer Approval
  • 9. Confidential Testing Terminology • Unit testing – testing a code component or class. – Coverage is measured against lines of code • Functional testing - testing against required functionality by going through the same steps that an end-user will execute. – Coverage is measured against requirements • Regression testing – when functional testing is carried out again after fixing defects to ensure that no new bugs get introduced. • User acceptance testing – a subset of functional test cases that form the basis on which the release is accepted by the customer.
  • 10. Confidential Agile Lifecycle - Roles Iteration zero Iteration n Final Iteration Product Owner Requirements analysis Review of product demo and changes User acceptance testing and sign off. Project Manager Estimation and planning Monitoring and re- estimation Monitoring and release notes Architect Prototype or POC design Designing and code review Design documents Developer Estimation, understanding requirements and coding POC Writing unit tests and code. Writing build automation script Fixing bugs and documentation. QA Writing test cases Testing and some automation Filing bugs and regression testing
  • 11. Confidential Today’s Discussion • Synerzip Introduction • Agile Development Lifecycle • Test Driven Development – Case for TDD & Continuous Integration – User Acceptance Testing – Functional Testing – Unit Testing – Regression Testing – Common Tools & Useful Resources • Q & A
  • 12. Confidential What is TDD? • Test Driven Development (TDD) means capturing the intent of requirements in the form of a test case before starting to code • Test case could be a manual test case or an automated test script • Test case could be a functional or a user- acceptance or a unit test
  • 13. Confidential TDD Means More Code? Use your judgement, e.g. don’t write tests for every getter and setter
  • 14. Confidential TDD in Practice Value of TDD – especially in Agile • Tests are more explicit expression of requirements • Earlier defect detection by frequent testing • Ensures better coverage - don’t end up having superfluous code, without tests Challenges – team resistance & reluctance? • ROI is realized in the long term – in maint phase • Extra coding effort seems unjustified in the beginning • Easier said than done- difficult to implement • Developer resistance
  • 15. Confidential Role of Continuous Integration • Agile development has its roots in lean manufacturing. “Stop the line” principle at Toyota is implemented in software development by making automated tests a part of the build process. • The build fails if even one test fails. This reduces the time-lag between detection of defect and fixing of defect. Ensures timely corrective action. • This also ensures that tests are updated to stay in sync with changing requirements.
  • 16. Confidential User Acceptance Testing (FIT) • What Works – Wiki based tables are used to express and share requirements or user stories – Test fixtures are written only for significant and complex requirements. Ready made test fixtures are used for simple requirements – Subwikis are used to build test suites • What Doesn’t – Customer/ product owner doesn’t spend enough time reviewing the test cases – Developers spend too much time writing test fixtures – FIT tables don’t cover unhappy path. A use case can go wrong in many ways.
  • 17. Confidential Manual Functional Testing • What Works – Better expression of requirements by insisting on writing the test cases up front (Note: 70% of defects arise due to faulty requirements) – Better understanding of the requirements by the QA staff – Examples or test data – QA should be a part of the Product Management/BA team • What Doesn’t – No time allocated by the customer and product owner to review the test cases – Test cases aren’t updated as new requirements evolve. Need to make sure QA team and Product Mgmt/BAs are always in sync – Test cases are at a high level – but difficult to be useful for generating test data
  • 18. Confidential Unit Testing • What Works – Write tests first – Write tests only for the complex methods/units – No significant or complex code is written unless there is a unit test already written for it. • What Doesn’t – Writing tests later after the code is written. – Completing the formality of writing unit tests for each and every method including accessor methods. – Writing unit tests for legacy code • Case Study: A customer started TDD practice by writing unit tests for all the legacy code and ended up testing the tests with the code.
  • 19. Confidential Mechanics of Unit TDD Add some code
  • 20. Confidential Functional/ Regression Testing • What Works – Automating only that functionality which has stable manual test cases – Test suites that run as a part of the build process – Test reports automatically published on the wiki • What Doesn’t – Trying to automate everything. Coverage can’t go beyond 70% – Tests scripts that are never integrated into a test suite – Tests are data specific and start breaking when the data changes
  • 21. Confidential Continuous Integration • What Works – Separate build tasks for unit, regression and UAT – Quick builds facilitate frequent (continuous) integration – Reports are a part of the build • What Doesn’t – No distinction in dev, prod and test builds. – Long and tedious builds. Developer’s attention gets diverted if it takes any longer than 30 secs. – Absence of teardowns to cancel all setup data – Tasks are dropped if the build fails – Untested dependencies
  • 22. Confidential Common Tools Tools Manual Jira, Bugzilla, Test Director Unit Junit, Nunit, HttpUnit, DbUnit, SpringUnit etc. Functional and regression Watir, Selenium, QTP, AutoIt, Winrunner, RSpec, Tkl/Tk Performance Loadrunner, OpenSta, jMeter, User Acceptance Fitnesse Continuous Integration Maven,Cruise Control, Luntbuild, PMD, FindBugs, Jalopy (automated code review), Clover (code coverage)
  • 23. Confidential Useful Resources • http://www.agiledata.org/essays/tdd.html • http://www.methodsandtools.com/dynpoll/oldpoll.php?UnitTest2 • http://www.testdriven.com/modules/news/ • http://www.kevinwilliampang.com/post/Is-Code-Coverage-Really-All- That-Useful.aspx • http://www.fitnesse.org • http://www.rubyforge.org • http://selenium.openqa.org • http://maven.apache.org/ • http://cruisecontrol.sourceforge.net/ • http://luntbuild.javaforge.com/ • http://pmd.sourceforge.net/ • http://jalopy.sourceforge.net/ • http://findbugs.sourceforge.net/ • http://www.atlassian.com/software/clover/ • http://www.developer.com/design/article.php/3700651
  • 24. Confidential Today’s Discussion • Synerzip Introduction • Agile Development Lifecycle • Test Driven Development – Case for TDD & Continuous Integration – User Acceptance Testing – Functional Testing – Unit Testing – Regression Testing – Common Tools & Useful Resources • Q & A
  • 25. Confidential Contact Information • Hemant Elhence (Dallas based) – hemant@synerzip.com – Cell Phone: 214.762.4873 • www.synerzip.com • HQ in Dallas, TX – 14228 Midway Rd, #130, Dallas, TX 75244 – Office Tel: 469.322.0349 – Office Fax: 469.322.0490 Thanks!