Functional testing at a glance

Functional testing is essentially testing to make sure that the application or system is behaving as expected.


There are different types of functional testing and the amount and type of functional testing that you would perform is largely dependent on the type of solution, complexity and scale of the project. 


Testing a brochure site for example would not require the same level of testing as an enterprise wide workflow management system. Broadly speaking though, functional testing can include the following: 

 

  • Unit Testing – unit testing is usually performed by a developer and entails writing unit tests which call the methods in each unit and validates that when the required parameters are passed the value returned is as expected.
  • Smoke Testing - Testing that is done after each build is released to ensure build stability.
  • Sanity Testing - Testing that is done to ensure that all the major features of the application or system are working correctly.
  • Regression Tests - Testing performed to ensure that adding new code, enhancements or the fixing of bugs does not break the existing functionality or destabilises the application or system.
  • Integration Tests – Where a solution relies on any form of integration with another system to complete the feature set or pass data, it is important to test that this works perfectly together.
  • Usability or User Acceptance Testing - The final solution is handed to the actual customer in a production-like environment so that they can test the product to make sure that it performs as expected.

 

When undertaking any form of functional testing, you would typically identify the different test scenarios that you would like to test and use this as the basis against which the correct-and-completeness of the solution is measured. These test scenarios are known as test cases and detail the following:

 

  • Test summary
  • Pre-requisites
  • Test Steps and
  • Expected results

 

The more detailed the test cases, the more comprehensive the testing will be. That being said it is worth noting that attempting to write a test case for every scenario is sometimes not possible as it can be a very time-consuming and expensive exercise. It is therefore important to identify the most important and relevant scenarios that need to be completed at a minimum for the solution to be deemed deployment ready.


Functional testing is an important part of the product lifecycle and should not be ignored or made light of. Testing the solution using one, two or a combination of the testing types listed above as well as documenting the test cases and the expected outcomes is essential to ensuring that you deliver a solution that meets your client’s expectations. Not only will you have a client who is willing to sign the solution off, but you would have proactively dealt with any issues that could have caused a system failure post launch, resulting in reputational damage for you and your client.


While functional testing is in itself a comprehensive test type it does not cover the entire scope of system testing which you can read about in our blog post related to software testing .


May 10, 2026
The website you are using is not working as expected and you need to report a bug. How much information should you send to the agency who will be troubleshooting?
April 12, 2026
Content migration efforts can be negatively impacted by both technical and organisational challenges. Overcoming the organisational challenges are key to the overall success of your project.
March 8, 2026
Content migration is a significant undertaken and needs to be carefully planned out well in advance.
Show More