SlideShare a Scribd company logo
1 of 30
Download to read offline
TDD-based Workflow
Optimizing Development Process
Akbar Hidayat
Test Driven Development
1. Define Expected Behaviours
2. Code them
assertEquals(
10,
add(4, 6)
);
function add(left, right)
return left + right;
);
BUG
DESTROYER?
BUG
DESTROYER?
TEST NEEDS
DESIGN
Feedback
BUSINESS IMPACTS
CORRECT IMPLEMENTATION
MAINTAINABLE CODE
Tests provide feedback
for the quality of the
design
TDD
TDD can't even be begun until we know the
shape of the system that is to be created.
(Uncle Bob)
BDD
The point of BDD is to get people
communicating and bridge the gap between
‘technical’ and ‘business’ people
(Dan North)
Clean Architecture
&
DDD
Breaking it down
1. User Stories
2. Scenario Explorations
3. Architecture Decisions
4. Writing down the test
User Story
As a [role] I want to
[user need] so that
[change]
User Story
1. Who
2. Behavioral Change
3. Business Value
4. Ubiquitous Language
User Story
As an event owner I want to
refund the remaining points
from an event so that I can
use the points again
leanpub.com/50quickideas
Architectural Decisions
TDD can't even be begun until
we know the shape of the
system that is to be created.
(Uncle Bob)
Think how the code
flow
/**
* @expectedException InvariantException
* @expectedExceptionMessage EVENT.REFUND.STILL_ACTIVE
*/
function
given_that_an_event_has_not_finished_and_when_the_event_is
_being_refunded_then_it_should_fail()
{
$eventRefund->refund($event, $requester);
}
/**
* @test
*/
function
given_that_the_event_is_sponsored_and_when_it_has_been_ref
unded_then_the_remaining_point_should_be_returned_to_the_a
dmin()
{
...
}
/**
* @test
*/
function
refunding_a_sponsored_event_should_increase_admin_point()
{
// Simulating HTTP POST to a certain route
$this->post(‘/refundedevents’, [
‘id’ => 212
]);
// Check in Database that the admin point has increased
...
}
Documentation of
what the SUT does
Documentation of
how it does it
DECODE
IDEAS
DISCOVER
POTENTIAL

More Related Content

Similar to TDD-based workflow: Optimizing Development Process

Kiran Joy_Resume
Kiran Joy_ResumeKiran Joy_Resume
Kiran Joy_Resume
Joy Kiran
 
Sumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 yearsSumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 years
sumeet kumar
 
How to bdd with concordion
How to bdd with concordionHow to bdd with concordion
How to bdd with concordion
AMikitas
 
Ankit agrawal cognos report_developer
Ankit agrawal cognos report_developerAnkit agrawal cognos report_developer
Ankit agrawal cognos report_developer
Ankit Agrawal
 

Similar to TDD-based workflow: Optimizing Development Process (20)

Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1
 
Kiran Joy_Resume
Kiran Joy_ResumeKiran Joy_Resume
Kiran Joy_Resume
 
Sumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 yearsSumeet kumar mainframe developer 8.5 years
Sumeet kumar mainframe developer 8.5 years
 
How to bdd with concordion
How to bdd with concordionHow to bdd with concordion
How to bdd with concordion
 
RESUME
RESUMERESUME
RESUME
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
City Portal
City PortalCity Portal
City Portal
 
Better Software Developers
Better Software DevelopersBetter Software Developers
Better Software Developers
 
From four to forty in four years - lessons from growing a team
From four to forty in four years - lessons from growing a teamFrom four to forty in four years - lessons from growing a team
From four to forty in four years - lessons from growing a team
 
Sudhir_Resume
Sudhir_ResumeSudhir_Resume
Sudhir_Resume
 
Rapid Solutions with Salesforce Flows
Rapid Solutions with Salesforce FlowsRapid Solutions with Salesforce Flows
Rapid Solutions with Salesforce Flows
 
NIHAR SAHOO-UPDATE_Resume
NIHAR SAHOO-UPDATE_ResumeNIHAR SAHOO-UPDATE_Resume
NIHAR SAHOO-UPDATE_Resume
 
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
 
Online reservation system
Online reservation systemOnline reservation system
Online reservation system
 
Ankit agrawal cognos report_developer
Ankit agrawal cognos report_developerAnkit agrawal cognos report_developer
Ankit agrawal cognos report_developer
 
chandan1
chandan1chandan1
chandan1
 
Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018
 
Ankit agrawal cognos report_developer
Ankit agrawal cognos report_developerAnkit agrawal cognos report_developer
Ankit agrawal cognos report_developer
 
Deb CV
Deb CV Deb CV
Deb CV
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

TDD-based workflow: Optimizing Development Process