Functional testing is an integral part of the process of verifying that the behaviour of a system corresponds to the originally stated functional requirements.
Typically, functional tests are based on the functions performed by the system and can be performed at levels of testing: integration, component, system, acceptance. For the most part, these functions are included in requirements, functional specifications or in the form of system use cases (use cases).
The objective of Oracle functional testing is to confirm that the system is implemented in accordance with the functional requirements of the organization and is entirely operational.
Three stages of functional testing
In the initial phase, a comprehensive analysis of the source documents about the system is performed, which includes terms of reference, functional and business requirements, and project passport. In addition, there is also a development and approval of test plans, test cases, the number of iterations, coordination of project deadlines and an assessment of possible risks. Most of the tasks at this stage are performed jointly with the customer’s representatives.
In the next step, performance testing of the functionalities is performed manually based on the pre-prepared test scenarios. All bugs found in the functional testing oracle are recorded in the bug tracking system. If the client organization lacks such a system, the outsource testing company can: offer a test management system on its site, supply the client company with necessary licences, utilize the client company’s resources, work only with an office suite, install and assemble testing processes at the client company based on free funds.
Reports on the test performed with the list of detected bugs and recommendations for improving the system are developed and agreed upon. If required, staff training is also provided. Thanks to the results of tests performed, a bug report is generated, which includes comprehensive descriptions of the errors revealed and recommendations for their elimination.
A functional tester who performs the functional testing oracle has competence in the field of usability, and he will pay special attention to the breakdown of any functionality, even if everything works without fail in terms of functions.
Advantages and disadvantages of functional testing:
- Tests help simulate the actual usage scenario.
- Savings in terms of fixing bugs earlier in the software life cycle.
- Chances of missing logical errors in the software.
- Possibility of overtesting.
Two aspects of functional testing:
- business processes.
Functional testing oracle from a “requirements perspective” utilizes a system’s functional requirements specification as the basis for the design of Test Cases. In the meantime, it is essential to make a list of what will be tested, prioritize the requirements based on risks (if such a thing is not included in the requirements document). And based on the data received, prioritize test cases scenarios (test cases). Such an approach will help organizations focus and not miss any essential functionality while testing.
From a business process perspective, functional testing oracle utilizes knowledge of these same business processes that explain different scenarios for daily use of the system. From this perspective, test scripts tend to be based on use cases.