Functional and Non-Functional Testing Techniques

Functional testing usually tests the business functionality the application under development is intended to solve, whereas non-functional testing is done to test user-friendly, desirable system requirements of the user.Today we are going to discuss common functional and non-functional software testing techniques in brief.

Functional Testing can include techniques like

1) Equivalence partitioning
Equivalence testing is basically generating a group of test cases with the help of a technique called partitioning. It is basically used in identifying the partition of value and selecting representative values from within partitions and deciding how values can be tested. A test case in equivalence partitioning is a representative of whole partition. Each partition depicts a unique characteristic and thus one (or few) test case per partition is enough to test the whole partition. This makes testing process simple.

2) Boundary value analysis
Boundary value analysis (BVA) is another way to test the functionality of the application under testing (AUT). The test cases are prepared in such a way so as to test the boundary conditions of the logic used in the application. It is important because most of the problems are suspected at the boundary of the application. Example if a system allows input from 1-100, thin in BVA test cases are designed to test inputs of 0,1,2 on lower side and 99,100,101 on upper side of the boundary.

3) Intrusive Testing
Intrusive testing is basically done by deliberately modifying the behavior of the application to be tested and see how it behaves to this modification.

4) Random Testing
It is used for generating the test cases automatically. In this we basically generate the test cases randomly and generate the output. It is very difficult to track the output of the auto generated test cases. So this is not a popular method of testing.

5) Thread Testing
The purpose here is to test the business functionality of the application under test from end to end. Basically in this one tester tests the transaction processing as they are going to take place in the application once it is used by end-user.

Nonfunctional testing includes following techniques

1) Configuration /installation testing
This testing basically checks whether the hardware and software have been installed correctly, all the necessary data connections have been established, system default testing has been done or not, interfaces to other hardware system is done or not and whether the installation of one of the software affect other software. Here we are trying to establish if the software and hardware environment have been configured properly for the new application to run properly.

2) Compatibility and interoperability testing
It is basically used to ensure that when AUT runs in the live environment, it does not affect the other softwares present on the system. If any issue is caught, it is immediately reported to developers’ team. While checking the interoperability of the system, it is made to run on different system configurations (OS, hardware, etc) and it is checked if it misbehaves.

3) Graphical user interface testing
GUI is used to test how intuitive any system is from user point of view. Issues pertaining to navigation, usability, commands and accessibility are considered.

4) Performance Testing
Performance of the application is tested using various criteria like system response time, external interface response time, memory utilization and central processor unit utilization.

5) Reliability Testing
It focuses on verifying the application’s failure frequency and compliance to language, syntax and resource usage.

6) Security Testing
Security issues are a major concern for any organization, especially AUT (application under test) which are web based products and services. It focuses to ensure the confidentiality, availability and integrity of data and software.

7) Stress testing
The purpose of this testing is to examine the ability of the software to perform correctly under instantaneous peak loads with the aim of identifying defects that appears under adverse conditions.

Read More

Beta Testing
Integration testing
Unit Testing Benefits
Software Bug and Defect Life Cycle

Copyright ©