DEV Community

Kruthika
Kruthika

Posted on

Functional & Non Functional Software Testing differences and relevant example...

Functional Testing

Functional testing check each features of the software working fine or not based on customer requirement which in turn validates software actions

_Example:- _

Testing the software functionalities - consider any web page and do perform functional testing for that web page, we need to check every individual buttons / icons functioning properly or not and for every action there should be result ( whether redirecting to another web page (or) pulling the data from database )

Functional testing has below types:-

1) Unit Testing - Testing individual units or components of the software before it is integrated with other components.

2) Integration Testing - To test the integrated components are working together as intended and data flows smoothly between them or not, this testing is done after unit testing only.

3) Interface Testing - Testing when different software components (or) systems communicate with one another, the interfaces are API, web services, interface testing is to make sure the date exchange mechanism between them working fine or not.

4) Regression Testing - Testing the software to verify the newly added components are not making any changes / defects and also to make sure the existing functionalities working fine or not.

5) User Acceptance Testing - User does this testing to make sure it is acceptable by them before the project goes live.

Non Functional Testing

Non functional testing is to validate the performance, reliability of the software based on customer expectation

Example:-

Consider any web page and to perform non functional testing need to test their speed, responsiveness, reliability and security of the software.

Non Functional Testing has below types:-

1) Documentation Testing - does document review / document validation, the document could be SRS, CRS/ design doc/ user manuals, this testing will be performed through out the software development lifecycle to ensure the software document accurately reflects the software functionalities & user instructions.

2) Installation Testing - This testing is to verify Installation and Uninstallation of the software is error free, this will check the software compatibility with different platforms.

3) Performance Testing - This testing is to verify the speed, responsiveness, stability, scalability of the software application.

4) Reliability Testing - Is to test the software consistence and accuracy over time to rectify potential issues like crashes, data corruption, unexpected behaviour during prolonged use.

5) Security Testing - Is to identify vulnerabilities to make sure software able to protect data, resist attacks & maintain confidentiality and integrity, this testing is usually done by cyber.

Top comments (0)