- Nov 16, 2018
- admin
- 0
Non-Functional Testing
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 behaviors’ of that system. This is contrast to functional testing, which tests against functional requirements that describe the functions of a system and its components. The names of many non-functional tests are often used interchangeably because of the overlap in scope between various non-functional requirements. For example, software performance is a broad term that includes many specific requirements like reliability and scalability.
An excellent example of non-functional test would be to check how many people can simultaneously login into a software.
Non-functional testing is equally important as functional testing and affects client satisfaction.
In this tutorial, we will learn
- Objectives of Non-functional testing
- Characteristics of Non-functional testing
- Non-functional testing Parameters
- Type of Testing
- Non-functional Testing Types
Objectives of Non-functional testing
- Non-functional testing should increase usability, efficiency, maintainability, and portability of the product.
- Helps to reduce production risk and cost associated with non-functional aspects of the product.
- Optimize the way product is installed, setup, executes, managed and monitored.
- Collect and produce measurements, and metrics for internal research and development.
- Improve and enhance knowledge of the product behavior and technologies in use.
Characteristics of Non-functional testing
- Non-functional testing should be measurable, so there is no place for subjective characterization like good, better, best, etc.
- Exact numbers are unlikely to be known at the start of the requirement process
- Important to prioritize the requirements
- Ensure that quality attributes are identified correctly
Non-functional testing Parameters
Security
Integrity
Availability
Usability
Reliability
Flexibility
Scalability
Reusability
Portability
Interoperability
- Security:
The parameter defines how system is safeguarded against deliberate and sudden attacks from internal and external sources. This is tested via Security Testing.
- Reliability:
The extent to which any software system continuously performs the specified functions without failure. This is tested by Reliability Testing.
- Survivability:
The parameter checks that the software system continues to function and recovers itself in case of system failure. This is checked by Recovery Testing.
- Availability:
The parameter determines the degree to which user can depend on the system during its operation. This is checked by Stability Testing.
- Usability:
The ease with which the user can learn, operate, prepare inputs and outputs through interaction with a system. This is checked by Usability Testing.
- Scalability:
The term refers to the degree in which any software application can expand its processing capacity to meet an increase in demand. This is tested by Scalability Testing.
- Interoperability:
This non-functional parameter checks a software system interfaces with other software systems. This is checked by Interoperability Testing.
- Efficiency:
The extent to which any software system can handles capacity, quantity and response time.
- Flexibility:
The term refers to the ease with which the application can work in different hardware and software configurations. Like minimum RAM, CPU requirements.
- Portability:
The flexibility of software to transfer from its current hardware or software environment.
- Reusability:
It refers to a portion of the software system that can be converted for use in another application.
Type of Testing
In general, there are three testing types
Functional Testing:
- Unit Testing
- Integration Testing
- User Acceptance testing
- Smoke Testing
- Sanity Testing
Non – Functional:
- Load Testing
- Volume testing
- Performance
- Endurance
- Scalability
- Usability
Maintenance:
- Regression Testing
- Maintenance
Non-functional Testing Types
- Security Testing
- Disaster Recovery Testing
- Compliance Testing
- Usability Testing
- Performance Testing
- Load Testing
- Failover Testing
- Security Testing
- Compatibility Testing
- Usability Testing
- Stress Testing
- Maintainability Testing
- Scalability Testing
- Volume Testing
- Portability Testing
- Documentation Testing
- Recovery Testing
- Internationalization Testing
- Efficiency Testing
- Reliability Testing
- Baseline Testing
- Endurance Testing
- Localization Testing