Functional Testing

Functional testing is focused on the functional aspect of the software (Surprise!).

Mainly, it asks the question, “Is the system buggy?” In other words, it focuses on how well the software works according to the design specifications and having all related risks under control. Functional testing checks the core functions, test input, menu functions, installation and setup on localized machines, etc.

As mentioned earlier, especially in functional testing, it is important that teams know if they know what it is they’re testing. Which aspects have already been tested and which are missing? How thoroughly are they tested?

From our point of view, there are three major ways of doing functional testing:

Test cases are often reported in spreadsheets, or better, in specific tools meant for this purpose. The more Agile alternatives to test cases are test sessions, revision checklists and mind-maps to record test ideas rather than having a step-by-step list of actions to test. In any of the key strategies, it is fundamental to have some idea of what the whole is (total test cases, total functionality to be tested, user stories to be covered, etc.), and how to advance. This is what signifies the coverage that is being obtained. Of course, it is necessary to prioritize this according to the levels of importance and risk to the business and users of each aspect.

To achieve testing maturity and especially continuous testing, it must be clear what is being tested, how, and how well. We recommend either scripted or exploratory testing but never ad-hoc testing.