Software functional testing comes under the quality assurance process. It is a type of black-box testing that roots its test cases on the software specifications being tested. Functions are evaluated by nourishing them with input and assessing the output. The internal program structure is not regularly considered like in white box testing. Functional testing is done to estimate the system compliance or component compliance with particular functional requirements. Usually, functional testing describes the things that the system does.