- QATestLab Blog >
- QA Basics >
- Types of Software Testing >
- How to Involve Non-functional Testing?
Note: this article was updated in July 2019
Who would have thought that product development is only half the way to success?! No less important is to verify its quality and build the correct testing strategy. Is it enough to perform functional testing skipping non-functional check? What will happen if you choose this way? QATestLab will help you understand this in details by examining the types and role of non-functional testing on the project.
Non-Functional Testing: What is it?
This type of testing serves for checking elements which are non-functional: compatibility, usability, reliability, security, etc. Its main aim is to test the ability of a system to work by examination the parameters which are not covered by functional testing. The most obvious example of such testing is to define the number of people who can log in the system simultaneously.
The variety of testing methods allows to check different parameters which may be the source of bugs and cannot be examined by traditional functional tests.
Non-Functional Testing Types
For clear understanding of how to involve non functional testing, you should know the variety of its types. Watch the list of non-functional tests for checking different features and find out when each testing type is involved.
Availability Testing aims to check if the system is always available for the user and whether it works without failures and in accordance with requirements. It defines the proper work of parameters available for end-users.
Compatibility Testing is a technique which examines the matching of software with various platforms: desktop, mobile and hybrid systems, software and hardware parameters, etc. It verifies if the product is able to work in the required environment under different changing conditions, settings, and configurations.
Compliance Testing is applied as an indicator of a product’s compliance with standards and guidelines established by the customer. It is also known as conformance testing.
Installation Testing checks if the software is successfully installed and works without issues after installation. It also examines the proper functioning after upgrades and uninstallation or when the installation procedure was breached and continued.
Documentation Testing is conducted considering the documents, which have been prepared before and in course of development and testing circles. They include testing plans, strategies, reposts, etc.
Load Testing uses different load scenarios to examine the performance of the system by monitoring its behavior and response in different conditions.
Endurance Testing allows checking the system’s ability to cope with high loads during long periods without failures. This technique examines the uninterrupted work of a software.
Localization Testing serves to examine program features aimed for a particular audience or location. Testing is conducted to fulfill the expectations and needs of the target range of users in different areas.
Performance Testing checks the main testing metrics of a system and how they comply with the real environment. The priority goal is to define if the virtual conditions match the real ones.
Maintainability Testing checks the ability of software to be easily upgraded or set to other configurations according to the constantly growing consumers` requirements.
Recovery Testing initiates intentional failure to assess if the system has enough capability to recover after the risen issue quickly and become fully functional.
Security Testing detects and identifies the gaps in the system’s security and other sensitive elements which may be subjected to attacks. It serves to provide the maximum safety of data, disclosure of which may be possible due to the system bugs.
Reliability Testing defines the time between the first and the next failure and how much time it is required to fix the issue.
Scalability testing verifies the ability of the system to be subjected to the increasing stress on a system and other parameters when it is required.
Usability Testing shows if the software is user-friendly and if it corresponds to the requirements of the target group of customers. This testing defines the degree of access to each element and estimates the difficulties which may arise in users’ practice.
Difference Between Functional & Non-Functional Testing
Characteristics of Non-functional Testing or Why to Use It
This testing produces and collects metrics for development and research. It also reduces production risks and expenses on non-functional aspects.
Examined testing increases:
- efficiency;
- usability;
- knowledge about the system’s behavior and its use;
- stability of installation, setup, execution, management, and monitoring.
The described testing should not be subjective but measurable. However, it is not likely for this testing to know the exact numbers at the development stage. Here we can outline such main characteristics as:
- no definite data at the beginning;
- requirements are the priority;
- correctly defined quality attributes.
Also, such testing serves to find out the following parameters:
- speed of the system’s response;
- compatibility with different platforms;
- time of recovery after breach or interruption;
- time of adaptation to the needs of a new user;
- number of users who can log in simultaneously;
- stability of installation on different devices.
Examples of Checklists for Non-functional Testing
Here are the checklists on several types of testing with non functional requirements examples:
Performance Testing Checklist
- it should be examined how much time is required for the system`s response on loading, input and output data, browser reload, etc;
- the number of actions should be defined while performing a load test;
- the test environment should be simulated according to the real circumstances of potential usage;
- import and export activities and calculations should be tested;
- interaction with other systems should be tested;
- the duration of transporting the data through databases;
- increasing stress on the system should be checked.
Security testing Checklist
- the access of authorized user must be verified and his ability to log in must be checked;
- it must be verified whether the user has the access only to the modules where such access is provided;
- password should be tested on its compliance with requirements on symbols, length, complexity, etc;
- the ability to make a data backup must be tested through copying the data to a secured folder;
- the access to the internal links should be tested.
Documentation Testing Checklist
- documentation on system and user;
- documentation for preparation and trainings.
Conclusion on Non-Functional Testing
The mentioned non functional testing types and their characteristics show how much can be missed if neglect non-functional testing. The importance of this testing is caused by the variety of bug-sources which must be carefully examined. It is not always reachable through functional testing, and some features of soft can be covered only with non-functional tests, where it is important to know the differences functional vs non functional requirements. For successful implementation of this testing, QATestLab is ready to provide the more detailed info on each mentioned test and other related fields for your review.
Learn more from QATestLab
Related Posts:
- Decoding the Science of Software Testing for Hardware
- What you should know about testing your E-learning platform
- Usability and Performance Testing of Mobile Apps
Very good write and article.
Non-Functional Testing span the following,
Performance Testing- This includes load, volume, capacity and stress testing which requires a comprehensive strategy to address various challenges.
Compatibility Testing- Helps in verifying that the applications work as expected across different browsers, operating systems and technology stacks.
Disaster Recovery (DR) Testing- Conducted to verify the disaster recovery plans of IT systems.
Nice read.