Non-functional Testing Is The Testing Of A Software Application Or System For Its Non-functional Requirements: The Way A System Operates, Rather Than Specific Behaviours Of That System
1.Explain in detail about Non Functional Testing
In non-functional testing the quality characteristics of the component or system is tested. Non-functional refers to aspectsof the software that may not be related to a specific function or user action such as scalability or security. Eg. How manypeople can log in at once? Non-functional testing is also performed at all levels like functional testing.
Non-functional testing includes:
Reliability Testing : Reliability Testing is about exercising an application so that failures are discovered and removedbefore the system is deployed. The purpose of reliability testing is to determine product reliability, and to determine whetherthe software meets the customer’s reliability requirements.
Usability Testing : In usability testing basically the testers tests the ease with which the user interfaces can be used. It teststhat whether the application or the product built is user-friendly or not.
Usability testing includes the following five components:
Efficiency Testing : Efficiency testing test the amount of code and testing resources required by a program to perform aparticular function. Software Test Efficiency is number of test cases executed divided by unit of time (generally per hour).
Maintainability Testing : It basically defines that how easy it is to maintain the system. This means that how easy it isto analyze, change and test the application or product.
Portability Testing : It refers to the process of testing the ease with which a computer software component or applicationcan be moved from one environment to another, e.g. moving of any application from Windows 2000 to Windows XP.This is usually measured in terms of the maximum amount of effort permitted. Results are measured in terms of the timerequired to move the software and complete the and documentation updates.
Baseline Testing : It refers to the validation of documents and specifications on which test cases would be designed. Therequirement specification validation is baseline testing.
Compliance Testing : It is related with the IT standards followed by the company and it is the testing done to find thedeviations from the company prescribed standards.
Documentation Testing : As per the IEEE Documentation describing plans for, or results of, the testing of a system orcomponent, Types include test case specification, test incident report, test log, test plan, test procedure, test report. Hencethe testing of all the above mentioned documents is known as documentation testing.
Endurance Testing : : Endurance testing involves testing a system with a significant load extended over a significantperiod of time, to discover how the system behaves under sustained use. For example, in software testing, a system maybehave exactly as expected when tested for 1 hour but when the same system is tested for 3 hours, problems such asmemory leaks cause the system to fail or behave randomly.
Load Testing : A load test is usually conducted to understand the behavior of the application under a specific expectedload. Load testing is performed to determine a system’s behavior under both normal and at peak conditions. It helps toidentify the maximum operating capacity of an application as well as any bottlenecks and determine which element iscausing degradation. E.g. If the number of users are in creased then how much CPU, memory will be consumed, what isthe network and bandwidth response time
Performance Testing : Performance testing is testing that is performed, to determine how fast some aspect of a systemperforms under a particular workload. It can serve different purposes like it can demonstrate that the system meetsperformance criteria. It can compare two systems to find which performs better. Or it can measure what part of the systemor workload causes the system to perform badly.
Compatibility Testing : Compatibility testing is basically the testing of the application or the product built with thecomputing 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.
Security Testing : Security testing is basically to check that whether the application or the product is secured or not. Cananyone came tomorrow and hack the system or login the application without any authorization. It is a process todetermine that an information system protects data and maintains functionality as intended.
Scalability Testing : It is the testing of a software application for measuring its capability to scale up in terms of any ofits non-functional capability like load supported, the number of transactions, the data volume etc.
Volume Testing : Volume testing refers to testing a software application or the product with a certain amount of data.E.g., if we want to volume test our application with a specific database size, we need to expand our database to that sizeand then test the application’s performance on it.
Stress Testing : It involves testing beyond normal operational capacity, often to a breaking point, in order to observe theresults. It is a form of testing that is used to determine the stability of a given system. It put greater emphasis onrobustness, availability, and error handling under a heavy load, rather than on what would be considered correct behaviorunder normal circumstances. The goals of such tests may be to ensure the software does not crash in conditions ofinsufficient computational resources (such as memory or disk space).
Recovery Testing : Recovery testing is done in order to check how fast and better the application can recover after it hasgone through any type of crash or hardware failure etc. Recovery testing is the forced failure of the software in a varietyof ways to verify that recovery is properly performed. For example, when an application is receiving data from a network,unplug the connecting cable. After some time, plug the cable back in and analyze the application’s ability to continuereceiving data from the point at which the network connection got disappeared. Restart the system while a browser has adefinite number of sessions and check whether the browser is able to recover all of them or not.
Internationalization and localization Testing : Internationalization is a process of designing a software application sothat it can be adapted to various languages and regions without any changes. Whereas Localization is a process ofadapting internationalized software for a specific region or language by adding local specific components and translatingtext.