The different types of software testing
Last week we published the first in a series of articles designed to answer broad questions in software testing. That piece offered the eTestware definition for the process itself. Today we focus upon the different types of software testing used.
A Quality Assurance (QA) test is used to analyse a service or product’s overall quality. It consists of a collection of techniques deployed to prevent issues that could go on to then damage the user experience. It is best practice to ensure that your efforts combine manual testing with automation, with relevance then underpinning everything that you do. A manual test, for example, will allow you to cover a wide range of different scenarios. Automation testing, on the other hand, is recommended when a great deal of repetition is required.
Functional v Non-Functional
Functional testing can be conducted manually and is designed to verify each function of the software being tested. Non-functional testing does not lend itself to a manual approach, and is instead used to verify performance, usability and reliability.
Functional Testing types include the following:
Unit Testing – Tests individual units of source code to determine whether or not they are fit for use
Integration Testing – Tests combined software modules as a group to evaluate the compliance of a system with the specified functional requirements
System Testing – Tests a complete system to determine compliance with its specified requirements
Sanity Testing – Tests whether or not bugs have been fixed after a software build or code change
Smoke Testing – Tests whether or not the most important functions work
Interface Testing – Tests the communication between two different software systems to verify that it has been set up correctly
Regression Testing – Tests whether or not recent changes have adversely affected existing features
Beta / Acceptance Testing – Tests the performance of a product when used by “real users” in a “real environment”
Non-functional Testing types include the following:
Performance Testing – Tests the speed, responsiveness and stability of a product under a workload
Load Testing – Tests performance when accessed by multiple users
Stress Testing – Tests stability under extreme load conditions
Volume Testing – Tests performance when a huge volume of data is injected
Security Testing – Tests for vulnerabilities to determine whether or not a system is protected
Compatibility Testing – Tests whether or not software can run on different hardware, operating systems, applications, networks or devices
Install Testing – Tests whether or not the software has been correctly installed and is working as expected
Recovery Testing – Tests system recovery speed after a crash or hardware failure
Reliability Testing – Tests whether or not software can operate without failures for a designated time period and in a specific environment
Usability Testing – Tests ease of use with ‘real users’ completing tasks under observation
Compliance Testing – Tests whether or not a product meets the originally prescribed standards
Localisation Testing – Tests whether or not software behaves according to the local culture or settings
There are literally hundreds of different testing types, with some more commonly utilised than others, and our experts at eTestware are familiar with all of them. As part of theICEway ecosystem of companies, we have helped clients in Healthcare and Cruise with their outsourced software testing requirements, and we are ready to help you too!
In order to maximise efficiency, you should always identify the right types of software testing to use in any testing scenario. Plus, it goes without saying that to get the very best results, you must ensure that the tests are conducted by experienced professionals.