Thursday, 10 October 2013

Functional Testing vs Non- Functional Testing


Functional Testing: Testing the application against business requirements. It is a black box type of testing.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.

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 & LocalizationTesting
Non-functional testing - Non-functional testing is done to ensure that a system/application meets the specified performance requirements. Here, by performance we do not only mean response time, but several other factors such as security, scalability and usability of the application as well. 

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 (ApplicationSecurity, Network Security, System Security)


 Performance Testing: In order to ensure that the response time of a system is acceptable, performance testing is carried out. By setting up a considerable load and a production-sized database, the system is tested for response times of several business critical processes.  

Load Testing: To check whether the system can sustain the pressure or load of many users accessing the system at one time, load testing needs to be carried out. The production load is replicated in the test environment in this case after which the application/system is tested.  

Load_Testing
Stress Testing: This testing is done to pull the system far beyond its capabilities and see how it reacts. Contrary to load testing in which the maximum allowable load is generated, in stress testing, the load generated is more than what the system is expected to handle. 

Volume Testing: When storage requirements and capabilities of the system are to be tested, volume testing is done. When a huge database size is encountered, system’s performance and its ability to exchange data and information are tested in this case.





Performance Testing: In order to ensure that the response time of a system is acceptable, performance testing is carried out. By setting up a considerable load and a production-sized database, the system is tested for response times of several business critical processes.  

Load Testing: To check whether the system can sustain the pressure or load of many users accessing the system at one time, load testing needs to be carried out. The production load is replicated in the test environment in this case after which the application/system is tested. 

Stress Testing: This testing is done to pull the system far beyond its capabilities and see how it reacts. Contrary to load testing in which the maximum allowable load is generated, in stress testing, the load generated is more than what the system is expected to handle. 

Volume Testing: When storage requirements and capabilities of the system are to be tested, volume testing is done. When a huge database size is encountered, system’s performance and its ability to exchange data and information are tested in this case.  - See more at: http://blog.testing-whiz.com/2012/02/types-of-non-functional-software-tests.html#sthash.DP3JSxS1.dpuf