For a majority of testing cases, you will want to be using equivalence class testing over boundary class testing. Boundary class testing tests the highest and lowest possible values in a function. Equivalence class testing is one of the most well known and effective way of testing a function. Equivalence class testing is essentially an extension of boundary class testing in which values around the highs and lows of a function are tested. The difference with equivalence class testing is we go a step further and partition up the function into sections of values that would make sense to test for the function itself. For example, with a function that checks whether a student has enough credits to graduate, equivalence class testing would check to make sure the function rejects outliers such as values near 0 or extremely high values. This would be in essence boundary class testing. After, since the function is checking for a certain amount of credits, a user would want to test values just higher and lower than that value. The checking of the value near the functions purpose is why equivalence class testing is much more beneficial. A person does not just want to write tests for the boundaries because that would mean that the actual functionality of the function is never tested. The main reason boundary class testing is used is when partitioning the function into smaller sections would not logical sense.