Types of testing – an introduction to the different types of software testing

two people examining lines of code

Understand the differences between the types of software testing available

Testing is all about providing information to stakeholders about the quality of a system. Several types of testing can be used to explore and test a system, each of them with individual uses, advantages, and approaches to ultimately improve your system. The type of testing you should use depends on a variety of factors, including:

  • Are you testing a new unit/feature of a system, or are you testing the system overall?
  • Are you changing what a system fundamentally does, or ensuring it works in different environments/platforms?
  • Are you carrying out these tests manually or setting them up to be automated?

In this blog, we are taking an introductory look at the different types of testing, explaining what they are and where they are commonly used.

Common types of testing

functional testing icon

Types of testing: Functional testing

In software development, functional testing relates to the testing of a system’s functionality. The testing of each function is typically performed independently, and functional testing is generally performed against a specific requirement, providing a check as to whether it works as it should. For example: does the system do ‘x’ when ‘y’ is pressed? You’ll receive a clear yes/no answer.

regression testing Icon

Types of testing: Regression testing

Regression testing is used to determine if software continues to work after an update or change has been made. Changes can vary from an update to the actual software (such as a new version launch or patch release) or this testing can be used when an integrated application is added or updated. Regression testing is typically a form of functional testing but it is specifically focused on looking for new issues and risks in existing functions that have previously worked.

compatibility testing icon

Types of testing: Compatibility testing

Compatibility testing is a non-functional type of testing which looks at how software performs across a range of devices, operating systems, and browsers. For this testing to be effective, always perform compatibility testing on real devices and environments rather than using emulators. Compatibility testing is growing in importance thanks to the increasing focus on digital transformation initiatives, particularly when considering user experience and customer satisfaction.

Read more about compatibility testing

smoke sanity testing icon

Types of testing: Smoke/Sanity testing

Sanity/smoke testing checks whether fundamental functionality in a piece of software is working. It is typically used at an early stage in the software development lifecycle to determine if the system is stable enough to begin more extensive testing or whether any basic issues would make the testing a waste of time.

acceptance testing icon

Types of testing: Acceptance testing

Acceptance testing is focused on user requirements from a system and checks whether these are satisfied by the system. To perform acceptance testing, a set of acceptance criteria is normally specified to test against, with scripted tests often being used alongside unscripted exploratory testing to better represent a user’s approach to using the software.

Read more about acceptance testing

performance testing icon

Types of testing: Performance testing

Performance testing is a type of non-functional testing (a test level). It can look at the stability, responsiveness, and speed of a system among other things. Performance testing is generally carried out in a representative test environment replicating the numbers of users – often in the hundreds or thousands – anticipated to be using the system concurrently. There are many subcategories within performance testing such as stress testing, peak/load testing, and soak testing.

accessibility testing icon

Types of testing: Accessibility testing

Accessibility testing is a form of usability testing. In the UK, accessibility testing is used to check whether websites and software are accessible for all potential customers, including people with hearing, vision or cognitive difficulties. Users with disabilities often make use of assistive technology such as screen readers so accessibility testing checks that the various elements of a page are tagged properly to be read by these technologies.

Learn more about the benefits of prioritising accessibility, including examples of best practices, in this guide from one of our principal consultants.

usability testing icon

Types of testing: Usability testing

Usability testing checks how intuitive and ‘usable’ software is for the end-users. It is generally conducted by real users (rather than emulators) and is objective-led (for example: find a red jacket on the site and add it to your shopping basket) rather than instructional (giving a user specific steps to follow to complete a task). Checklists can also be used to test against recognised usability principles. This type of testing is used to understand just how user-friendly a piece of software is.

security testing icon

Types of testing: Security testing

Security testing is a category of testing performed to identify vulnerabilities in a system and related infrastructure to protect customer and organisation data, as well as intellectual property. There are many subcategories to security testing such as penetration testing, which aims to identify vulnerabilities which an attacker could exploit from external or internal access.

automated testing icon

Types of testing: Automated testing

Automated testing refers to a type of testing that uses independent software to test the system being tested. It can be used to perform other types of testing such as functional or performance testing. Automated testing lends itself well to repetitive testing which can be time-consuming if performed manually. The pre-scripted nature of automated testing also means that increased test coverage can be achieved.

Learn more about automated testing

Get the expert advice you need

The list above covers the most common types of testing but it is by no means an exhaustive list. It is also worth noting that many projects will require a combination of types of testing to effectively satisfy that the software meets its objectives both in terms of functionality, performance and compatibility, browsers, and operating systems.

Speak to our team and learn how our expert Test and Quality Consultants can define a quality and test strategy for your organisation, programme or project.