Functional and Non-Functional Testing

Indra
DSF Web Services Engineering
3 min readSep 28, 2020

In a good software development life cycle, software testing is a necessary process on a mission to deliver high-Quality software, thus in the software testing process there are two main techniques which are Functional Testing and Non-Functional Testing that will be discussed in this article.

What is Functional Testing?

Is a testing type that covers what the software is capable of based on the requirement specifications.

Functional testing is to check whether the application feature such as major functionality, basic usability, and validation functioning properly compare to the expected result from the requirement.

Variation of Functional Testing

Types of Functional Testing
  • Unit Testing: to test by the smallest part of the application that can be logically isolated in the system
  • Smoke Testing: This test is conducted on initial application build, to check all the critical functionalities are working as expected before continuing to further test
  • Sanity Testing: Sanity testing is conducted on a stable build, to check if there are any impacted module (issue) due to the newly added or changed code in the system
  • User Acceptance: the purpose of this test method is to check whether the system is already met customer acceptability or not
  • Integration Testing: This test method is conducted when two or more system module is combined as one group, to verify the interaction between integrated modules
  • Regression Testing: regression test is performed when there is a new feature or any major deployment to ensure the existing functionality is still behave properly due to updates

What is Non-Functional Testing?

In a non-functional testing type, the test is focused on the system or software behavior rather than a specific function or action

Non-functional testing focus on system aspect that may not be related to a specific function such as security, scalability, usability and several other aspects.

Variation of Non-Functional Testing

Example of Non-Functional testing types
  • Performance Testing: is a test method that determines how fast the performance of the system in some aspect under a particular workload
  • Volume Testing: in Volume testing, the system should be able to accept the huge volume of data, to analyze the system performance by increase the data in the database
  • Load Testing: This method is to test the expected system load and determine the system’s behavior under peak and normal condition
  • Stress Testing: Stress Testing could be used to evaluate the system behavior when a significant amount of workload is provided continuously
  • Scalability Testing: in this test method, the system performance is measured its capability to scale up in terms of user load, data volume, and much other performance attributes
  • Usability Testing: is a test method by observing real user reveal the area of confusion and improve overall user experience
  • Security Testing: Security Testing is conducted to make sure that the system is free of threat or any potential risk
  • Reliability Testing: This testing method is conducted to see whether the system is already meet the user requirement in terms of reliability or not before the system is deployed
  • Recovery Testing: is a method to test how the system behaves on the recover process side whenever gone thorough a crash, hardware failure, etc
  • Documentation Testing: Documentation testing is a method to test the system by using several types of document, i.e. Test Plans, Test Cases, Test Log, Test Report, etc

Reference

Visit those articles above for a more detailed explanation regarding Functional and Non-Functional Testing. Thank you for reading!

--

--