Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Agile, ATDD & CI/CD/CT
Pradeep Macharla
pradeep@seleniumframework.com
Agenda
▪ Background and Context
▪ Agile
▪ ATDD – AcceptanceTest Driven Development
▪ Continuous Delivery
Background
While most organizations realize that improving IT
performance is critical to long-term success, until now, it ...
Puppet labs Survey(9200 people from 110 countries)
Puppet labs Survey(Diverse sample sets from population mix)
Data proves it
IT Performance
IT performance has real impact on the
business: Companies with high IT
performance are twice as likely to e...
Practices Correlated with IT Performance
The original XP recipe is based on four simple values – simplicity, communication, feedback, and courage –
and twelve supp...
• Industry practice in which whole team collaborates on Acceptance criteria and the
definition of done
• Automate acceptan...
Gherkin
User Stories
PO Dev
TesterBSA
CucumberTests
version controlled
RunTests
Develop code
Version controlled
Collaborat...
Why ATDD
Unable to define what they want
don't know what they really want "now"
Misunderstood the requirements
wrong, incomplete or...
Cost of Defects rise exponentially in later phases
64%
36%
Defect source
Requirement Analysis and Design
Phase
Coding/Impl...
Issue # 1 - Requirement Ambiguity
1
7
After ATDD - Collaboration, Discuss And Communication
Then, 3 Amigos write AC in BDD (Gherkin) format
Product Owner and
Business Analyst
Software Engineer
Quality Engineer
What you
think you
need
All you
actually
need
Issue # 2 - Over Engineering
What would give you
some value, right now
What you
think you
need
You
actually
need
20
Rework
Developers Testers
Deliberate Discovery skills
Issue # 3 Late Detection Of Defects
With ATDD
Less Rework
Developers Testers
Deliberate Discovery skills
Testers
22
ATDD is NOT a silver bullet
ATDD is suitable for programs or projects that are:
 Going through significant fast paced cha...
ATDD/BDD Tools..
Ruby – Cucumber
Python – Behave
All JVM languages – cucumber-jvm
Javascript – cucumberjs
.NET – SpecFlow
...
CI/CD/CT
Continuous Integration is a software development
practice where members of a team integrate their
work frequently...
CI/CD/CT
CI/CD/CT
CI/CD/CT Tools..
Jenkins, Travis, Cruise Control, Team City, Hudson,..
Nexus, Artifactory…
SonarQube…
Chef, Puppet, Ansibl...
Thank you!
Email: pradeep@seleniumframework.com
Github: https://www.github.com/machzqcq
ContinuousTest Automation: www.sel...
Pyptug atdd agile_ci_uploaded
Pyptug atdd agile_ci_uploaded
Pyptug atdd agile_ci_uploaded
Pyptug atdd agile_ci_uploaded
Upcoming SlideShare
Loading in …5
×

Pyptug atdd agile_ci_uploaded

507 views

Published on

Test Driven Development, Continuous Integration, Continuous Delivery, Continuous Test Automation

Published in: Education
  • Be the first to comment

Pyptug atdd agile_ci_uploaded

  1. 1. Agile, ATDD & CI/CD/CT Pradeep Macharla pradeep@seleniumframework.com
  2. 2. Agenda ▪ Background and Context ▪ Agile ▪ ATDD – AcceptanceTest Driven Development ▪ Continuous Delivery
  3. 3. Background While most organizations realize that improving IT performance is critical to long-term success, until now, it has been unclear which investments truly move the needle. Our findings suggest that high IT performance provides a real competitive advantage, with hints that it plays a role in boosting the value of publicly traded companies, as measured by market capitalization
  4. 4. Puppet labs Survey(9200 people from 110 countries)
  5. 5. Puppet labs Survey(Diverse sample sets from population mix)
  6. 6. Data proves it
  7. 7. IT Performance IT performance has real impact on the business: Companies with high IT performance are twice as likely to exceed their profitability, market share and productivity goals.
  8. 8. Practices Correlated with IT Performance
  9. 9. The original XP recipe is based on four simple values – simplicity, communication, feedback, and courage – and twelve supporting practices: Planning Game Small Releases Customer AcceptanceTests Simple Design Pair Programming AcceptanceTest-Driven Development Refactoring Continuous Integration Collective Code Ownership Coding Standards Metaphor Sustainable Pace Agile Types – Extreme Programming
  10. 10. • Industry practice in which whole team collaborates on Acceptance criteria and the definition of done • Automate acceptance tests while production code is being developed • Automation completes before/side by side development • Developer focuses on making acceptance tests pass • Tests become part of build pipeline and are run throughout the sprint • The acceptance automated tests will represent the true business value ATDD is… Run Test CodeWrite Test Run Test Refactor
  11. 11. Gherkin User Stories PO Dev TesterBSA CucumberTests version controlled RunTests Develop code Version controlled Collaborate And Discuss User Stories 0 1 2 3 4 ATDD - Process
  12. 12. Why ATDD
  13. 13. Unable to define what they want don't know what they really want "now" Misunderstood the requirements wrong, incomplete or ambiguous Misinterpret requirements focus on implementation not behavior That is not what I want Misinterpret requirements Incomplete tests Before ATDD
  14. 14. Cost of Defects rise exponentially in later phases 64% 36% Defect source Requirement Analysis and Design Phase Coding/Implementation Phase
  15. 15. Issue # 1 - Requirement Ambiguity
  16. 16. 1 7 After ATDD - Collaboration, Discuss And Communication
  17. 17. Then, 3 Amigos write AC in BDD (Gherkin) format Product Owner and Business Analyst Software Engineer Quality Engineer
  18. 18. What you think you need All you actually need Issue # 2 - Over Engineering
  19. 19. What would give you some value, right now What you think you need You actually need 20
  20. 20. Rework Developers Testers Deliberate Discovery skills Issue # 3 Late Detection Of Defects
  21. 21. With ATDD Less Rework Developers Testers Deliberate Discovery skills Testers 22
  22. 22. ATDD is NOT a silver bullet ATDD is suitable for programs or projects that are:  Going through significant fast paced changes or complete re-writes  Has relatively mature agile teams willing and able to adapt and learn as things change  A strong product owner who is available to clarify requirements to tester and developer  Availability of stable environment support  Has CI/CD capabilities Test Automation Expectations:  Automation is coding - Requires good coding practices such as refactoring  Not everything can or SHOULD be automated - Don’t automate if you won’t reuse Challenges:  Poor adoption  Business users not collaborating  Overstating expectations - scaling too fast  Bandwidth/Velocity  Learning Curve/Experience  Infrastructure/Environment Availability
  23. 23. ATDD/BDD Tools.. Ruby – Cucumber Python – Behave All JVM languages – cucumber-jvm Javascript – cucumberjs .NET – SpecFlow PHP – Behat **Not an exhaustive list
  24. 24. CI/CD/CT Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.
  25. 25. CI/CD/CT
  26. 26. CI/CD/CT
  27. 27. CI/CD/CT Tools.. Jenkins, Travis, Cruise Control, Team City, Hudson,.. Nexus, Artifactory… SonarQube… Chef, Puppet, Ansible… Docker, Kubernetes… Selenium, Appium… Never ends… CI is NOT feasible without Automation
  28. 28. Thank you! Email: pradeep@seleniumframework.com Github: https://www.github.com/machzqcq ContinuousTest Automation: www.seleniumframework.com

×