Positive testing determines whether the application works as expected. It is also referred as ‘Happy path testing’.
Negative testing determines whether the application can handle invalid input and unexpected user behavior. It is often referred as ‘Error path testing’. For example if a user tries to enter a string value in an integer field, a meaningful error message should be displayed to the end-user stating the input value is not valid.
Positive Test Case: Valid Input => Valid Output (as per the requirement specification) Negative Test Case: Invalid Input => Valid Output (Handle unexpected user behavior) Bug / Defect: Valid/Invalid Input => Invalid Output