# Difference between Corner Case Testing, Boundary Case Testing and Edge Case Testing

Can someone explain difference between Corner Case Testing, Boundary Case Testing and Edge Case Testing with an example.

• Sure @PDHide. I was waiting for a while if someone can provide more examples. Commented Mar 13, 2020 at 6:31
• sure thanks : ) Commented Mar 13, 2020 at 6:32
• Note that there is no consensus on these terms, besides Boundary Testing. I could think of at least 3 possible definitions for Corner and Edge Testing, including some shared by the two terms. If somebody is using these terms, I would suggest you straightforwardly ask what this person means. Commented Mar 14, 2020 at 10:44
• Why do I feel like this question was already asked but I can't find it? Ah, it is here: softwareengineering.stackexchange.com/q/125587/3385 Commented Mar 18, 2020 at 17:53

Corner Case Testing:

When the system breaks only for a specific valid input

eg:

Imagine a function getcar() that that takes a number and all numbers from 1-5 are valid inputs:

But,

getcar(wheel=?) function works with all numbers but fails for getcar(wheel=3)

Edge Case Testing:

Here we check that the system handles extreme values of valid limits.

For the above example, the valid edge case scenarios are getcar(wheel=1) and getcar(wheel=5)

Boundary Case Testing:

Here we check that the system handles boundary values around the edge case values.

so in the above example, edge case values are 1 and 5. So, the boundary cases would be 0,2,4,6

These 3 are are common terms used in functional testing services and below are the details with example:-

The edge cases are cases whereby there is one condition tested on the extreme ends of possible values.

For simplicity consider a hardware example, a speaker with a volume range from 0 to 10; has edge cases at 0 and 10. Other example like what would happen if a user tries to upload a file with the maximum size allowed.

Corner cases are where multiple edge conditions are involved in testing. In our speaker example, a corner case could be testing volume extremes (like in an edge case) but at the same time test the edge of bass levels

-A user uploads a file with the maximum size allowed

-Multiple users try to do the same thing

Boundary CasesHere we test at the area around the edges.

For the speaker example with volume range from 0 to 10, possible boundary cases could test the speaker at volume levels 9, and 11 For file upload say file allowed size is 100 then test the upload for file size 99 and 101

Corner Case testing: Sticking to the definition, corner case testing is testing multiple parameters for extreme levels, as the user sticks to the corner of the configuration space.

Boundary case testing: When working on boundary testing, users have to test the system for extreme ends or boundaries of the input values. These usually include start-end, maximum-minimum, just inside-just outside, and lower-upper values.

Edge Case testing: Unlike corner and boundary testing, edge case testing works for checking the system for extreme operating parameters which is either the maximum or minimum value point.

I wonder this is more of a verbal difference between the terms and I would really be looking forward to seeing some more defined use cases and examples on understanding the difference between these three.