by Nataliia Vasylyna | April 1, 2011 10:00 am
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.
This type of testing serves for checking elements which are non-functional[1]: 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.
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[2] checks if the software is successfully installed and works without issues after installation[3]. 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[4] 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.
This testing produces and collects metrics for development and research. It also reduces production risks and expenses on non-functional aspects.
Examined testing increases:
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:
Also, such testing serves to find out the following parameters:
Here are the checklists [5]on several types of testing with non functional requirements examples:
Performance Testing Checklist
Security testing Checklist
Documentation Testing Checklist
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.
Source URL: https://blog.qatestlab.com/2011/04/01/how-to-involve-non-functional-testing-in-your-project/
Copyright ©2024 QATestLab Blog unless otherwise noted.