Why you should be Gray Box Tester

One of the standard distinction between testing types is that they are either Black box or White box. When you ask “What do you know about testing?”, this is one of the first sentence you hear from newbies into the testing world. They are not wrong because they tend to believe that world is simple and is binary. Alas, the real world is lot more complex and is fuzzy.

That’s why we need more “Gray box” testers or as the punch line of my blog says “Software Tester equipped with Knowledge”. But wait what is the distinction.

I really don’t like the term Black vs. White box testing at the first place as an Opaque vs. Transparent box testing would explain it better. But we can’t do much about what the industry talks. (Think about how linguistics complain about the original word but the one that public speaks matters the most).

So here is a borrowed comparison from the web which explains that Black box is when you don’t know the internal details, White is when you know all of them and Gray is when you know some of them. Again this is not the complete picture, but should work for our purpose.

box-testing-types

(This is taken from here: http://jobsandnewstoday.blogspot.com/2013/04/differences-between-black-box-testing-white-box-testing-and-Gray-box-testing.html )

To give you an example, think about the ignition system of your vehicle. For a Driver (read Black box tester), when the key is turned, or the button is pressed, the engine should start. That’s it. A white box tester knows that depending upon what type of engine is being used, the ignition system gets current from the battery, pulls in the fuel and gathers the outside air into the engine and then combustion happens by the spark provided by the current. This in turns moves the pistons which move the crankshaft which moves the transmission line going to the gear system. That’s too much detail that might be useful for a mechanic who fixes the car but can blow off a driver’s mind, that’s why we need Gray box testers.

Taking this example further, the Gray box tester should at least know the building blocks of the ignition system, so that in case of a problem it can be figured out if the battery is weak or fuel is not being pumped etc. That’s what drivers with some mechanic like skills. These are the Gray box testers.

If you have survived this example, let me take back to the software world.

Given that the job of a Software developer is to build a technical solution to solve a business problem, then a Tester’s job is to make sure the solution works. That’s where Tester should know the business well and they should know the technology well.

There will be many benefits when you’ll learn the internal details as a Gray box tester but I can guarantee these three gains for sure:

  1. You talk the language of the town

Have you ever been to a place where you don’t know the language of the town? You find it very hard to get directions or order meals or in short explain what you want. The same thing happens if you cannot talk technical to the team who mainly talks in terms of technology. For example reporting a bug that says “Export fails while processing XYZ type of stuff as the libraries to support this is missing” is way better than saying that “Export fails while processing ABC file”.

  1. You know what changes what

In these fast paced development cycles, builds to test come too fast. And we don’t have time to test it all again and again. No tester can survive doing the whole regression testing all the time and the only solution is to test the delta. You can only determine what areas to test for a given change, if you know the internal details of how things are linked together.

  1. You can write specific intriguing tests

As they say that “The Devil is in the details”. Anybody can write tests that checks the surface area of the product but the real tests that add value to the team and the consumer (read technology and business) are the ones who dig deep into the solution. These well-crafted tests can only be written and executed by a Tester who knows that area well and kind of “lives there”.

If you like the idea, the first thing might be drawing a block diagram / architectural diagram of the project / product you are working on and show it to your Programmer friends.

Are you ready to start this journey?

Tags: ,

12 responses to “Why you should be Gray Box Tester”

  1. Qamar Tarar says :

    Good to see one more blog. But I think that there exist only two types of Testing

    1. Structural (White Box)
    2. Functional (Black or Gray Box)

    Without knowing the main functionality of the product, you cannot test it properly. So you have to first gather some knowledge about functionality to start Black-Box Testing.

    Like

    • majd says :

      Thanks Qamar for the comments and as you mentioned that some knowledge should be gathered. The knowledge regarding how the box will behave (or functionality) is absolutely needed and I’m suggesting that how the box works (or inside world that provides the required functionality) should also be done to be a better Tester.

      Like

  2. Asma says :

    Very well written!!

    Like

  3. Ridha Malik says :

    You explained the concept very well .A tester should be a gray box tester well said 🙂 I totally agree with this thought .

    Like

  4. Syed Abdullah Bin Zubair says :

    Agree, Testser should be grey box tester. In current industry black box tester is somehow like an end user. Again not completely 😉

    Like

  5. Abdul Saboor says :

    superb especially the gray box part

    Like

  6. Hasnain Tariq says :

    Worth Reading but i have a question “We all needs to know Automated testing is the part of which block ? Is it Black, Gray or White box testing ? “

    Like

  7. Arif Masood says :

    Completely agree. We are living in age where grey box testing is most valued. Grey box testers who understand the business logic and also have little know-how of internals have far greater chances of discovering issues as compared to black or white box testers.

    For example, majority of web and mobile applications depend on WebServices/APIs these days. So if tester has skills to test the APIs/back-end in addition to front-end then it can help him in discovering many issues which might have gone un-noticed in plain black-box or white-box testing.

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s