This document provides an overview of functional testing. It defines functional testing as verifying that each function of a software application operates as specified. It discusses the differences between functional and non-functional testing, the objective and focus of each. Steps in functional testing are identified as determining functionality, creating test data, determining expected outputs, executing test cases, and comparing actual and expected outputs. Types of functional testing and techniques are described along with advantages of the Selenium tool for automation.