• Functional testing : Functional testing demonstrates
what a product does.
• Non- Functional testing : Non-Functional testing
demonstrates how well the product behaves.
***People’s desire to purchase or use product may be more
affected by non-functional qualities.
Attributes of Good software
* International Organization for Standardization (ISO) by the International Electro technical Commission (IEC).
Reliability testing is done to verify that software is capable of performing a failure-
free operation for a specified period of time in a specified environment.
Why to do Reliability Testing ?
• To find the structure of repeating failures.
• To find the number of failures occurring is the specified
amount of time.
• To discover the main cause of failure
Software reliability is measured in terms of mean time
between failures (MTBF).
MTTF = Mean time to failure
MTTR = Mean time to repair
MTBF = MTTF + MTTR
• Load testing - It is the simplest form of
testing conducted to understand the
behavior of the system under a specific load.
Load testing will result in measuring
important business critical transactions and
load on the database, application server,
etc., are also monitored.
Performance testing, a non-functional testing technique performed to find the response time
of the system with more users, more data or longer duration.
• Stress testing - Stress testing is used to
test the stability & response time of the
system by applying more load then designed
• Ex : JMeter, Load runner
• All the features should be easy understandable.
• The language used should be simple and
understandable by a common person.
• Tool tip should be provided to help user.
• Meaningful error messages should be shown.
• Look and feel should be pleasant.
Usability testing, a non-functional testing technique that is a measure of how easily the
system can be used by end users.
Key things to take care while performing usability testing:
• Verifying the development standards such
as structured programming.
• standards for database approach.
• Verify if the input, the processing and the
output are implemented separately
• Verify if the application is modular.
• Verify if the algorithms are optimized.
The term maintainability corresponds to the ability to update or modify the application. This is
an important as the application is subjected to changes throughout the software life cycle.
Checklist for maintainability testing
Following are the attributes of the portability
Portability testing is a process of testing how easy is to move software or product from one
environment to another.
It is measured in terms of maximum amount of effort required to transfer from one system to
The failures during the portability testing can help to identify defects that were not detected
during unit and integration testing.