Home QA & Testing soorten Functional testing

Functional testing

What is functional testing?

  • Smoke testing
  • Regression testing
  • Integration testing
  • Acceptance testing

What is functional testing?

Functional testing is testing software on the basis of the functional description of the software in order to evaluate its quality and track down potential errors. This concerns the testing of a (pre)defined situation. You essentially compare the outcome of the development to what you wrote down about this beforehand.

  • Which functions is the software expected to have?
  • With which data will we test the described functions and in what way?
  • What outcome do we expect with this data?
  • Performing the test Compare the actual outcome with the expected outcome to see whether the application meets the expectations.

Test scenario (data)  ⇒  Test case  ⇒  Test output  ⇒  Result

Types of functional tests.

There are various types of functional tests that are used throughout the entire software development process and that can optimally align the quality of the delivered product with the desired quality. In order to optimally benefit from this, it is not enough to have the developer do a bit of testing and to put the consultant on this afterwards. Functional testing is performed throughout the entire chain of development and is an art in itself, which should be carried out by specialists.

Common types of functional testing:

  • Unit testing. These tests are often performed by the software developers themselves. They test the code they write on aspects like completeness and methodology. In the framework of functional testing, this is about whether the code is written properly and thus functions.
  • Smoke testing. This is an initial test meant to indicate whether the basic functions are working properly. Using a number of test cases, tests are performed to check whether this version of the software is stable and ready for further development and testing.
  • Sanity testing. This is usually carried out after the smoke test in order to check whether all the primary and important functions of the code are working properly (“are they sane”).
  • Regression testing. A regression test examines whether all system components still function properly after modifications are made to the software.  The focus often lies on components that could potentially be affected by the modifications to the software or where errors in the software were discovered.
  • Integration testing. When different components of the software have to work together, these relationships must be tested. In other words; are they properly integrated?
  • Acceptance test. Also referred to as beta test or usability test. This method of testing is intended to ascertain whether the software is ultimately doing what is expected of it. So in a client situation, this is a test that shows whether the software development is accepted on the basis of the formulated functional requirements. Within Agile development, User Stories can be used for this.

Functional and non-functional testing.

What are the differences between functional and non-functional testing? Whereas functional testing focuses on the predetermined functions of an application, non-functional testing focuses more on the application as a whole. How well does the application perform in given situations and is this sufficient with regards to the desired use?

Functional tests thus concern requirements and functionalities (what it does), whereas non-functional testing concerns expectations and performance under certain conditions. Functional testing can often be performed manually, while non-functional testing must often be simulated.

In the process of drafting wishes and requirements, non-functional testing is often overlooked. A lot can be said about the functionalities, but what is expected from the software as a whole in certain situations is harder to describe or indicate what is expected.

Outsourcing functional testing.

Is it always possible to outsource functional testing? This question is often raised, due to the idea that only the client of the development (the customer, owner of the product) is really aware of the functional requirements of an application. This is of course partly true, because all the knowledge that is not transferred is not available to an external party. However, this is also where the added value of outsourcing functional testing lies. When the information has to be shared with an external party, attention will be paid to recording the functional requirements as accurately as possible. This allows for better testing of the software and improves the end result. When drafting the functional requirements is done properly from the beginning and receives the necessary attention during development, functional testing can easily be outsourced and add value to the development.

Agile testing. Within an Agile development methodology, it is not necessary to describe all the functionalities beforehand. The development commences on the basis of the User Stories, and if the agile process is set up correctly, proper documentation of what exactly is being built in a functional sense will take place during the sprints. By integrating testing in this process, continuous work will be carried out on describing functionalities, creating test cases, performing the testing and evaluating the outcomes. As a result, functional testing is not a session after development is finished, but a continuous circle of describing, testing, evaluating and improving. If professional testers are deployed for this, it is perfectly possible (and often better) to outsource functional testing.

  • Professionaly yesyed
  • Integration with Agile development
  • Save time on development hours
  • Make use of our experience

Egor Gucinsky

"Testing is a preventive activity and focuses on revealing risky from quality point of view areas before testing starts. It is done in order to put dedicated testing stress on areas that are tend to have issues. Testing of functional and business critical scenarios is a priority. Scenarios are prepared beforehand and support development from the beginning."

Check out Technosoft's development

1977 Today
Project management software
Registration of the Technosoft brand
Start development of CAD software
Acquisition of activities by Brunel and establishment in Deventer
Technosoft Germany
Technosoft Moldova
Technosoft Romania
From DOS to Windows platform
Start selling AxisVM software
Introduction 3Muri earthquake software + first KOMO certification
Start Business unit Quality Assurance & testing
Switch to Eurocode software
Start of nearshoring under the name In-shore
Technosoft sold by Brunel through a Management Buy Out
Start development calculation software
merging In-shore and Technosoft brands