Tuesday, February 18, 2014

Improve yourself as a tester – How to be a true professional

This article is additional chapter on the “Improve yourself as a tester” series, on this article I want to review few key stones that every professional tester should possess when taking the responsibility for testing a software.

After few years on the field, I become familiar with the thought that professional testers have few attributes that separate them from other testers, the following paragraphs will review those attributes and clear my definition for a professionalism.

Enjoy your reading and add your comments…!
Professionalism = Quality vs. Quantity
It’s easy to understand that massive STD’s that written without a real understanding for the tested software will be created with massive test cases that written for coverage because the tester doesn’t really know how each test will contribute to lower the Risks. For me such testers shouldn’t test anything until they gain real control for the software they responsible.

Real professionals will design STD with lower test cases, but this STD will be written only after he can explain how each case can contribute to lower the risks, a great question for your tester will be to explain why this specific test will lower the risk? To answer such question, the tester must have deep understanding, if the tester will fail to provide a really good technical answer you have major problem.

Additional indication for such case, the tester who opens 100 user interface bugs that located on the same window…? Why make a large noise when you can open single bug that summaries the entire case for bugs that located on the same area..?

Yes I know that some of you may say that each bug should be reported with different report, but for me its additional difference between testers who want to report quantity and ignore the real bugs that deliver the real quality.

And I almost forget about the testers who mark 90% from the STD tests with priority ‘1’, just because they don’t really understand the test cases and how they really contribute to reduce the risk factor.
Professionalism = be the one with the best technical skills 
Its basic thing for everyone who sees himself as a true professional, you must be very technical in a way you can control every aspect of your software, technical skills are the one whom separate professional from other testers.

For my view, the professional tester is the one that control all the small points that usually forgotten after a while, he’s the one that has the quality to provide real technical solutions for the bugs he found (Technical skills allow you not just reporting the bugs,. It’s also provide the ability to understand the cause and available solution).

Additional aspects for great technology skills:

·         The tester controls the software architecture.

·        The tester knows at least one coding language that will allow him to communicate with development team with greater efficiency. In addition, knowing code is great benefit for automation tests and specific testing tools.

·        The tester controls the supported Os for installation (Different OS (in most cases) will create different situation when integrated with your software).

·         The tester will know the software limitations and boundaries.
Professionalism = questioning all aspects   
For me this criterion is very clear and easy to understand, as tester we need to ask question, the questions may be related to direct requirements or any other subjects that may affect the testing process, may experience is full with testers who receive the spec and build the STD documentation without questioning anything ... you need to remember that in many cases the product managers create requirements without the understanding of how its affect other components and integrations between them, it’s your job to raise the questions and uncover the failures soon as you can (I guess you all know the costs for bad design that affects the development and QA teams).

Just think about the trust you have between testers who raise the questions and the once that gets the specs and start building the basic STD that from my testing perspective cover just 40% from the real testing they should cover.
Professionalism = Understanding the missing requirements
When tester makes is testing design (STD), the procedure is usually looked something like:

Getting spec -> Review each bullet->Design test case based on the written requirements.

For me this flow is good for testers that failed to understand the additional requirements that failed to be supplied by the product manager, the testers I see as professionals are those who raise the glove and looks for them, usually those missing requirements will make the difference between a solid release and software that released with very high risks.

Please, do not understand me wrong, this issue could be achieved by professionals, not all testers have this view and the professionalism to look for those missing requirements, based on my declaration you should understand that uncover the missing requirements is crucial and for me making the difference between the testers I can trust or tester I’ve preferred to exclude from my testing process.
Professionalism = investigating the cause and not the symptoms
Additional criteria for differences between testers is based on investigation, as testers we need to report bugs that reduce the software risks after solution applied, I prefer to put my trust on testers that will investigate the root cause for the bug they just reported, the benefits are huge from many perspectives, but For me this section is really important for the way I see my job, for me opening a new bug without deep understanding for the cause is really unprofessional, Yes, I know that sometimes you don’t have the time to make a deep investigation, but the Minimum must be to review the solution with your developer. Personally, I cannot trust tester who failed to investigate the cause and solution for his own tested software, it’s basic and one of the most important criteria for professionalism.
Professionalism = Understanding the RISK factors
One from the seven fundamentals for testing is the clear fact that you cannot test everything (Tell me is you overcome this issue…), as a result you need to understand the risks you have when executing one test over the other, to make the right call you need to make Risk management, professionals will know the formula that provides the most efficient coverage with Minimum risk.

Risk management is not simple as it seems, you really need to understand the consequences for each decision you make because it has direct effect on the product stability.
Professionalism = Understanding the full picture
From my point of view this is one of the strongest points you can specify while determining a true professional, just think about a test design operation that performed by someone who understand the full picture of a software (Components, integrations…) design against someone who knows only specific area and doesn’t take hold off the full picture.

As you may understand from my example, knowing the full picture is major criteria for great testing process, but knowing the full picture is not restricted to a specific technical knowledge on a software, a true professional will also know additional aspects that contribute to his view, Examples:
·         Professional will know who the clients is and what they really need.

·         Professional will know the company strategy.

·         Professional will know the interaction between different components.

·         Professional will know all the component layers (User Interface, Database, Engine….).

My Presentations