I was amazed when I learned all of the different types of test design techniques. When are you supposed to use equivalence partitioning or equivalence class, boundary value analysis, decision tables, classification trees, etc.? While I knew some of the techniques, the class taught me their real names! Other techniques were completely new to me, like equivalence partitioning. This form of partitioning is similar to taking a customer list from a pet supply store and identifying different groups of customers. For instance, customers that buy dog food, ones that purchase cat food and ones that belong to the store’s buying club.
As I mentioned in a previous article, testing everything in an application is impossible. Risks need to be analyzed and decisions need to be made. If I am testing an application that includes a requirement such as “The account number must be six digits in length and the first number must be a non-zero digit” how do I determine which values to use? I certainly don’t have time to test all the possibilities. I need to use a technique that will help me find the most defects as quickly as possible.
Because I know that defects tend to be found around upper and lower boundaries, I’m going to apply a boundary value analysis test technique. I will ensure my input data includes the following data values for the account number: