Agile Testing
While agile has provided the solutions for many software development problems, it is not a silver bullet and has still to overcome issues that more traditional project development lifecycles handle. Testing is an important part of how agile succeeds, but as agile is a big departure from normal development, how does it affect testing and the test process?
The role of the tester in agile is to bring professional expertise in test and quality to the team. Many agile implementations however have struggled to implement effective approaches to achieving the productivity enhancements with the required level of quality. This is because of issues such as
Implementing SCRUM as an effective work management approach but without designing/adopting appropriate development and test practices within the incremental framework
Partial implementation of agile methods and agile mindset sometimes resulting in negative quality implications
Implementing hybrid methods combining traditional dev/test practices with agile practices but with a resulting strategy that does not deliver on quality
- Cost: Price on application
- Duration: 2 days
- This course is not available as part of our public schedule but can be provided on a customised client specific basis.
There are no pre-requisites for this course.
At the end of this course you will be able to:
Describe the main agile methodologies and how variations or hybrid approaches (utilising elements of agile with more traditional approaches) are sometimes implemented in practice
Describe the testing implications of moving to an agile methodology including the role of independent testing and testing without detailed requirements
Perform effective testing in an agile environment based on users, testers and developers collaborating in an iterative approach
Utilise aspects of agile testing practices in more traditional projects
Keep control of testing/quality in an Agile lifecycle and avoid the common pitfalls
Balance quality/test practices such as TDD, exploratory testing, etc. to deliver quality
Leverage test process improvement in agile projects
By attending this course you will:
Gain an insight in the different agile methodologies and how they differ from traditional methodologies
Detailed understanding of issues to overcome to ensure effective testing on agile projects test strategy and planning, test design, test execution and monitoring/reporting
Clarify how independent testers can best contribute to agile projects
A review of the agile values, principles and practices, this is the heart of agile and what it is trying to do. So, it is important that these are understood and clear.
Explain the essence of agile methods in terms of the significant mindset change required
Clear the myth from reality
A brief review of some of the more formal methodologies that use agile as their framework such as XP, Scrum, Crystal, DSDM and RUP
In addition to describing the main agile methods, variations or hybrid approaches are often implemented in practice are also covered
The aim of this short module is to ensure that the class are working from a common understanding and terminology
A review of the test process for a traditional development life cycle
Typical test levels/phases and the objectives, attributes and types of testing that takes place at each of those test levels
Types of test strategies/approaches used
This module will look at the implications for testing if an organisation moves to an agile development approach. It will describe the key quality/test considerations in moving to agile including the role of independent testing, testing without detailed requirements, testing in incremental/iterative environments and agile practices such Test Driven Development (TDD) and exploratory testing:
Agile test strategies
o Different Test Levels/phases applicable to agile and how they need to be adapted
o Where the different types of testing fit into an agile development lifecycle
A flexible approach to Planning that supports feature driven iterative development
Monitoring and reporting of iterations/releases
Test Driven Development (TDD), Automated Unit Testing
Acceptance testing, testing and the customer/user
Testing techniques including static techniques, structural techniques and exploratory testing applicable to agile (based on minimal documentation and common requirements related documents such as User Stories)
Defect management in agile
The role of the traditional independent system tester in agile
Cultural, organizational, technical, and logistical issues when transitioning to agile
This module will discuss the most common tools and frameworks used at the different test levels including open source tools available and issues in their implementation. Demos will include use of open source tools that support iteration planning, unit (e.g. J-unit) and acceptance test automation (e.g. Fitnesse).
This module describes how to optimize testing in agile environments using the TPI-model. The priority key areas in TPI and experiences in interpreting/applying them to agile testing projects will be presented
This module will discuss the how the approach to testing in an agile development lifecycle can be implemented in a more traditional development lifecycle.
This is module will discuss some of the risks and common pitfalls experienced in practice with testing in an agile environment (such as non-functional testing issues) and how these can be avoided.
With sample solutions and tips will include:
Team based exercise to analyse typical scenarios encountered in organizations that have experienced process and strategy issues to determine the key problems and the most appropriate quality solutions.
Team based exercise on defining an agile test strategy
Designing tests cases from user stories
Defining the tester role/responsibilities in agile
Discussion of participants own challenges
Tool demos
Agile friendly' templates/checklists and tips for practical agile testing/quality will be provided.