5.1 Non-Functional Testing Overview
Introduction
Non-functional testing is an important part of software testing that goes beyond the functional attributes to assess the performance, reliability, usability, security, compatibility, scalability, accessibility, and risk management of an application. First we’ll look at each of these components in overview, then we’ll dive into more detail about each topic.
Types of Non-Functional Testing
Usability Testing
Usability testing assesses the user-friendliness and overall user experience of the application. This involves:
- User Interface (UI) Testing: Evaluates the visual elements and interaction design.
- User Experience (UX) Testing: Examines the overall satisfaction and ease of use for end users.
Accessibility Testing:
Accessibility testing ensures that the application is usable by individuals with disabilities. Key considerations include
- Screen Reader Testing: Verifies compatibility with screen reader technologies.
- Keyboard Navigation Testing: Ensures that users can navigate through the application using keyboard controls.
Performance Testing
Performance testing evaluates the responsiveness, speed, scalability, and overall stability of an application under different conditions. This includes:
- Load Testing: Assesses the system's ability to handle a specific load or concurrent user interactions.
- Stress Testing: Pushes the system beyond its normal operational capacity to identify points of failure.
- Soak Testing: Evaluates the system's performance over an extended period under a sustained load to identify potential issues related to long-term usage.
Reliability Testing
Reliability testing focuses on the stability and dependability of the software. Key aspects include:
- Availability Testing: Ensures that the system remains available and operational during specified periods.
- Fault Tolerance Testing: Evaluates how well the system handles unexpected failures or disruptions.
Security Testing
Security testing focuses on identifying vulnerabilities and ensuring the protection of sensitive data. Key components include:
- Vulnerability Assessment: Identifies weaknesses in the system that could be exploited.
- Penetration Testing: Simulates cyber-attacks to assess the system's resilience against security threats.
Risk Management
Risk management in non-functional testing involves identifying and mitigating potential risks that could impact the performance, security, or usability of the application. This includes:
- Risk Assessment: Evaluates potential risks associated with non-functional aspects.
- Mitigation Strategies: Implements strategies to address identified risks and minimize their impact.
Conclusion
Each of these different non-functional testing types helps ensure the program is complete and will serve the needs of the users well into the future.
Useful Links: ←Unit 4.4 | Unit 5.2→ | Table of Contents | Canvas