
Testing Differences in Traditional and Agile Approaches
Introduction
Testing differences in life-cycle models
- in traditional models like the V-model (sequential) or the RUP (iterative)
- in agile life-cycle models
- activities related to software development
Differences in testing activities found in
- the integration of testing and development activities in the work process
- the work results in the project
- names given to activities and other terms used
- test entry and test exit criteria of different test levels
- the use of tools
- how independent testing can be effectively utilized
Testers
- should know the differences
- should have the ability to effectively adapt to the project context
Testing and Development activities
Differences to traditional life-cycles
- very short iterations
- each iteration provides a software that has a value and that runs
- after the iteration plan, the chosen user stories are developed, integrated and tested
- development, integration and test activities run in parallel
- because tasks overlap, iterations are very dynamic
Roles in testing (both traditional and agile)
- developer: unit tests during development of features of a user story
- tester: testing of these features
- business stakeholder: test the user story during implementation, partly experimentally, in order to give a fast feedback
Managing defects in the code and other technical debt
- stabilization iterations (hardening iterations)
- to resolve lingering defects and other forms of technical debt
- not considered to be the best practice
- no single feature is considered as “done” until it has been
- integrated in the system
- tested
- “fix bugs first” approach advantages
- defects of the previous iteration are fixed first, before new features are implemented
- these defects are part of the backlog
- “fix bugs first” approach risks
- the total work that needs to be done in the iteration is unknown
- it is difficult to estimate when to start the remaining features
- release activities get software ready for delivery
- at the end of a sequence of iterations
- at the end of each iteration
Risk-based testing
- a high-level risk analysis is done during release planning
- testers often are the driving force in risk analysis
- specific identification and assessment of quality risks take place during iteration planning
- risk analysis influences
- the sequence of development
- priority and depth of testing for features
- estimation of test effort required for each feature
Pairing (working together in pairs)
- in Extreme Programming (XP)
- collaboration of two testers to test a feature
- collaboration of two developers or of a developer and a tester to develop and test a feature
- difficult in case of distributed test team
- processes and tools may be used to enable pairing
- managing distribute work
Test and quality trainer
- testers may server as testing and quality coaches within the team
- sharing testing knowledge and supporting quality assurance work within the team
- this promotes a sense of collective ownership of quality of the product
Test automation
- in many agile teams test automation occurs at all levels of testing
- testers spend time creating, executing, monitoring and maintaining automated tests and results
- manual testing on Agile projects mostly done using experience-based and defect-based techniques e.g. software attacks, exploratory testing and error guessing
- developers will focus on creating unit tests
- testers will focus on creating automated integration, system and system integration tests
- Agile teams tend to favor testers with a strong technical and test automation background