2. Agenda
▪ Background and Context
▪ Agile
▪ ATDD – AcceptanceTest Driven Development
▪ Continuous Delivery
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
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.
10. 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
11. • 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
14. 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
15. Cost of Defects rise exponentially in later phases
64%
36%
Defect source
Requirement Analysis and Design
Phase
Coding/Implementation Phase
26. 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
27. ATDD/BDD Tools..
Ruby – Cucumber
Python – Behave
All JVM languages – cucumber-jvm
Javascript – cucumberjs
.NET – SpecFlow
PHP – Behat
**Not an exhaustive list
28. 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.
31. 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