Functional testing is a quality assurance (QA) process and a type of black-box testing that bases its test cases on the specifications of the software component under test.
Acceptance testing determines that the system works as intended, meets the required specifications, and is acceptable for delivery.
Integration testing is the process of testing the units of a system. The key to software testing and helps to test multiple software modules written by programmers of different levels.