Functional testing is the earliest and most fundamental branches of [[Software Testing]] because it verifies whether something _works_. ## Types of functional testing - Manual testing - Automated tesitng Also see [[Software Testing#Types of testing|Types of software testing]] for more general ways to organize different forms of testing. ## Problems in functional testing ### Device segmentation Unlike [[Operational testing]], which is generally more focused in the average user's experience, functional testing seeks to achieve a reasonable amount of test coverage across all potential user paths. This can be a problem because different devices, operating systems, and firmware can all affect a user's functional experience. [[Testing video games]] ### Prioritization is difficult [[Exhaustive testing is impossible and impractical]], so application teams must perform risk-based analyses to determine which areas are most prone to defects or the most critical to the company's business. ### Automation is a double-edged sword [[Test automation has a compounding rate of return.]], but if teams attempt to automate too much, they also risk wasting effort. Not everything can or should be automated, but it isn't always easy to find the line.