• 10 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 8/30/22

Understand Testing

There are two broad categories of testing:

  • Automated testing, which is coded by IT experts and executed by a computer. The aim of this is to ensure that the different parts of the program meet the technical specifications.

  • Manual testing, which is carried out by a human, usually the person responsible for quality assurance on a project, or the end client. The aim of this is to check that the different features were developed in line with the functional specifications.

Understand the Test Pyramid

The test pyramid shows all of the testing that will be executed on a project, including the type of testing.

Manual testing is at the top of the test pyramid. Unit testing is at the bottom of the test pyramid. The testing in the middle of the pyramid will vary depending on the chosen methodology.
The test pyramid

Each level of the pyramid represents a specific type of testing. And yes, there are different types of testing, which we’ll have a look at right now.

Unit Testing

Unit testing is at the base of the test pyramid. As the name suggests, the aim of unit testing is to test a single unit of code. A unit might be a method or a function, for example. To be considered a unit test, it must meet one specific rule:

A unit test cannot be dependent on any functionality outside of the unit being tested.

For example, a test that accesses a database, an API or another method wouldn’t be considered a unit test.

Unit testing checks that a function performs the desired action. We’re not testing how the function interacts with other functions. We’re only interested in one element of functionality.

Integration Testing

Integration testing sits just above unit testing in our pyramid. The purpose of integration testing is to ensure that the units of code we’ve tested individually integrate to form a program that behaves correctly.

If you think about it, one project is likely to involve the development of many features. Sometimes, when working as a team, there are a number of developers involved. Integration testing will check that all features being developed will work together.

As with unit testing, integration testing is executed automatically by a computer. This makes test execution quicker and more reliable. The testing is based on technical specifications, which means that the program architecture will be tested.

Functional Testing

Functional testing checks that a set of features works as expected from the user’s perspective. It is usually carried out by a computer due to the speed of execution, but it can also be performed by a human. It will run through a user journey

To automate this, there are frameworks such as Selenium for web applications, which can open a browser and simulate user actions.

Functional tests are generally linked to a User Story and are designed to test that everything flows correctly before the manual verification step.

Performance Testing

Performance testing assesses the speed, responsiveness, and stability of an application when handling a particular workload. These tests are carried out to identify performance bottlenecks in the code.

Acceptance Testing

Acceptance testing is carried out by humans, usually the client or their representative, and checks that the developed features are in line with expectations.

The client provides feedback or signs off the functionality

Validation Phase

This phase involves close collaboration with the client and checks that the delivered software is aligned with the client requirements. During this phase, the project team tests the different elements of the project and flushes out any final bugs before go-live.

This final validation phase is common for waterfall projects (V-model), but not for agile methodologies. Agile methodology favors fast delivery, and acceptance testing is used instead of validation testing.

Different Types of Testing

There are many other types of testing!

A number of aspects of a project can be tested:

  • Accessibility: compliance with W3C standards, accessibility for people with disabilities, etc.

  • Security: SSL certificate, secure forms, encrypted databases

If you’d like to find out more, take a look at the Association for Software Testing (AST) website. Every year, they hold the AST conference. Find out more on their website!

Let’s Recap!

  • There are two broad categories of testing: automated and manual.

  • Testing can be broken down into five main types: 

    • Unit testing, which tests a single unit of code.

    • Integration testing, which tests a feature.

    • Functional testing, which tests the user journey.

    • Performance testing, which tests response times and stability of the functionality.

    • Acceptance testing, which tests whether the feature meets the specification.

Now that we know a bit more about different types of testing, it’s time to see how to set up the tests, starting with unit testing.

Example of certificate of achievement
Example of certificate of achievement