2. What is Agile?
Agile is a time boxed, iterative approach to software delivery that builds
software incrementally from the start of the project, instead of trying to
deliver it all at once near the end.
4. 12 principles of agile development
• Satisfy the customer through early and continuous delivery
• Welcome changing requirements, even late in development
• Deliver working software frequently
• Business people and developers work together daily
• Build projects around motivated individuals
• Convey information via face-to-face conversation
• Working software is the primary measure of progress
• Maintain a constant pace indefinitely
5. 12 principles of agile development
• Give continuous attention to technical excellence
• Simplify: maximize the amount of work not done
• Teams self-organize
• Teams retrospect and tune their behaviors
6. The Software Development Evolution –
Traditional to Agile
• Growing Realization that Requirements are never fully understood
• Fast paced development environments using new development Technologies and
Tools
• Shortened product delivery cycles
• Increased involvement of business users in the development cycle
• Migration towards Agile product development models like SCRUM, RUP, XP
7. Agile Misconception
• Compromises on quality
• Testers get easily influenced by developers,
• Testers concerns/voice is less heard
• Agile squeezes all SDLC phases in 2 to 4 weeks (which ideally should
happen in 4 to 8 months)
8. The challenges?
• Is QA part of the development team?
• Can we fit QA in the same iteration as development?
• Does QA costs more in Agile as product seems to change from sprint to sprint?
• Do we need “test plan”?
• Are story acceptance tests enough?
• When do we know testing is done?
• Do we need to track bugs?
11. Testing best practices in Agile world
• Communication is the key
• Onsite customer, programmers in shared space
• Communicate in person, not via document
• Rapid feedback
• Short increments
• Measure progress only by working code
12. Testing best practices in Agile world
• Attend daily stand ups, sprint planning, retrospective sessions
• Execute acceptance criteria manually (current sprint)
• Automate smoke tests UI/regression (previous sprint)
• Demo effectiveness of testing
14. Testing is Collaborative
• Quality is everyone’s problem, not just of testers
• Testing is the responsibility of the whole team
15. Quick feedback
• Faster feedback loops Increase Agility – the ability to respond to
change
• Test Automation provides quick feedback on how the software is
behaving
16. “Leave no broken windows”
• Fix bugs as they are found
• The sooner you find a defect, the cheaper it is to fix
17. What are acceptance tests?
• Tests that demonstrate business purpose 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.
19.
20. QA Role in Release Planning
• In contrast to traditional processes testers are involved from day one of the
project.
• Sizing Stories – QA gives estimate for testing effort for the upcoming stories. In
some cases testing a piece of functionality might take longer than coding it.
• Prioritizing – Stories that have many unknown areas or have high business impact
should be planned in an early iteration, so there is time to recover if story blows
up.
• Infrastructure – Plan for CI setup, test environment, test data set up
21. QA role at the iteration kick-off
Write high level test cases
Write detailed test cases
Acceptance testing for API
Detailed functional testing for API
Exploratory testing
Automation
Review high level test cases with developers
22. Release Sprint Testing (Harding Sprint)
Following testing activities need to occur during release sprint before finally
shipping the product.
• Final pass of end-to-end system integration test
• Final performance/security test
• Documentation touch ups
• User Acceptance Test
• Time required is greatly reduced (from initial 3 weeks to 1 week, in our case ) as
compared to traditional process and less likelihood of any surprises.
23. Agile testing-Summary
• Increased customer satisfaction
• On time deliveries without compromising quality
• Iteration wise testing makes QA more focused on specific
functionality which results in effective testing.
• Due to stable builds test cases execution was fast
• Reduction in number of defects observed in testing