Functional testing is part of the process of verifying that the behavior of a system conforms to the originally stated functional requirements.

Functional tests are based on the functions performed by the system and can be carried out at all levels of testing: component, integration, system, acceptance. As a rule, these functions are described in requirements, functional specifications or in the form of system use cases (use cases).

The purpose of functional testing is to confirm that the system is implemented in accordance with the functional requirements presented to it and is fully operational.

3 stages of functional testing

Preparation

An analysis of the source documents about the system is carried out: functional and business requirements, terms of reference, project passport. There is also a development and approval of a test plan, test cases, coordination of project deadlines, the number of iterations, and an assessment of possible risks. The tasks of this stage are carried out jointly with the representatives of the customer.

Performance Testing of the functionality is carried out

Performance Testing of the functionality is carried out manually according to pre-prepared test scenarios. All bugs found are recorded in the bugtracking system. If the client company does not have such a system, the outsource testing moderator company can: provide a test management system on its site, supply the client company with licenses, use the client company’s tools, manage only with an office suite, set up the testing process at the client company on the basis of free funds.

Report

  • Reports on the conducted testing with the list of detected deviations and recommendations for improving the system are developed and agreed upon. If necessary, user training is provided. As a result of this work, a bug report is generated, in which a full description of the errors found and recommendations for their correction are entered.
  • A tester who checks the functioning of an Internet resource has competence in the field of usability, and he will certainly pay attention to the breakdown of the visual component of the site, even if everything works without failures in terms of functions.
  • Strengths and weaknesses of functional testing

Advantages:

  • tests simulate the actual use of the system;
  • Savings by fixing bugs earlier in the software life cycle.

Flaws:

  • the possibility of missing logical errors in the software;
  • likelihood of overtesting.

2 aspects of functional testing

  • requirements;
  • business processes.

Testing from a “requirements ” perspective uses a system’s functional requirements specification as the basis for the design of Test Cases. At the same time, it is necessary to make a list of what will be tested, prioritize the requirements based on risks (if this is not done in the requirements document). And based on the data obtained, prioritize test scenarios (test cases). This approach will allow you to focus and not miss the most important functionality when testing.

Testing from a business process perspective uses knowledge of these same business processes that describe scenarios for daily use of the system. From this perspective, test scripts tend to be based on use cases.

Conclusion

Thus, functional testing makes it possible to determine whether the system meets the stated requirements. At an early stage, identify errors and reduce resources to create a high-quality, fully ready-to-use product.

Feature Image Credits

Author