Non functional testing is a type of mobile app testing in which we deal with the non-functional aspects of the application like usability, performance, reliability, etc. A suitable example of non-functional testing would be to test how many people can simultaneously login into a software.
Objectives of non-functional testing
- Non-functional testing aims to increase the portability, efficiency, usability, and maintainability of the product.
- It can reduce risks and costs associated with the software.
- It can also optimize the installation, execution, setup, managing, and monitoring of the software.
- It can also help in internal research and development.
- It helps improve the knowledge of the product’s performance and behavior.
Characteristics of non-functional testing
- This testing should be quantified so that there is no scope for non-measurable comments like good, bad, worst, etc.
- You might not know the exact number at the start of the testing process.
- You must prioritize the requirements.
- You must be able to identify quality attributes in software engineering.
Types of non-functional testing
- Load testing
- Performance testing
- Compatibility testing
- Failover testing
- Stress testing
- Usability testing
- Scalability testing
- Maintainability testing
- Security testing
- Volume testing
- Compliance testing
- Disaster recovery testing
- Portability testing
- Efficiency testing
- Baseline testing
- Reliability testing
- Documentation testing
- Endurance testing
- Internationalization testing
- Recovery testing
- Localization testing
Parameters of non-functional testing
- Security: In today’s world security is the most important aspect of any software. You must be able to keep the details of the customer secured. Your software should be safeguarded against sudden and deliberate attacks.
- Reliability: Your software should be able to work continuously for long hours without failure. Reliability is very important for any software to be accepted by the masses. Your software should be able to perform for long hours without failure.
- Survivability: Your software should be able to perform for long hours. In case, your system fails due to some reason or the other, it should be able to recover itself and start working again. This is done by recovery testing.
- Availability: Availability refers to the dependability of the software. The user should be able to depend on your software. It is done using stability testing.
- Usability: The user should be able to use the software with ease. By using we mean that the user can learn, operate, prepare inputs and outputs with ease. This is done using usability testing.
- Scalability: Your software should be able to scale itself as per the requirements of the user. Scalability is very important in today’s world when the internet is flooded with new users. This is done by using scalability testing.
- Interoperability: Your software will not work independently. The user may use much different software simultaneously. This is why interoperability of the software is important. This is done using interoperability testing.
- Efficiency: Your software must be efficient. It should be able to handle quantity, capacity, and response time. Efficient software is loved by the masses.
- Flexibility: In today’s world there are many different types of hardware are available. Your software should be flexible enough to adapt itself to different configurations, like CPU and RAM requirements.
- Portability: It is not that your user will use the same hardware year after year. They may change their hardware. So your software must be portable enough.
- Reusability: Reusability is another important factor in non-functional testing. A portion of the software can be converted for use in another application.