Have you ever wondered how some people can be super-effective at finding bugs? Here are some of the strategies used by the best testers.
When you see something in one part of the system, ask yourself, “where else should it work like this?” For example, in inFlow, there are 6 types of documents that have a lot in common: sales orders, purchase orders, stock adjustments, and so on. Often, you’ll find inconsistencies. Sometimes there are good reasons for this, but usually, the developer updated it in one place and forgot to update it in some of the others. You may also find false consistencies — when things are the same but they really should be different!
- Sticky notes interface is different for Purchase Orders
- Custom fields do not save or print in Stock Adjustment
You can divide up a system in two ways:
- Vertically: the different sections or screens of a system (e.g. sales orders, purchase orders)
- Horizontally: functions and concepts that go across sections of a system (e.g. saving, printing, searching, serial number handling)
Then, take combinations of these two or three at a time, and ask if it works as you would expect.
- Serial numbers are not printed on work orders (Work Order + Serial Number Handling + Printing)
- Prices in different currencies only show the default currency sign (Product + Multiple Currencies)
Imagine you’re a typical user of the system. Pretend to be somebody you know if possible, or get really into it: make up a name and hobbies for your new alter ego. Then go through some tasks you would need to handle in the system. When you make a change, what would you expect to see? What else might you want to do after that?
When you’re scenario testing, you’ll find standard bugs, and you’ll also find opportunities to make a customer’s life easier. Sometimes it’s hard to define what’s a bug and what’s a feature request, but it doesn’t matter — raise your concern anyway!
- Balance shown on Apply Credit form is not calculating properly
- Copying a sales order to a purchase order should also copy the location
Be the intrepid adventurer braving the untamed jungles of the system. Do unusual things (use parts of the system that are less commonly used, or use it in an unexpected way) and pay close attention to what you see. Do things ever break or get inconsistent? Does the interface still make sense?
- System crashes when entering 600,000 serial numbers
- Currency symbol doesn’t refresh properly for Sales Order Return Fee.
A system often has parts that are linked to each other. For example, if you add a new order, are the reports, customer balance, and listing updated properly? Can you search for it?
When you make a change, where else should it affect things in the system? Look for mistakes there.
- Cancelled orders should reflect that in the Order History.
- Product listing does not properly show the default price.
Error handling is one of the most important, complex, and easily overlooked parts of a system.
What shouldn’t be allowed? Can you receive a negative quantity of an item? Can you have two customers with the same name? Can you have a product with no name? Try it. Does the system handle the error properly? Is there a reasonable error message?
- Transferring stock to an unspecified destination should have a more clear error message
- Error is not shown when saving a sales order with insufficient stock of serialized products.
With these strategies, you’re bound to become a more effective tester! Don’t get stuck on one strategy, refer to this list so you can flip between strategies for maximum benefit.