Upload
vodqa
View
82
Download
0
Embed Size (px)
Citation preview
AGILE TESTING
YOU’LL LEARN….
Traditional vs Agile approach Testing Principles Agile Practices Agile Testing Story Lifecycle
TRADITIONAL VS AGILE
TRADITIONAL…..
Analysis
Design
Code
Test
Deploy
CONS
Changing requirements No place for customer feedback Software taking long time to market Projects not delivered High cost to fix things
AGILE….
Analysis
Design
Code
Test
Deploy
Each slice is working product piece
LET’S BE AGILE….
QUALITY
“Quality is a perceptual, conditional and somewhat subjective attribute and may be understood differently by different people.”
AGILE MANIFESTO
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation• Responding to change over following a plan.That is, while there is value in the items on the right, we value the
items on the left more.”
TRADITIONAL VS AGILE
© ThoughtWorks 2015
$
Code
Requirements GatheringProject Plan/Estimation
Use Cases / Functional Specs
Design Specifications
Test
Fix / Integrate
Level StoriesVision & High
Release 1
Release 2
Release 3
Release 4
$
$
$
$
End-User Feedback:• Validates business benefits• Makes execution more successful• Reduces “false features”• Drives high IT value
Project Estimates:• Agile gives more accurate estimates earlier in the project• Progress measured by tested software
Architecture:• Agile proves out architecture sooner – significant reduction of technical risk
Risk:• Virtually eliminates late surprises
Development Productivity:• Agile teams work with their tools for longer and become more proficient• Seasoned Agile teams produce software very rapidly
Software in production:• Agile approach reduces time to market• Business decides when to go live• Reduces risk of failure due to early exit/reduction of project scopeAgile
Development
TraditionalDevelopment
10
AGILE PRACTICES
Unit Testing
Pairing
Iterative Development
Daily Stand Ups
Automated Functional testing
Continous Integration
TESTING PRINCIPLES
#1 BUILD QUALITY WITHIN
“You can not inspect quality into the product; it is already there.”– W. Edwards Deming
Preventing Defects
Finding Defects Preventing Defects
Finding Defects
#2 FAST FEEDBACK
Get feedback to the people who need it as soon as possible.
Work with up to date information and make informed decisions.
Regression suites should be run in hours not weeks.
#3 TESTS ARE ASSETS
Reuse tests across projects, don’t create new tests all of the time.
Better understanding of test coverage.
Treat the test cases and the application code as the product – don’t separate them.
CodeProduct+
Test
#4 FASTER DELIVERY TO PRODUCTION
Do not have months of testing after development is complete.
Return on investment early – start earning revenue as soon as you can.
Testers should stop focusing on preventing a product going live and instead focus on how to get it live.
#5 OPTIMIZE BUSINESS VALUE
Testing is not just insurance.
Target testing to features that are changing not a scatter gun test everything approach.
Help drive new features and functionality.
Allow business to try new ideas in a safe environment providing quick feedback
AGILE TESTING
SHIFT IN ROLE
• Traditional Tester Role
– Separate team
– Testing happens at the end of development
– Testers work in isolation
– Testers act as gatekeepers
– No or little contact with business
– Automation created after development
• Agile Tester Role– Part of one disciplined team
– Testing happens throughout development
– Testers drive quality discussions and highlight risks
– Automation is created alongside with development
– Direct contact with business
– Testers act as advocate of quality
QA ROLE
QA
CUSTOMERBetter domain understandingBetter acceptance testsBetter end-to-end tests
DEV BABetter Test Automation codeBetter Unit Tests
Better domain understandingBetter acceptance tests
TESTERS RESPONSIBLE FOR QUALITY….?
Tech Lead
Business Analyst
Iteration Manager
Quality Analyst
UI Designer
Architect
Business SME
Software Engineer
TEAM
ITERATIONS (RELEASE LIFE-CYCLE)
QA ACTIVITIES
n+1
n-1
n
Pair with Dev to automate iteration n stories
Exploratory test the current stories
Pair with BA to analyze iteration n+1 stories and write Acceptance tests
STORY LIFECYCLE
STORY ANALYSIS
Ask questions/clarifications
Team gets involved identifying various tasks w.r.t story
Estimations in terms of points
Tech approaches/Functional expectations
Defining acceptance criteria
STORY PLANNING (KICK-OFF)
BA/QA/Dev discuss/ the acceptance criteria
Identifying scope changes
Test scenario’s identification
Identify Unit/Integration tests for the story
DEVELOPMENT
Define Unit/Integration tests i.e. strictly TDD
Code development
Pair rotation (i.e Pragmatic pairing)
Writing tests and executing them to ensure coverage
BA/QA SIGN OFF (DEV BOX)
QA/BA performs sanity on the acceptance criteria
Quick Feedback on the story
Validating Unit/Integration tests passes with coverage
Merging the code to master branch
EXPLORATORY TESTING (STORY TESTING)
System/Integration testing
Validating test scenarios while performing exploratory testing
Writing Automated tests, based on Test Pyramid
Raise/Track/Close story defects
STORY SHOWCASE
Prepare for UAT env
Story showcase to customer
Client Feedback
Q&A
THANK YOUDharmender Srivastav
LinkedIn: https://in.linkedin.com/in/dharmendersrivastav