What is functional vs non-functional testing?
Answer
Functional testing verifies that the software functions as specified — testing features, user interactions, and business logic. Examples: "Does the login button log the user in?" "Does the payment form correctly process a purchase?" Includes: unit tests, integration tests, acceptance tests, E2E tests. Non-functional testing tests the quality attributes of the software beyond its features. Examples: Performance testing: how fast? how many concurrent users? Load testing: behavior under expected load. Stress testing: behavior under extreme load (breaking point). Security testing: pen testing, vulnerability scanning. Usability testing: is it easy to use? Accessibility testing: WCAG compliance. Compatibility testing: cross-browser, cross-device. Reliability/availability testing: uptime, MTBF. Non-functional requirements are often overlooked but define the quality of a system — a functionally correct but unusably slow app is still a failure.