0% found this document useful (0 votes)
31 views6 pages

Non-Functional Testing Overview

Uploaded by

Aamir Afzal
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views6 pages

Non-Functional Testing Overview

Uploaded by

Aamir Afzal
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

What is Non Functional Testing?

Types with
Example

What is Non-Functional Testing?


NON-FUNCTIONAL TESTING is defined as a type of Software testing to check non-
functional aspects (performance, usability, reliability, etc) of a software
application. It is designed to test the readiness of a system as per nonfunctional
parameters which are never addressed by functional testing.
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 Software Testing
 Non-functional Testing Types
 Example Test Cases Non-Functional Testing

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 in Software
Engineering.

Non-functional testing Parameters

1) Security:
The parameter defines how a system is safeguarded against deliberate and sudden
attacks from internal and external sources. This is tested via Security Testing.
2) Reliability:
The extent to which any software system continuously performs the specified
functions without failure. This is tested by Reliability Testing

3) 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

4) Availability:
The parameter determines the degree to which user can depend on the system
during its operation. This is checked by Stability Testing.

5) 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

6) 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

7) Interoperability:
This non-functional parameter checks a software system interfaces with other
software systems. This is checked by Interoperability Testing

8) Efficiency:
The extent to which any software system can handles capacity, quantity and
response time.

9) Flexibility:
The term refers to the ease with which the application can work in different
hardware and software configurations. Like minimum RAM, CPU requirements.
10) Portability:
The flexibility of software to transfer from its current hardware or software
environment.

11) Reusability:
It refers to a portion of the software system that can be converted for use in
another application.

Type of Software Testing


In general, there are three testing types

 Functional
 Non – Functional
 Maintenance

Under these types of testing, you have multiple TESTING Level’s, but usually,
people call them as Testing Types. You may find some difference in the above
classification in different books and reference materials.
The above list is not the complete as there are more than 100 Types of
Testing and counting. No need to worry, you will pick them up as you age in the
testing industry. Also, note that not all testing types apply to all projects but
depend on the nature & scope of the project. More on this in a later tutorial.

Non Functional Testing Types


Following are the most common Types of Non Functional Testing :

 Performance Testing
 Load Testing
 Failover Testing
 Compatibility Testing
 Usability Testing
 Stress Testing
 Maintainability Testing
 Scalability Testing
 Volume Testing
 Security Testing
 Disaster Recovery Testing
 Compliance Testing
 Portability Testing
 Efficiency Testing
 Reliability Testing
 Baseline Testing
 Endurance Testing
 Documentation Testing
 Recovery Testing
 Internationalization Testing
 Localization Testing

Example Test Cases Non-Functional Testing


Following are examples of Non-Functional Testing

Test Case
Test Case Dom
#
Application load time should not be more than 5 secs up to 1000 users accessing Perf
1
it simultaneously Test

Com
2 Software should be installable on all versions of Windows and Mac
Test

Acce
3 All web images should have alt tags
test

Common questions

Powered by AI

Portability in non-functional testing enhances flexibility by verifying that software can be easily transferred and adapted to different hardware or software environments. This flexibility is critical for applications that need to be deployed across multiple platforms or updated in diverse configurations. By ensuring minimal effort is needed to transition between environments, it reduces deployment time and costs, while increasing the software's adaptability to future technological changes and client requirements .

Usability testing evaluates the ease with which users can interact with a software system, focusing on learnability, efficiency, and satisfaction. In non-functional testing, it ensures that the system meets user-friendly standards and identifies areas for improvement in user experience. The evaluation is typically conducted by observing actual users as they complete tasks to assess how intuitive and efficient the system is .

While both stress and performance testing are types of non-functional testing, they serve distinct purposes. Stress testing pushes the system beyond its operational limits to evaluate its ability to withstand extreme conditions and determine break points, ensuring stability under unexpected loads. Performance testing, on the other hand, measures how the system performs under normal and expected load conditions, focusing on response times, throughput rates, and resource usage. Each is important because stress testing reveals how a system behaves under strain, which is critical for service reliability; performance testing ensures the system meets user requirements and SLA standards in typical scenarios .

Non-functional testing contributes to reducing production risks and costs by identifying issues related to system performance, reliability, and scalability before the software is deployed. By optimizing how the product is installed, executed, and managed, it prevents potential costly failures and ensures the system performs efficiently under various conditions, thus minimizing unexpected maintenance costs and enhancing user satisfaction .

Scalability is crucial in non-functional testing because it measures the software's ability to handle increased loads or demand without performance degradation. It ensures that the application can expand its processing capacity. This is typically tested through scalability testing, which subjects the software to varying loads to observe how it copes with increased demand and ensures the system's performance remains stable under high usage .

Non-functional testing is designed to assess non-functional aspects such as performance, usability, reliability, etc., of a software application. Its purpose is to evaluate the readiness of a system according to parameters not addressed by functional testing. Unlike functional testing, which validates specific actions and functions of the software, non-functional testing optimizes the product's usability, efficiency, maintainability, and portability. It also aims to reduce risks and costs associated with non-functional components .

Security and reliability are critical parameters in non-functional testing that significantly influence software deployment strategies. Security testing ensures the system is protected against both internal and external threats, essential for safeguarding user data and maintaining system integrity. Reliability testing confirms the system's consistent performance without failures, crucial for user trust and satisfaction. Together, these tests affect deployment strategies by dictating security measures, required redundancies, and uptime guarantees, ultimately guiding decisions on monitoring and maintenance protocols post-deployment .

Interoperability testing ensures software quality by verifying the software's ability to interact with other systems and share information seamlessly. It is significant because, in today's interconnected digital environment, systems often need to communicate and work together to provide comprehensive user solutions. Successful interoperability testing confirms that the software can operate in a broader ecosystem without malfunctions or data losses, enhancing its utility and robustness .

Prioritizing non-functional requirements is important because they directly impact user satisfaction, system performance, and operational efficiency. During testing, it is crucial to assess and align these priorities with business goals and end-user expectations. This should be approached by engaging stakeholders early to identify critical non-functional criteria—such as security, usability, and performance—establishing clear metrics and thresholds for each, and allocating resources to address high-priority areas first. This approach ensures balanced resource utilization and that critical aspects affecting user experience and operational viability are addressed effectively .

Reliability testing contributes to improving a system's performance under constant usage by verifying that the system consistently performs its intended functions without failures over time. This type of testing helps identify and rectify weaknesses in the system's architecture and operation that might lead to unexpected downtimes or errors. As a result, it ensures that the application can handle prolonged use and user demand efficiently, leading to improved trust and satisfaction among users who rely on the system for critical tasks .

You might also like