SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
Effective Testing Practices in an Agile
Environment
Raj Indugula
raj.indugula@lithespeed.com
www.lithespeed.com	
  
ON-­‐DECK	
   AT-­‐BAT	
   DONE	
  
What	
  is	
  the	
  
problem	
  context?	
  
Can	
  I	
  see	
  it	
  in	
  
ac8on?	
  
Concluding	
  
thoughts.	
  	
  Any	
  
ques8ons?	
  
What	
  are	
  the	
  guiding	
  
principles	
  of	
  Agile	
  
Tes8ng	
  ?	
  
What	
  are	
  the	
  
enabling	
  prac8ces?	
  
Agile Manifesto
Individuals and
interactions
Processes and toolsover
Working software
Comprehensive
documentation
over
Customer collaboration Contract negotiationover
Responding to change Following a planover
That is, while there is value in the items on the right, we value the items on the left
more.
We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
http://www.agilemanifesto.org
3
Shared Context drives Quality
Individuals and
interactions
Working
software
Customer
collaboration
Responding to
change
4
Quality is a priority
Agile Approach
Maximize value and
quality within specified
project constraints.
5	
  
Quality
5
Integrated Teams & Iterative Delivery
Challenges
6
How do we bridge the communication gap between Bus./QA/Dev?
How do we ensure that the evolving software does not regress?
ON-­‐DECK	
   AT-­‐BAT	
   DONE	
  
What	
  is	
  the	
  
problem	
  context?	
  
Can	
  I	
  see	
  it	
  in	
  
ac8on?	
  
Concluding	
  
thoughts.	
  	
  Any	
  
ques8ons?	
  
What	
  are	
  the	
  guiding	
  
principles	
  of	
  Agile	
  
Tes8ng	
  ?	
  
What	
  are	
  the	
  
enabling	
  prac8ces?	
  
Move Quality Upstream
•  Testing not a trailing activity
•  QA leads the Sprint by providing guidance
and feedback on the business needs of
the emerging product
8
Testing is Continuous, NOT a Phase
http://testobsessed.com/
9
Testing is Collaborative
•  Quality is everyone’s problem, not just of
the testers
•  Testing is the responsibility of the whole
team
10
Tests represent Customer Expectations
•  Shared understanding of what it means
for a story to be done
11
Quick Feedback
•  Faster feedback loops increase Agility –
the ability to respond to change
•  Test automation provides rapid feedback
on how the software is behaving
12
“Leave No Broken Windows”
•  Fix bugs as they are found
•  The sooner you find a defect, the cheaper
it is to fix
13
It isn't Done until it’s…
“Done Done”
Coded Tested Done
14
Test-Driven
Defining tests with the requirements guides development
http://testobsessed.com/
15
ON-­‐DECK	
   AT-­‐BAT	
   DONE	
  
What	
  is	
  the	
  
problem	
  context?	
  
Can	
  I	
  see	
  it	
  in	
  
ac8on?	
  
Concluding	
  
thoughts.	
  	
  Any	
  
ques8ons?	
  
What	
  are	
  the	
  guiding	
  
principles	
  of	
  Agile	
  
Tes8ng	
  ?	
  
What	
  are	
  the	
  
enabling	
  prac8ces?	
  
ATDD	
  
TDD	
  
Other	
  
prac8ces	
  
Agile Engineering Practices
17
Agile Engineering practices allow teams to move fast, be flexible and
deliver high quality software
Bill Wake, http://www.xp123.com
What are acceptance tests?
•  Tests that demonstrate business intent of
system from end user’s point of view
•  Black-box testing
18
What is Acceptance Test Driven
Development (ATDD)?
A practice in which the whole team
collaboratively discusses acceptance
criteria, with examples, and then distills
them into a set of concrete acceptance
tests before development begins.
- Elisabeth Hendrickson
19
Key Characteristics
1.  Elicit details from the business
stakeholder(s) about their expectations
2.  Distill acceptance criteria into
automatable tests expressed in a natural
language
3.  Wire the tests to SUT with “glue” code (as
part of implementation)
20
21
When to Use
•  During Requirements Elaboration
“First Cut” once the story is written
Card level acceptance criteria
•  During a Three Amigos session (Business, QA, and
Dev)
Expand the story card acceptance criteria
Complete set of test scenarios
22
User Story
As a <type of user>, I can
<immediate goal> so that
<business outcome>.
User Role (Who?)
Desired Function
(What?) End Result (Why?)
23
3 C’s – CARD, CONVERSATION, CONFIRMATION
Modern Agile Acceptance Model
Conditions of Satisfaction –
Broad Terms
Acceptance Criteria –
Further Refined
Examples –
Actual scenarios or data
Executable Examples –
Ready to automate
24
Acceptance – Conditions of Satisfaction
Testing a Registration Function
•  What constraints should we impose?
•  Business stakeholders and PO agree that
passwords should not be easy to crack.
Please fill in to register.
Email Address
Password
Register
25
Acceptance – Acceptance Criteria
Acceptance Criteria, the Details
The PO works with testers and developers from the team,
business stakeholders, users or SMEs to come up with this
definition of “not easy to crack”:
•  Must be at least 8 characters and no more than 12
•  Must contain only alphanumerics and the period
•  Must contain at least one digit
•  Must contain at least one alpha character
Please fill in to register.
Email Address
Password ????????????
26
Acceptance – Examples Written
•  Examples, Making it Real
•  Actual examples are the ultimate way to communicate
requirements
Password Expected Expected Message Comment
abc123 Invalid You password must be at least 8 characters long, and no
more than 12 characters long.
abcdefghi Invalid Your password must contain at least one character and
one number.
1aaaaaaaaa Valid Why valid?
ajx972dab Valid
27
Acceptance – Testable Examples in Gherkin
•  Executable Example, Making it Repeatable
•  Examples that can be executed are the final step
Given the “Unregistered User” user has navigated to the “register” page
When entering “newuser” in the “Username” field
And entering “abc123” in the “Password” field
And entering “abc123” in the “Confirm Password” field
And pressing the “Register” button
Then the text “Thank you for Registering” should appear on page
And the URL should end with “use/accountPage”
28
Gherkin – Another Example
•  Plain English with a specific format
§  Feature
§  Scenario
§  Given When Then And But
•  Can be used for both manual testing and automation
29
Automated Acceptance Tests
Tool
(Cucumber, SpecFlow, FitNesse)
Specification
expressed in
common language
“Glue” code that
ties specification
to SUT
30
Business Analyst
Develop usage
scenarios
Developer
Create and maintain
acceptance test “glue”
code that ties test
specification to
system under test
Tester
Create and execute
tests to simulate
usage scenarios;
Automate regression
testing
•  Should be an integral part of every iteration/sprint, not just a trailing
activity
•  Vital not only to prove completeness of a feature in repeatable fashion,
but also to prove that software does not regress as it evolves
•  Success depends on cooperation & collaboration
Testing Collaboratively
31
Benefits of ATDD
•  Improved requirements elicitation
•  Consensus between BA/QA/Dev on the story helps
prevent bugs & gives clear target for development
•  Reuse of Acceptance Scenarios for all phases of
testing
•  Creates clear examples that everyone understands;
discovers some problems before any development
32
ON-­‐DECK	
   AT-­‐BAT	
   DONE	
  
What	
  is	
  the	
  
problem	
  context?	
  
Can	
  I	
  see	
  it	
  in	
  
ac8on?	
  
Concluding	
  
thoughts.	
  	
  Any	
  
ques8ons?	
  
What	
  are	
  the	
  guiding	
  
principles	
  of	
  Agile	
  
Tes8ng	
  ?	
  
What	
  are	
  the	
  
enabling	
  prac8ces?	
  
ATDD	
  
TDD	
  
Other	
  
prac8ces	
  
What are unit tests?
•  Developer tests that determine whether
the smallest piece of testable software in
an application is behaving as expected
•  White-box testing
34
Structure of a Unit Test
@Test!
public void itAddsOnePlayerToTheGame()!
{!
!Game game = new Game();!
!
!Player al = game.AddPlayer("Al");!
!
!Assert.assertEquals(1, game.numPlayers());!
!Assert.assertTrue(game.isPlaying(al));!
!Assert.assertFalse(game.isPlayable());!
}!
Assert
Arrange
Act
35	
  
…all related to
same behavior
…title is a behavior
Tests should…
•  Not depend on one another
•  Not affect one another
•  Leave the system under test unaltered
•  Be fast executing
•  Be executable in any order, number or
combination of one another
36
What is Test Driven Development (TDD)?
1.  Write a unit test
1.  Use unit testing and mocking framework (JUnit, Mockito etc.)
2.  May need to write some skeleton code to make it compile
2.  Run it and watch it fail (no code yet)
3.  Write code until it passes
4.  Repeat
37
Write a
new test
Red (Failing
Test)
Write Code
Green (Test
Passes)
The tests help determine
what code you write
(“Incremental Design”)
 
	
  
Write a new
test
Test fails
Integrate Write code
Refactor code,
make sure
tests pass
Test passes
Developer
heartbeat
Red, Green, Refactor
Refactoring is supported by the tests and good unit test coverage
makes refactoring safe to do
38
TDD – Benefits
•  Better design – less coupling
•  Supports change
•  Prevents gold-plating
•  Prevent bugs
•  Discover bugs
39
Test Levels
Isolation Tests
•  True unit tests, focusing on behaviors
•  Many, and fast
Collaboration Tests
•  “End-to-end” tests
•  Find bugs in conversations between collaborating
modules
40
Test Doubles (Mocks)
Used to isolate unit tests form external dependencies
Why use them?
•  Ease of setup
•  Fast executing
•  To work with a subsystem that doesn’t exist
•  Simulate various execution paths of external system
41
Test Automation Pyramid
42
Unit Tests/
Component Tests
Cucumber,
FitNesse,
SpecFlow
xUnit, Mocks
Selenium
Developer-centric
(Are we building
the code right?)
Business-centric
(Are we building
the right code?)
Adaptation of Mike Cohn's test automation pyramid
Exploratory
Testing
GUI
Tests
Acceptance Tests
ATDD/TDD Cycle
43
TDD vs. ATDD
Historically ATDD did not come about till well after TDD
ATTD
§  is a specification and testing practice
§  Determines what “Done” means for a story
§  Creates a common understanding and shared language
to discuss features (especially with Gherkin)
§  Cycle times on the order of hours to days
TDD
§  is a coding and design practice
§  Provides a mechanism for exploring the solution space
§  Creates base of tests to support refactoring
§  Cycle times on the order of seconds to minutes
44
ON-­‐DECK	
   AT-­‐BAT	
   DONE	
  
What	
  is	
  the	
  
problem	
  context?	
  
Can	
  I	
  see	
  it	
  in	
  
ac8on?	
  
Concluding	
  
thoughts.	
  	
  Any	
  
ques8ons?	
  
What	
  are	
  the	
  guiding	
  
principles	
  of	
  Agile	
  
Tes8ng	
  ?	
  
What	
  are	
  the	
  
enabling	
  prac8ces?	
  
ATDD	
  
TDD	
  
Other	
  
prac8ces	
  
Version control Tests with Code
Source Code
Unit/Component Tests
Acceptance Tests
Source Control
Repository
(Git, Subversion…)
46
Requirements gathering Application Development
Source Control
Continuous Integration (CI) Server
Continuously commit
changes
and merge changes from
others
Pull changes,
Build, run tests
Deploy to higher
environment
Poll for changes
Development
tasks from requirements
test scenarios from business
requirements for acceptance criteria
Acceptance Test Environment
- Test harness
- Tests (automated + manual)
Execute acceptance
tests
against the deployed
application
QA
Environment
Deployable
artifacts
Build Automation & Continuous Integration
47
ON-­‐DECK	
   AT-­‐BAT	
   DONE	
  
What	
  is	
  the	
  
problem	
  context?	
  
Can	
  I	
  see	
  it	
  in	
  
ac8on?	
  
Concluding	
  
thoughts.	
  	
  Any	
  
ques8ons?	
  
What	
  are	
  the	
  guiding	
  
principles	
  of	
  Agile	
  
Tes8ng	
  ?	
  
What	
  are	
  the	
  
enabling	
  prac8ces?	
  
Barriers to Adoption
Developer : “I’m a developer, not a tester”
Management: “Why does Dev help with testing,
when we have QA?”
•  Necessitates behavioral change
•  Quality is not free
•  Simple, but not easy
•  Requires discipline
•  Needs generalizing specialists
49
Bridging the Divide
SharedUnderstanding
Collaborative
Testing
Quick
Feedback
50
“Before beginning a hunt, it is wise to ask
someone what you are looking for before
you begin looking for it.”
—Winnie the Pooh
51
Thanks!
52
Resources
53
Some Tools (open source)
•  Unit testing:
JUnit, Mockito, EasyMock
•  Acceptance testing:
FitNesse
Cucumber
•  GUI testing:
Selenium, Sahi
•  Javascript testing:
Jasmine, Qunit
•  Testing the database:
DBUnit, SQLUnit, DBFit
•  Performance testing:
JUnitPerf, JMeter
•  Usability testing:
Manual unfortunately
54
Some Tools (open source)
•  Unit testing:
MSTest, NUnit, Moq
•  Acceptance testing:
SpecFlow
•  GUI testing:
Selenium
•  Javascript testing:
Chutzpa
•  Testing the database:
Tsqlt, SSDT SQL Test
•  Performance testing:
JetBrains, VisualStudio 2013, SQLServerProfiler, SQLLoadTest
•  Usability testing:
Manual unfortunately
55
Agile Software Development
•  Extreme Programming Explained - Kent Beck
•  TDD: A Practical Guide – Dave Astels
•  Refactoring – Martin Fowler
•  Agile Estimating and Planning – Mike Cohn
•  Pragmatic Project Automation – Pragmatic Prog.
56
Acceptance Testing
•  Bridging the Communications Gap – Gojko Adzic
•  Agile Testing – Lisa Crispin and Janet Gregory
•  The Cucumber Book - Wynne M. and Hellesoy A.
Gherkin
https://github.com/aslakhellesoy/cucumber/wiki/gherkin
Cucumber
http://cukes.info/
https://github.com/aslakhellesoy/cucumber/wiki/
57
TDD/Refactoring
•  TDD: By Example - Kent Beck
•  TDD: A Practical Guide – Dave Astels
§  The Art of Agile Development – James Shore
•  Refactoring – Martin Fowler
•  Working Effectively with Legacy Code – Mike Feathers
•  Refactoring to Patterns – Joshua Kerievsky
•  xprogramming.com, refactoring.com, testdriven.com
58

Contenu connexe

Tendances

Overcoming Common Product Backlog Management Traps — David Pereira at the 54....
Overcoming Common Product Backlog Management Traps — David Pereira at the 54....Overcoming Common Product Backlog Management Traps — David Pereira at the 54....
Overcoming Common Product Backlog Management Traps — David Pereira at the 54....Stefan Wolpers
 
Agile software development
Agile software developmentAgile software development
Agile software developmentMat Siems
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)Suman Guha
 
Overview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practicesOverview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practicesAshutosh Agarwal
 
Release wednesdays and the agile release train upload
Release wednesdays and the agile release train   uploadRelease wednesdays and the agile release train   upload
Release wednesdays and the agile release train uploadChris Smith
 
Xray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA processXray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA processXpand IT
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentJoseph Beale
 
#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agile#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agileak-itconsulting.com
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & ReleaseDhaval Patel
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformationdev2ops
 
Introduction of Kanban metrics
Introduction of Kanban metricsIntroduction of Kanban metrics
Introduction of Kanban metricsChuck Durfee
 
Presentación Agile Testing
Presentación Agile TestingPresentación Agile Testing
Presentación Agile Testingtbaires
 
Agile Implementation
Agile ImplementationAgile Implementation
Agile ImplementationOlga Sa
 
How Small Team Get Ready for SRE (public version)
How Small Team Get Ready for SRE (public version)How Small Team Get Ready for SRE (public version)
How Small Team Get Ready for SRE (public version)Setyo Legowo
 
Setting SLOs and SLIs in the Real World
Setting SLOs and SLIs in the Real WorldSetting SLOs and SLIs in the Real World
Setting SLOs and SLIs in the Real WorldNew Relic
 
Holistic testing in DevOps
Holistic testing in DevOpsHolistic testing in DevOps
Holistic testing in DevOpsJanet Gregory
 

Tendances (20)

Overcoming Common Product Backlog Management Traps — David Pereira at the 54....
Overcoming Common Product Backlog Management Traps — David Pereira at the 54....Overcoming Common Product Backlog Management Traps — David Pereira at the 54....
Overcoming Common Product Backlog Management Traps — David Pereira at the 54....
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
 
Overview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practicesOverview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practices
 
Release wednesdays and the agile release train upload
Release wednesdays and the agile release train   uploadRelease wednesdays and the agile release train   upload
Release wednesdays and the agile release train upload
 
Xray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA processXray for Jira - How to automate your QA process
Xray for Jira - How to automate your QA process
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile Environment
 
#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agile#T3SCRUM: 12 principles of agile
#T3SCRUM: 12 principles of agile
 
Code coverage
Code coverageCode coverage
Code coverage
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Introduction of Kanban metrics
Introduction of Kanban metricsIntroduction of Kanban metrics
Introduction of Kanban metrics
 
Presentación Agile Testing
Presentación Agile TestingPresentación Agile Testing
Presentación Agile Testing
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
 
Agile Implementation
Agile ImplementationAgile Implementation
Agile Implementation
 
Agile Scrum Estimation
Agile   Scrum EstimationAgile   Scrum Estimation
Agile Scrum Estimation
 
How Small Team Get Ready for SRE (public version)
How Small Team Get Ready for SRE (public version)How Small Team Get Ready for SRE (public version)
How Small Team Get Ready for SRE (public version)
 
Setting SLOs and SLIs in the Real World
Setting SLOs and SLIs in the Real WorldSetting SLOs and SLIs in the Real World
Setting SLOs and SLIs in the Real World
 
Holistic testing in DevOps
Holistic testing in DevOpsHolistic testing in DevOps
Holistic testing in DevOps
 

En vedette

Dare to Explore: Discover ET!
Dare to Explore: Discover ET!Dare to Explore: Discover ET!
Dare to Explore: Discover ET!Raj Indugula
 
Leanstartuptoolsforproductowners
LeanstartuptoolsforproductownersLeanstartuptoolsforproductowners
LeanstartuptoolsforproductownersRaj Indugula
 
Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...
Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...
Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...LitheSpeed
 
From Project Manager to Scrum Master
From Project Manager to Scrum MasterFrom Project Manager to Scrum Master
From Project Manager to Scrum MasterLitheSpeed
 
Scaling Agile: A Guide for the Perplexed
Scaling Agile: A Guide for the PerplexedScaling Agile: A Guide for the Perplexed
Scaling Agile: A Guide for the PerplexedLitheSpeed
 
Build Measure Learn: Designing your MVP
Build Measure Learn: Designing your MVPBuild Measure Learn: Designing your MVP
Build Measure Learn: Designing your MVPLitheSpeed
 
Agile Trends in Government
Agile Trends in GovernmentAgile Trends in Government
Agile Trends in GovernmentLitheSpeed
 
Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...
Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...
Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...LitheSpeed
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For AgileNaresh Jain
 
Test Driven Development via Agile Testing
Test Driven Development via Agile TestingTest Driven Development via Agile Testing
Test Driven Development via Agile TestingAnand Bagmar
 
Semana da informática - Qualidade e Teste de Software
Semana da informática - Qualidade e Teste de SoftwareSemana da informática - Qualidade e Teste de Software
Semana da informática - Qualidade e Teste de SoftwareDouglas Coutinho, CTFL
 
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...Scrum Bangalore
 
Agile to the top 2016 (EN)
Agile to the top 2016 (EN)Agile to the top 2016 (EN)
Agile to the top 2016 (EN)Luc Taesch
 
Test pyramid agile pune conference
Test pyramid   agile pune conferenceTest pyramid   agile pune conference
Test pyramid agile pune conferenceSachin Natu
 
Agile Testing Practices
Agile Testing PracticesAgile Testing Practices
Agile Testing PracticesPaul King
 
Continuous Improvement Tricks
Continuous Improvement TricksContinuous Improvement Tricks
Continuous Improvement TricksLitheSpeed
 

En vedette (20)

Agile testing
Agile testingAgile testing
Agile testing
 
Dare to Explore: Discover ET!
Dare to Explore: Discover ET!Dare to Explore: Discover ET!
Dare to Explore: Discover ET!
 
Leanstartuptoolsforproductowners
LeanstartuptoolsforproductownersLeanstartuptoolsforproductowners
Leanstartuptoolsforproductowners
 
Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...
Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...
Facilitation for the Facilitator - Techniques and Exercises for Specific Goal...
 
From Project Manager to Scrum Master
From Project Manager to Scrum MasterFrom Project Manager to Scrum Master
From Project Manager to Scrum Master
 
Scaling Agile: A Guide for the Perplexed
Scaling Agile: A Guide for the PerplexedScaling Agile: A Guide for the Perplexed
Scaling Agile: A Guide for the Perplexed
 
Build Measure Learn: Designing your MVP
Build Measure Learn: Designing your MVPBuild Measure Learn: Designing your MVP
Build Measure Learn: Designing your MVP
 
Agile Trends in Government
Agile Trends in GovernmentAgile Trends in Government
Agile Trends in Government
 
Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...
Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...
Culture Eats Strategy for Breakfast - Dealing with Cultural Differences in Ka...
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
BDD with Boost Test
BDD with Boost TestBDD with Boost Test
BDD with Boost Test
 
Test Driven Development via Agile Testing
Test Driven Development via Agile TestingTest Driven Development via Agile Testing
Test Driven Development via Agile Testing
 
Semana da informática - Qualidade e Teste de Software
Semana da informática - Qualidade e Teste de SoftwareSemana da informática - Qualidade e Teste de Software
Semana da informática - Qualidade e Teste de Software
 
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
 
Agile to the top 2016 (EN)
Agile to the top 2016 (EN)Agile to the top 2016 (EN)
Agile to the top 2016 (EN)
 
Test pyramid agile pune conference
Test pyramid   agile pune conferenceTest pyramid   agile pune conference
Test pyramid agile pune conference
 
Agile Testing Practices
Agile Testing PracticesAgile Testing Practices
Agile Testing Practices
 
Continuous Improvement Tricks
Continuous Improvement TricksContinuous Improvement Tricks
Continuous Improvement Tricks
 
Sreekumar software tester resume
Sreekumar software tester resumeSreekumar software tester resume
Sreekumar software tester resume
 
Atagg2015 BDD in Test pyramid
Atagg2015  BDD in Test pyramidAtagg2015  BDD in Test pyramid
Atagg2015 BDD in Test pyramid
 

Similaire à Effective Testing Practices in an Agile Environment

Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 
Acceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDDAcceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDDLaurent PY
 
Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology  Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology Zoe Gilbert
 
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
 
Assessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentAssessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentMike Cohn
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CDRoger Turnau
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011TEST Huddle
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Developmentadrianmitev
 
Test driven development
Test driven developmentTest driven development
Test driven developmentSunil Prasad
 
Practical Testing Strategy for Agile Team
Practical Testing Strategy for Agile TeamPractical Testing Strategy for Agile Team
Practical Testing Strategy for Agile TeamJen-Chieh Ko
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionSteven Mak
 
Agile testing guide_2021
Agile testing guide_2021Agile testing guide_2021
Agile testing guide_2021QMetry
 
Agile software development
Agile software developmentAgile software development
Agile software developmentpradeeppatelpmp
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationTechWell
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven DevelopmentMichael Denomy
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development ProcessSoftware Park Thailand
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development MethodologiesPradeep Patel, PMP®
 

Similaire à Effective Testing Practices in an Agile Environment (20)

Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Acceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDDAcceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDD
 
Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology  Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology
 
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
 
Assessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentAssessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility Assessment
 
Agile testing
Agile testingAgile testing
Agile testing
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CD
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Practical Testing Strategy for Agile Team
Practical Testing Strategy for Agile TeamPractical Testing Strategy for Agile Team
Practical Testing Strategy for Agile Team
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile Adoption
 
Agile testing guide_2021
Agile testing guide_2021Agile testing guide_2021
Agile testing guide_2021
 
Methods of agile
Methods of agileMethods of agile
Methods of agile
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Introduction to Agile Software Development Process
Introduction to Agile Software Development ProcessIntroduction to Agile Software Development Process
Introduction to Agile Software Development Process
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 

Dernier

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 slidevu2urc
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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 2024The Digital Insurer
 
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...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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 MenDelhi Call girls
 

Dernier (20)

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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
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...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 

Effective Testing Practices in an Agile Environment

  • 1. Effective Testing Practices in an Agile Environment Raj Indugula raj.indugula@lithespeed.com www.lithespeed.com  
  • 2. ON-­‐DECK   AT-­‐BAT   DONE   What  is  the   problem  context?   Can  I  see  it  in   ac8on?   Concluding   thoughts.    Any   ques8ons?   What  are  the  guiding   principles  of  Agile   Tes8ng  ?   What  are  the   enabling  prac8ces?  
  • 3. Agile Manifesto Individuals and interactions Processes and toolsover Working software Comprehensive documentation over Customer collaboration Contract negotiationover Responding to change Following a planover That is, while there is value in the items on the right, we value the items on the left more. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: http://www.agilemanifesto.org 3
  • 4. Shared Context drives Quality Individuals and interactions Working software Customer collaboration Responding to change 4
  • 5. Quality is a priority Agile Approach Maximize value and quality within specified project constraints. 5   Quality 5
  • 6. Integrated Teams & Iterative Delivery Challenges 6 How do we bridge the communication gap between Bus./QA/Dev? How do we ensure that the evolving software does not regress?
  • 7. ON-­‐DECK   AT-­‐BAT   DONE   What  is  the   problem  context?   Can  I  see  it  in   ac8on?   Concluding   thoughts.    Any   ques8ons?   What  are  the  guiding   principles  of  Agile   Tes8ng  ?   What  are  the   enabling  prac8ces?  
  • 8. Move Quality Upstream •  Testing not a trailing activity •  QA leads the Sprint by providing guidance and feedback on the business needs of the emerging product 8
  • 9. Testing is Continuous, NOT a Phase http://testobsessed.com/ 9
  • 10. Testing is Collaborative •  Quality is everyone’s problem, not just of the testers •  Testing is the responsibility of the whole team 10
  • 11. Tests represent Customer Expectations •  Shared understanding of what it means for a story to be done 11
  • 12. Quick Feedback •  Faster feedback loops increase Agility – the ability to respond to change •  Test automation provides rapid feedback on how the software is behaving 12
  • 13. “Leave No Broken Windows” •  Fix bugs as they are found •  The sooner you find a defect, the cheaper it is to fix 13
  • 14. It isn't Done until it’s… “Done Done” Coded Tested Done 14
  • 15. Test-Driven Defining tests with the requirements guides development http://testobsessed.com/ 15
  • 16. ON-­‐DECK   AT-­‐BAT   DONE   What  is  the   problem  context?   Can  I  see  it  in   ac8on?   Concluding   thoughts.    Any   ques8ons?   What  are  the  guiding   principles  of  Agile   Tes8ng  ?   What  are  the   enabling  prac8ces?   ATDD   TDD   Other   prac8ces  
  • 17. Agile Engineering Practices 17 Agile Engineering practices allow teams to move fast, be flexible and deliver high quality software Bill Wake, http://www.xp123.com
  • 18. What are acceptance tests? •  Tests that demonstrate business intent of system from end user’s point of view •  Black-box testing 18
  • 19. What is Acceptance Test Driven Development (ATDD)? A practice in which the whole team collaboratively discusses acceptance criteria, with examples, and then distills them into a set of concrete acceptance tests before development begins. - Elisabeth Hendrickson 19
  • 20. Key Characteristics 1.  Elicit details from the business stakeholder(s) about their expectations 2.  Distill acceptance criteria into automatable tests expressed in a natural language 3.  Wire the tests to SUT with “glue” code (as part of implementation) 20
  • 21. 21
  • 22. When to Use •  During Requirements Elaboration “First Cut” once the story is written Card level acceptance criteria •  During a Three Amigos session (Business, QA, and Dev) Expand the story card acceptance criteria Complete set of test scenarios 22
  • 23. User Story As a <type of user>, I can <immediate goal> so that <business outcome>. User Role (Who?) Desired Function (What?) End Result (Why?) 23 3 C’s – CARD, CONVERSATION, CONFIRMATION
  • 24. Modern Agile Acceptance Model Conditions of Satisfaction – Broad Terms Acceptance Criteria – Further Refined Examples – Actual scenarios or data Executable Examples – Ready to automate 24
  • 25. Acceptance – Conditions of Satisfaction Testing a Registration Function •  What constraints should we impose? •  Business stakeholders and PO agree that passwords should not be easy to crack. Please fill in to register. Email Address Password Register 25
  • 26. Acceptance – Acceptance Criteria Acceptance Criteria, the Details The PO works with testers and developers from the team, business stakeholders, users or SMEs to come up with this definition of “not easy to crack”: •  Must be at least 8 characters and no more than 12 •  Must contain only alphanumerics and the period •  Must contain at least one digit •  Must contain at least one alpha character Please fill in to register. Email Address Password ???????????? 26
  • 27. Acceptance – Examples Written •  Examples, Making it Real •  Actual examples are the ultimate way to communicate requirements Password Expected Expected Message Comment abc123 Invalid You password must be at least 8 characters long, and no more than 12 characters long. abcdefghi Invalid Your password must contain at least one character and one number. 1aaaaaaaaa Valid Why valid? ajx972dab Valid 27
  • 28. Acceptance – Testable Examples in Gherkin •  Executable Example, Making it Repeatable •  Examples that can be executed are the final step Given the “Unregistered User” user has navigated to the “register” page When entering “newuser” in the “Username” field And entering “abc123” in the “Password” field And entering “abc123” in the “Confirm Password” field And pressing the “Register” button Then the text “Thank you for Registering” should appear on page And the URL should end with “use/accountPage” 28
  • 29. Gherkin – Another Example •  Plain English with a specific format §  Feature §  Scenario §  Given When Then And But •  Can be used for both manual testing and automation 29
  • 30. Automated Acceptance Tests Tool (Cucumber, SpecFlow, FitNesse) Specification expressed in common language “Glue” code that ties specification to SUT 30
  • 31. Business Analyst Develop usage scenarios Developer Create and maintain acceptance test “glue” code that ties test specification to system under test Tester Create and execute tests to simulate usage scenarios; Automate regression testing •  Should be an integral part of every iteration/sprint, not just a trailing activity •  Vital not only to prove completeness of a feature in repeatable fashion, but also to prove that software does not regress as it evolves •  Success depends on cooperation & collaboration Testing Collaboratively 31
  • 32. Benefits of ATDD •  Improved requirements elicitation •  Consensus between BA/QA/Dev on the story helps prevent bugs & gives clear target for development •  Reuse of Acceptance Scenarios for all phases of testing •  Creates clear examples that everyone understands; discovers some problems before any development 32
  • 33. ON-­‐DECK   AT-­‐BAT   DONE   What  is  the   problem  context?   Can  I  see  it  in   ac8on?   Concluding   thoughts.    Any   ques8ons?   What  are  the  guiding   principles  of  Agile   Tes8ng  ?   What  are  the   enabling  prac8ces?   ATDD   TDD   Other   prac8ces  
  • 34. What are unit tests? •  Developer tests that determine whether the smallest piece of testable software in an application is behaving as expected •  White-box testing 34
  • 35. Structure of a Unit Test @Test! public void itAddsOnePlayerToTheGame()! {! !Game game = new Game();! ! !Player al = game.AddPlayer("Al");! ! !Assert.assertEquals(1, game.numPlayers());! !Assert.assertTrue(game.isPlaying(al));! !Assert.assertFalse(game.isPlayable());! }! Assert Arrange Act 35   …all related to same behavior …title is a behavior
  • 36. Tests should… •  Not depend on one another •  Not affect one another •  Leave the system under test unaltered •  Be fast executing •  Be executable in any order, number or combination of one another 36
  • 37. What is Test Driven Development (TDD)? 1.  Write a unit test 1.  Use unit testing and mocking framework (JUnit, Mockito etc.) 2.  May need to write some skeleton code to make it compile 2.  Run it and watch it fail (no code yet) 3.  Write code until it passes 4.  Repeat 37 Write a new test Red (Failing Test) Write Code Green (Test Passes) The tests help determine what code you write (“Incremental Design”)
  • 38.     Write a new test Test fails Integrate Write code Refactor code, make sure tests pass Test passes Developer heartbeat Red, Green, Refactor Refactoring is supported by the tests and good unit test coverage makes refactoring safe to do 38
  • 39. TDD – Benefits •  Better design – less coupling •  Supports change •  Prevents gold-plating •  Prevent bugs •  Discover bugs 39
  • 40. Test Levels Isolation Tests •  True unit tests, focusing on behaviors •  Many, and fast Collaboration Tests •  “End-to-end” tests •  Find bugs in conversations between collaborating modules 40
  • 41. Test Doubles (Mocks) Used to isolate unit tests form external dependencies Why use them? •  Ease of setup •  Fast executing •  To work with a subsystem that doesn’t exist •  Simulate various execution paths of external system 41
  • 42. Test Automation Pyramid 42 Unit Tests/ Component Tests Cucumber, FitNesse, SpecFlow xUnit, Mocks Selenium Developer-centric (Are we building the code right?) Business-centric (Are we building the right code?) Adaptation of Mike Cohn's test automation pyramid Exploratory Testing GUI Tests Acceptance Tests
  • 44. TDD vs. ATDD Historically ATDD did not come about till well after TDD ATTD §  is a specification and testing practice §  Determines what “Done” means for a story §  Creates a common understanding and shared language to discuss features (especially with Gherkin) §  Cycle times on the order of hours to days TDD §  is a coding and design practice §  Provides a mechanism for exploring the solution space §  Creates base of tests to support refactoring §  Cycle times on the order of seconds to minutes 44
  • 45. ON-­‐DECK   AT-­‐BAT   DONE   What  is  the   problem  context?   Can  I  see  it  in   ac8on?   Concluding   thoughts.    Any   ques8ons?   What  are  the  guiding   principles  of  Agile   Tes8ng  ?   What  are  the   enabling  prac8ces?   ATDD   TDD   Other   prac8ces  
  • 46. Version control Tests with Code Source Code Unit/Component Tests Acceptance Tests Source Control Repository (Git, Subversion…) 46
  • 47. Requirements gathering Application Development Source Control Continuous Integration (CI) Server Continuously commit changes and merge changes from others Pull changes, Build, run tests Deploy to higher environment Poll for changes Development tasks from requirements test scenarios from business requirements for acceptance criteria Acceptance Test Environment - Test harness - Tests (automated + manual) Execute acceptance tests against the deployed application QA Environment Deployable artifacts Build Automation & Continuous Integration 47
  • 48. ON-­‐DECK   AT-­‐BAT   DONE   What  is  the   problem  context?   Can  I  see  it  in   ac8on?   Concluding   thoughts.    Any   ques8ons?   What  are  the  guiding   principles  of  Agile   Tes8ng  ?   What  are  the   enabling  prac8ces?  
  • 49. Barriers to Adoption Developer : “I’m a developer, not a tester” Management: “Why does Dev help with testing, when we have QA?” •  Necessitates behavioral change •  Quality is not free •  Simple, but not easy •  Requires discipline •  Needs generalizing specialists 49
  • 51. “Before beginning a hunt, it is wise to ask someone what you are looking for before you begin looking for it.” —Winnie the Pooh 51
  • 54. Some Tools (open source) •  Unit testing: JUnit, Mockito, EasyMock •  Acceptance testing: FitNesse Cucumber •  GUI testing: Selenium, Sahi •  Javascript testing: Jasmine, Qunit •  Testing the database: DBUnit, SQLUnit, DBFit •  Performance testing: JUnitPerf, JMeter •  Usability testing: Manual unfortunately 54
  • 55. Some Tools (open source) •  Unit testing: MSTest, NUnit, Moq •  Acceptance testing: SpecFlow •  GUI testing: Selenium •  Javascript testing: Chutzpa •  Testing the database: Tsqlt, SSDT SQL Test •  Performance testing: JetBrains, VisualStudio 2013, SQLServerProfiler, SQLLoadTest •  Usability testing: Manual unfortunately 55
  • 56. Agile Software Development •  Extreme Programming Explained - Kent Beck •  TDD: A Practical Guide – Dave Astels •  Refactoring – Martin Fowler •  Agile Estimating and Planning – Mike Cohn •  Pragmatic Project Automation – Pragmatic Prog. 56
  • 57. Acceptance Testing •  Bridging the Communications Gap – Gojko Adzic •  Agile Testing – Lisa Crispin and Janet Gregory •  The Cucumber Book - Wynne M. and Hellesoy A. Gherkin https://github.com/aslakhellesoy/cucumber/wiki/gherkin Cucumber http://cukes.info/ https://github.com/aslakhellesoy/cucumber/wiki/ 57
  • 58. TDD/Refactoring •  TDD: By Example - Kent Beck •  TDD: A Practical Guide – Dave Astels §  The Art of Agile Development – James Shore •  Refactoring – Martin Fowler •  Working Effectively with Legacy Code – Mike Feathers •  Refactoring to Patterns – Joshua Kerievsky •  xprogramming.com, refactoring.com, testdriven.com 58