🛠️ During product design and development:
Stakeholders focus on intended user behavior. Product owners describe this happy path with business requirements. Engineers push code to enable users to do these things. A user who demonstrates this expected behavior follows the happy path.
🧐 These are examples of happy paths:
User creates a new account
User signs in with their new credentials
User retrieves information about their account
But what happens when there’s unintended behavior, like when a user submits invalid inputs? These unhappy path scenarios are often neglected in design and development. But with enough traffic, unexpected inputs will inevitably come from both well-intentioned and malicious users.
🧐 Examples of unhappy paths:
User creates a new account without providing all required inputs
User signs in with invalid credentials
User pastes a SQL query that gets executed (maliciously or unintentionally)
A strong test plan covers both happy and unhappy paths. Positive test cases describe happy path scenarios, where errors result in failed tests. Negative test cases describe unhappy path scenarios, where expected errors result in passed tests.