Article

Functional Testing

August 15, 2023

Functional testing is a form of software testing where you check if your application does what it’s supposed to. Read more.

Functional testing is a form of software testing where you check if your application does what it’s supposed to. Read more.

Functional testing is a form of software testing where you check that your application does what it’s supposed to. In effect, it’s a form of black box testing because you are only concerned with what it does, not how it does it. This is different from unit and integration testing, where you also care about how the software works. Functional testing should test your application from a user’s perspective, however, it’s not the same as user acceptance testing. It can happen at any stage in the development cycle once you have working code to test.

Functional testing…

  • is about the functionality of your application, not how it achieves it.
  • is testing against the business/design requirements of your application.
  • is about what the user sees and experiences, but is not the same as user acceptance testing.
  • is not interested in the performance and reliability of your application.
  • s generally black box.
  • can happen at any stage in the development cycle, but generally is done during system and acceptance testing.
  • should test all the moving parts of your code. This requires careful thought and test planning.
  • should use carefully designed test data with known expected outcomes. This should come from the requirements/design.
  • is an essential part of any test plan.
  • can be automated relatively easily.

Functional testing is vital

Without functional testing, you can’t know that your application meets its requirements. It may pass all unit tests and non-functional tests with flying colors. But if any functionality is broken, the whole application is broken. This means that you have to plan your testing really carefully. Every user journey should be tested, including ones that might be unusual or non-obvious. Doing this requires cooperation between the product team (who understand what the application should do) and the test team.

What’s required for functional testing?

Functional testing can be done manually. However, it’s best if you can automate it. Functional testing automation tools will help make your life easier, especially if you are testing a complex application. Nowadays, many applications are browser-based rather than native. Such web applications are often easier to test. However, there are many issues relating to test automation. Especially when you are using functional testing tools based on Selenium.

About the author

author photo: Tamas Cser

Tamas Cser

FOUNDER & CTO

Tamas Cser is the founder, CTO, and Chief Evangelist at Functionize, the leading provider of AI-powered test automation. With over 15 years in the software industry, he launched Functionize after experiencing the painstaking bottlenecks with software testing at his previous consulting company. Tamas is a former child violin prodigy turned AI-powered software testing guru. He grew up under a communist regime in Hungary, and after studying the violin at the University for Music and Performing Arts in Vienna, toured the world playing violin. He was bitten by the tech bug and decided to shift his talents to coding, eventually starting a consulting company before Functionize. Tamas and his family live in the San Francisco Bay Area.

Author linkedin profile