Skip main navigation

£199.99 £139.99 for one year of Unlimited learning. Offer ends on 28 February 2023 at 23:59 (UTC). T&Cs apply

Find out more

Tests and Usage Scenarios


In the last step, we revisited continuous testing with Steven Borg. In this step, we will look at tests and usage scenarios.

Let’s take a quick look at different types of tests and understand their basic usage scenarios:

Unit Tests

There are automated, simple, repeatable, and maintained tests (pieces of code) that invoke a unit of work in the system and then check a single assumption about the behavior of that unit of work. In simple terms, a unit test provides validation at the unit or method level.

Usage scenario:

  • Typically developed and run by developers at the start/during the software development process.

  • Run at every build to test individual units of system in isolation.

Integration Tests

An integration test validates two or more dependent software modules (or components) as a group in multiple ways. In other words, an integration test validates that software modules work properly when they are integrated with other modules.

Usage scenario:

Run at every build to see how different software modules/components are coming together and identifies any integration issues early.

Automated UI Tests

These automated tests are done through the user interface (UI) to test components together in scenarios. These tests typically drive your application through its user interface and include functional testing of the UI controls.

Usage scenario:

  • Run after the application UI is up and running to test the functionalities of the application to ensure that various components of the application work as expected.

  • These tests let you validate whether the whole application (including its user interface) is working correctly.

  • Many times, these tests are used to automate an existing manual test.

Performance Tests and Load Tests

Performance tests validate the application’s responsiveness, throughput, reliability, and stability. A load test puts demands on a system to determine behavior under varying levels of load, identify bottlenecks, and validate expected performance.

Usage scenario:

  • Should be run at every build. However, must be run before release to the production to ensure application can perform per end user expectations and handle expected levels of load.

  • Tests whether a system can perform under heavy user load to meet non-functional requirements, such as response time of a web page.

Manual Acceptance and Exploratory Tests

A manual acceptance test validates if a requirement or specification is met. An exploratory test uses a tester’s intelligence and creativity to validate quality, usability, performance, experience, and other metrics.

Usage scenario:

  • Typically run manually before production to ensure that the software meets the business requirements/needs.

  • In this type of test, a tester is responsible for managing her or his own time and finding creative ways to test the system at any stage.

In the next step, we will learn about the types of testing. Click on Mark as complete to move on to the next step.

This article is from the free online

Microsoft Future Ready: Fundamentals of DevOps and Azure Pipeline

Created by
FutureLearn - Learning For Life

Our purpose is to transform access to education.

We offer a diverse selection of courses from leading universities and cultural institutions from around the world. These are delivered one step at a time, and are accessible on mobile, tablet and desktop, so you can fit learning around your life.

We believe learning should be an enjoyable, social experience, so our courses offer the opportunity to discuss what you’re learning with others as you go, helping you make fresh discoveries and form new ideas.
You can unlock new opportunities with unlimited access to hundreds of online short courses for a year by subscribing to our Unlimited package. Build your knowledge with top universities and organisations.

Learn more about how FutureLearn is transforming access to education