Skip to main content

Introduction

Agile testing is considered to be a modern approach, with an emphasis on testing smarter. A high level of communication and collaboration is required in Agile testing, with the integration between tester and developer dependant on positive feedback during the development cycle.

The principles of the traditional Agile development model transfer to Agile testing, conforming with an iterative development methodology in which requirements develop progressively from both customers and testing teams. The big difference between Agile testing and the Waterfall model is that Agile testing is continuous, with testing starting at the beginning of the project. Integration remains constant between testing teams and development teams throughout the lifecycle of the project.

Principles of Agile

Agile testing relies on being collaborative, flexible and adaptive, and contains four requirements to suit the fast pace of Agile: Prioritising, automated testing, exploratory testing, and adaption.

  • Prioritising requirements is essential as there is a theory that everything cannot be tested. Requirements are prioritised based on risk.
  • Using automated testing increases test efficiency.
  • The use of exploratory testing accelerates the time between delivery of code to test completion.
  • There needs to be an adaption to changes from sprints.

Each of the principles and requirements forms what the fast pace of Agile testing, a methodology which is quite dissimilar to the Waterfall model.

Agile Methodologies

Every project is unique, and the Agile methodology selected is dependent on varying internal and external factors. To aid the needs of different projects, there are various Agile methodologies and testing types which can be used when working within one of the selected methodologies. Two of the most popular Agile methodologies are Scrum and Kanban.

Graphical representation of the Scrum methodology

Scrum

Scrum begins its lifecycle with a set of requirements or a user story, detailing how features should perform and how each should be tested. Scrum focusses on defining key features and objectives before each sprint. This iterative approach allows for a series of sprints to be worked through, providing small amounts of value, quickly and efficiently.

Graphical representation of the Kanban methodology

Kanban

Kanban is considered to be a simple methodology resembling a large scale 'to-do-list'. Similar to Scrum, requirements are tracked in their process by moving them along a Kanban board, stages such as to-do, developing, testing, complete. Unlike Scrum, Kanban is based on priority, not time. Once a task is complete, the task is moved along the Kanban board, this, however, can cause problems if one team works faster than another. In this instance, bottlenecks will appear, and at that point, all team members should combine to help.

Four Agile Testing Methods

BDD

Behaviour Driven Development is an area that you will cover in greater detail on your module, but it’s important for you to understand that it is an Agile testing method. Based on the same principles and TDD (Test Driven Design) yet consists of higher-level tests. Requirements are based on the end users behaviour to a product, and product behaviours can replace requirement documentation. Essentially, BDD drives a high level of efficiency through automated testing.

ATDD

Acceptance Test Driven Development is similar to BDD where tests are created first with code to be written in order to pass those tests. ATDD positions user perception of the product and functionality as equals. To achieve this, ATDD requires input from customers which can be used to develop manual or automated acceptance tests. Fundamentally, ATDD involves direct contact with the customer to understand how the product will be used.

Exploratory

Exploratory testing is a type of functional testing which allows testers to test the code in a way that can be considered as controlled chaos. Testers do not follow a predefined plan, and their aim is interacting with the product in an attempt to try and break it. Due to its unscripted nature, Exploratory testing often impersonates how users will interact with the product. Exploratory testing is a method that you will be able to incorporate into your coursework.

Session Based

Session-based testing adds more structure and builds on Exploratory testing by aiming to add more structure, without compromising the benefits that exploratory testing provides. The structure is provided by conducting tests during pre-planned, consecutive sessions. Testers are required to report back the completed testing from each session. After each session, testers debrief with five ‘proof’ points: Past (what happened?), Results (what was achieved?), Obstacles (what got in the way?), Outlook (what still needs to be done?), and Feelings (how does the tester feel about it?).

Agile vs Waterfall

Agile Methodology icon

Agile

  • Agile testing is generally unstructured
  • Suited for small projects
  • Defects can be fixed during the project lifecycle
  • Less documentation
  • Each iteration has a dedicated testing phase. Regression tests can be run based on the integration of new functions
  • Testers and developers work closely together
  • User acceptance is undertaken after each sprint
  • Testers and developers communicate plan and analyse requirements
Waterfall Model icon

Waterfall

  • The testing process is more structured
  • Waterfall is suitable for a variety of projects
  • Testing only occurs at the end of development, the process repeats for any changes
  • Requires intricate documentation
  • Testing only begins after the development phase
  • Testers and developers work separately
  • User acceptance can only commence at the end of the project
  • Minimal communication between testers and developers. Developers are not involved in planning or requirement analysis
Return to the top
User Sitemap