Non-Functional Testing

Testing Coverage –Non-Functional Testing

While functional tests determine if the system does what it’s supposed to, non-functional tests determine how well the system performs the tasks it was designed to do. These tests validate the readiness of a system, or subsystems based on predefined criteria that are not generally covered in functional tests. Non-functional tests look deeper into the system to make sure both the hardware and software can handle heavy loads, can withstand hacking attempts, or even make sure all of the user documentation is thorough and useful to the end user. It also takes into consideration the expectations of the end user. This process verifies the readiness of the entire system and can have a great influence on your client’s satisfaction. During non-functional testing, the attributes verified are not specific to any one function, but rather the quality of the system as a whole. It helps to answer questions such as: “How fast does it respond?”, “How many people can login at once?”, “How quickly can a new user learn the application?”, or “Is it suitable from the perspective of the typical end user?”

While it’s easy for non-functional requirements to be vague, proper testing demands that requirements are very specific and reasonable. A stakeholder may want the system ‘to be fast’, but testers need criteria that are measurable. Non-functional requirements need to be specific, such as: ‘the system should respond within 2 seconds during a normal load and 5 seconds during a heavy load’, with the definitions of normal and heavy loads given as well. A system could easily meet all functional requirements but still not demonstrate appropriate behavior to an end user leading to loss of trust in the system or a lack of desire to use it. These tests are vital to ensuring that your customers don’t look to the competition.

Examples of non-functional testing types include security testing that validates the safety of customer information, performance testing that evaluates the application and processes under varied stressors, usability testing that assesses navigation and flow, or comparison testing that places your system up against its competitors for an in depth evaluation.

Comparison Testing

Comparison testing comprises of comparing the contents of files, databases, against actual results. They are capable of highlighting the differences between expected and actual results.

Compatibility Testing

It is basically the testing of the application or the product built with the computing environment. It tests whether the application or the software product built is compatible with the hardware, operating system, database or other system software or not.

Configuration Testing

Configuration testing is the process of testing the system with each one of the supported software and hardware configurations. The Execution area supports configuration testing by allowing reuse of the created tests.

Endurance Testing

Endurance testing is a non functional type of software testing. It is a type of non-functional testing. It is also known as Soak testing. Endurance testing involves testing a system with a significant load extended over a significant period of time, to discover how the system behaves under sustained use.

Globalization Testing

A product is said to be Globalized when that particular product can be run independent of its geographical and cultural environment. This type of testing technique validates whether the application can be used all over the world that accepts all the language texts.

Installation Testing

Installation testing is a kind of quality assurance work in the software industry that focuses on what customers will need to do to install and set up the new software successfully. The testing process may involve full, partial or upgrades install/uninstall processes.

Load Testing

Load testing is the process of putting demand on a software system or computing device and measuring its response. Load testing is performed to determine a system’s behavior under both normal and anticipated peak load conditions.

Mobile Testing

Additionally, wearable application testing is an interesting market. Bluetooth, GPS, Sensors, Wi-Fi are some of the core technologies at play in wearables. A lot of importance is needed here for field testing, user focus, and looking at areas where hardware and software need to be tested in unison.

Performance Testing

Performance testing is done to determine the performance of system, to measure, validate or verify quality attributes of the system such as Speed, Scalability Responsiveness, and Stability under variety of load conditions.

Scalability Testing

Few scalability attributes are Response time, Throughput, Time (Session time, reboot time, time, etc.),Performance measurement with number of users, Request per seconds, Transaction per seconds, Network Usage, CPU / Memory Usage, Web Server ( request and response per seconds and many more).

Security Testing

Security testing is a type of software testing that is performed to ensure whether an application is secured or not by checking how much application is vulnerable to attacks if any non-authorized person tries to access the data.

Static Testing

Static Testing, a software testing technique in which the software is tested without executing the code. It has two parts as listed below: Review – Typically used to find and eliminate errors or ambiguities in documents such as requirements, design, test cases, etc.

Stress Testing

Stress testing is the Non-functional testing that is used to test the stability & reliability of the system and ensures that the system would not crash under unfavorable conditions. Stress testing is mainly done to determine the limit, at which the system or software or hardware breaks.

Usability Testing

Usability testing is a way to see how easy to use something is by testing it with real users. Users are asked to complete tasks, typically while they are being observed by a researcher, to see where they encounter problems and experience confusion.