Sunday 12 May 2013

Difference between Functional and Non-Functional Testing?

Functional Testing:

A type of black box testing, functional testing tests an application against the business requirements. Testers can either use automated tools or manual testing tools to verify the function of the code. Listed below are 5 Steps to remember in Functional testing:

1.    Based on the specifications of functions, it involves preparing test data.
2.    The inputs to functional testing are the business requirements.
3.    The output of the functions has to be verified against the functional specifications.
4.    Executing test cases.
5.    Verify the output against the expected output.

The below listed testing are the sub types of Functional Testing.

1.    Unit Testing: Unit testing is very useful to detect bugs and defects right at the beginning of the software development life cycle.
2.    Smoke Testing: Smoke Testing or Build Verification Testing consist of a set of non-exhaustive tests which ensures that the most vital functions work.
3.    Sanity testing: An unscripted type of test, sanity testing focuses on few functional areas of an application.
4.    Integration testing: Integration testing tests an application as a whole to detect if there are any defects in the interaction between the integrated units of the application.
5.    Usability Testing: An evaluation method, unit testing is used to ensure that the user is satisfied with the application.

The other sub-types of Functional testing are:

1.    Interface Testing
2.    System Testing
3.    Regression Testing

4.    User Acceptance Testing.

Non-Functional Testing

Non-Functional Testing, tests an application against the non-functional requirements. These include the quality of the product.  A tester can test the non-functionality of an application after he/she has tested the application against the functional requirements. Listed below are they sub-types of Non-Functional Testing:

1.    Compatibility Testing: This type of testing evaluates the compatibility of an application with a computing environment.
2.    Load Testing/Stress Testing: It is important for a tester to check if the application/website can withstand the load and stress when there are many people assessing it at the same time.
3.    Recovery Testing: Testers will need to check the capability of an application to recover after experiencing hardware failure or crashes.
4.   Security Testing:it is important especially when it comes to applications that require a user to enter critical information such as account or credit card information. Testers have to ensure that such information is being transmitted safely.
5.    Volume Testing: The functions of volume testing are often misunderstood or used interchangeable. It refers to testing an application’s performance with a specific amount of data.

The other sub-types of Non-Functional testing are:

1.    Availability Testing
2.    Baseline Testing
3.    Compliance Testing
4.    Configuration Testing
5.    Documentation Testing
6.    Endurance Testing
7.    Ergonomics Testing
8.    Interoperability Testing
9.    Installation Testing
10.    Localization Testing and Internationalization Testing
11.    Maintainability Testing
12.    Operational Readiness Testing
13.    Performance Testing
14.    Reliability Testing
15.    Resilience Testing
16.    Scalability Testing
17.    Usability Testing



S. No

Functional Testing

Non-Functional Testing
1
Testing developed application against business requirements.
Functional testing is done using the functional specifications provided by the client or by using the design specifications like use cases provided by the design team.
Testing the application based on the clients and performance
requirement.
Non-Functioning testing is done based on the requirements and test scenarios defined by the client.
2
Functional testing covers

· Unit Testing
· Smoke testing / Sanity testing
· Integration Testing (Top Down,
Bottom up Testing)
· Interface & Usability Testing
· System Testing
· Regression Testing
· Pre User Acceptance Testing
(Alpha & Beta)
· User Acceptance Testing
· White Box & Black Box Testing
· Globalization & Localization
Testing
Non-Functional testing covers

· Load and Performance Testing
· Ergonomics Testing
· Stress & Volume Testing
· Compatibility & Migration Testing
· Data Conversion Testing
· Security / Penetration Testing
· Operational Readiness Testing
· Installation Testing
· Security Testing (Application
Security, Network Security,
System Security)

1 comment:

  1. Hello Ajith,
    The Article on Difference between Functional and Non-Functional Testing is informative..It gives detailed information about it. Thanks for Sharing the information about the Functional testing and Non Functional Testing For More information check the detail on difference on Functional testing and Non Functional Testing check,
    Software Testing Company

    ReplyDelete