By Rosy Grimaud, QA Engineer at Consensus, @RosyGrimaud
Here’s the scenario: You have a perfectly delicious and fresh loaf of bread that you can’t wait to eat. However, you have discovered that you have a bug inside of it; an ant. You don’t know where in the loaf the ant is, but you don’t want to destroy your beautiful loaf to find it. How do you search for your bug?
You use a development principle called: Binary Search.
Start by slicing the loaf of bread in half. You weigh both halves, and the half that weighs one ant more than the other half is where you will keep searching. You’ve eliminated half of the loaf, that is still delicious, fresh, and bug free. Now, you take the half weighing one ant more and cut that in half. Of these new halves, which one weighs one ant more? Cut that in half, and so on. Each cut into your loaf of bread will get you closer to the bug, until the slice of bread you’re working with is the width of the ant. You’ve found your bug quickly, and saved a good amount of your loaf of bread from mutilation by a bread knife.
This principle is one of the efficient ways developers find bugs in the code. Their loaf of bread, or code, can consist of hundreds of lines in any given file. Imagine the time it would take for a developer to find a bug in a file of two-hundred lines, if they started with line number one. What if the bug was on line 185? Talk about a waste of time. This process narrowing down the broken code by halves is an effective and efficient way of keeping our developers at Consensus focused on finding the bugs in our app, and fixing them.
As I reflect on my work with QA, I have discovered that I too have been using the same principle. I am in a constant search for new bugs with every release we get ready. I want to find the bugs quickly, so our releases can be quick and clean. In order to do so, I begin with general tests, such as logging in and sending a demo. If I can log in, send a demo, and watch the sent demo, I know I can eliminate those general app functions from my focus, and get into trying to find more detailed issues that might show up. I need to know that the basic functions are still OK after new code is introduced before I can start finding potential issues in the new features. Determining what is working and bug-free is just as important in QA and Development, as determining what is broken and full of bugs. Our clients deserve to take a bite into the delicious, fresh, and ant-free loaf of bread that is Consensus, and our development team works hard to make that happen.