Non-functional Testing Checklist
Non-functional aspects of software testing comprises of the ways in which one can ensure that a software meets the software requirements as well as delivers beyond expectations of the end users.
Non-functional testing basically caters to the additional attention required over and above functional testing.
Non-functional testing includes performing the following tests:
- Reliability Testing: : This is kind of a last check done on the application to ensure it does not encounter any failure at the very end moment. The aim is to analyse a product’s reliability so that customers can avail its utility.
- Usability Testing: Usability refers to the way in which a user is going to interact with the system. Usability testing is thus a measure to ensure that the interface is user friendly and offers simplicity of use. Thus the aim is to analyse the extent of satisfaction a user gains from such an application.
- Efficiency Testing: This test aims to verify the amount of time required by the program to execute and generate a relevant output. Therefore it tests efficiency of a program by dividing the number of test cases by the number of hours.
- Maintainability Testing: Maintainability is a continuous process with an aim of maintaining software in the long run. Therefore this test is conducted to ensure that the task of analysing, changing and testing an application does not involve much hassle.
- Portability Testing: Portability in the context of testing aims to test how easily an application can be shifted from one platform to another. The outcome is evaluated based on the amount of time and effort invested to perform the task of shifting.
- Baseline Testing: It is the process of validating requirement specifications and documents based on which test case data is designed. This validation process forms the baseline upon which the whole process of software development depends.
- Compliance Testing: Compliance Testing is a method of validating the correctness of the development procedure as a whole. Complying with the IT standards is what defines the purpose of this testing.
- Documentation Testing: Documents form an important part of software testing. Thus documentation testing aims to verify whether each document conforms to standards. Test documents include test case specification, test plan, test incident report, test log, test procedure.
- Endurance Testing: Endurance Testing is a process of verifying the amount of load a system can handle beyond expected limit. Therefore to ascertain the capacity of the system to overcome obstacles in the long run, endurance testing is performed to ensure that there is no sudden system crash or breakdown.
- Load Testing: Load Testing tests the system under various amounts of load. The idea is to determine a system’s response to both peak and normal conditions. The results obtained are then analysed to identify areas of trouble that could be the cause of degradation.
- Performance Testing: It is to ensure that the system meets the basic criteria in order to deliver the best results. Therefore we can define performance test as the one which determines how fast the system performs under a certain load condition.
- Compatibility Testing: This test determines whether an application is compatible with other applications, hardware, operating system or database.
- Security Testing: Security assurance is very essential to fight the number of cyber threats we are dealing with in the present scenario. A system is vulnerable to cyber-criminal attacks, primarily web based applications. Some of the popular types of fraudulent practices are illegal theft of confidential information, fraudulent practices such as deceiving the end users with fake company credentials etc. therefore we need to make sure that we save out time and efforts by taking preventive measures as much as we can.
- Scalability Testing: Testing a software to measure its capability to cope up with load conditions, number of transactions, increase in the volume of data etc.
- Volume Testing: Volume testing tests the variations of data load at different points of time. It helps us to analyse to what extent do we need to expand our database with increasing number of users.
- Stress testing: Determines the stability of the system by reaching a breaking point to verify its endurance to bear a various levels of load condition. The emphasis is on robustness, availability and error handling under huge amount of data flooded at the system.
- Recovery Testing: It is used to test the system’s ability to recover from the breakdown within least time period. Recovery testing is the recovery plan of the system from a forced failure condition.
Functional tests and non-functional tests are an integral part of software development process. Non-functional tests aim to analyse how efficiently a system is performing. Non-functional testing does not pertain to any particular functionality, rather it checks the overall quality of the system.