Testing Intelligence <br />How to become an Intelligent Tester…<br />
What is Testing-Intelligence?<br />Testing is not only about coverage, bugs, and UAT/BATs; but about information, stakeholders, and working within a team focused on developing a product/project.<br />“It is an art to provide correct and timely visibility into the product and process, that helps your Organization’s Stakeholders to make the correct tactical and strategic decisions..!!” <br />
Test Process<br />Most if not all development projects are short on time, resources and tests. This means that we as QA Professionals will be asked to cut our testing operations in order to accommodate for the delays of all the other project teams.<br />“So how can we manage to test less and assure we provide maximum value to our process and stakeholders?”<br />
For this we will need to rely on Prioritization &<br /> Intelligent Testing …<br />We can do this by providing Relevant and timely information, captured from multiple sources and using many disciplines, that will help the project stakeholders make their tactical and strategic decisions.<br />
We should ask ourselves 2 things<br />Who are the stakeholders who need this information?<br />What information does each stakeholder need to make her/his tactical and strategic decisions?<br />
Only QA can answer these questions since they are directly related to the nature of the product, the team, the end-users, and many additional constraints that define our project.<br />Once we answer them, we will be able to change our mind-set and plan our testing process based on the information you’ll need to provide and the data needed for it.<br />Maybe most importantly, we will be able to decide how to reshape our Test plans when they need some trimming or remolding.<br />
Requirement Gathering Phase<br />Thorough understanding of the requirement provided<br />Review Sessions<br />Testability and concreteness of a requirement<br />Less dependency on FS/FRD<br />
Our Deliverable and Product as a QA Professional:<br />Many Testers feel frustrated when they are asked what is their Job, and specially about what do they contribute to the overall development of the project ?<br />We must think ..What QA is expected to contribute in the scheme of Product Development Project?<br />Are we supposed to catch all bugs before releasing the product to the world?NO..!!! It is exuberantly expensive to reach this level of bug-free-environment, and 99% of the projects don’t need it anyway.<br />Do we need to run as many tests as possible?The answer again is NO! If we can get the same information (or confidence level) about the product without running a single test we would still be doing our Job – maybe even in a better way!<br />
Test Planning and Scripting<br />Strategy Preparation and analysis<br />Test Data preparation<br />Good Test Plan <br />(which covers all the necessary information of the events occurring, the days and sequence of the various stages in test cycle like Test case sign off, Smoke Test, UAT/BAT etc.)<br />
Bug Reporting<br />Bug Classification<br />Severity vs. Priority of a Bug<br />Principles of Good Bug Reporting<br />Components of a Good Bug<br />
Bug Classification<br />Talking in general, there are 2 ways to set the priority of each bug correctly, the Hard way and the Easy way<br />The hard way: To define the Severity each time from scratch<br />Severity is set based on a scale (of either 3 or 5 levels) according to tester’s objective understanding of the harm the bug causes the system or end-user.<br />But It’s not objective, as two people may look at the same bug and set 2 different severities<br />
The easy way: create a Severity Look-up Table<br />S1 – CriticalDefect causes the complete system to stop functioning or that will result in unrecoverable data-loss. The bug has no workaround.Additional specific bugs:- Spelling or Grammar Mistakes- Important bugs that were reported from customers and we assured them will be fixed.<br />S2 – HighThe defect causes a part of the system to be inaccessible or to stop functioning. The bug has no workaround or it has a workaround that will not be easily found by users.Additional specific bugs:- High visibility GUI issues.<br />S3 – MediumThe defect causes a non-critical failure on the system but it will allow users to continue working. The bug has a workaround that is relatively easy to find and will be acceptable by most users.<br />S4 – LowThe defect causes no dysfunctions to the system and may even be unnoticed by most users . The bug has an easy workaround or may not even require a workaround at all.<br />S5 – Enhancement Request or Suggestion<br />
Severity vs. Priority of a Bug<br />I look only at the Priority field and so QA shouldn’t waste time writing down the Severity<br />Yaa…90% of the time Priority and Severity have the same value <br />I think..QA just wants to exaggerate the severity of some Bugs<br />DEVELOPERS<br />
Priority <br />Severity <br />Priority refers to the Project and how urgentit is to solve the Bug.<br />Priority is set based on changing project factors eg. Status of the bug, its importance from customer side.<br />Priority is a dynamic field, should be revised and updated as the project progresses.<br />Severity refers to the Bug and how it affectsthe User’s interaction with the Application<br />Severity is objectivelyset based on the direct and indirect impact of the bug and its probability of occurrence.<br />Severity is usually a staticfield.<br />(the only reason to modify it would be if we learn something new about the bug. )<br />
His bugs are always URGENT...!!!<br />Bugs are never correctly prioritized ..$$...###<br />Am annoyed by this LOW LEVEL PROFESSIONALISM<br /> DEVELOPERS<br />
Testing Professionalism & Principles of Good Bug Reporting<br /><ul><li>Don’t waste your time reporting a bug incorrectly and most certainly you will need to re-write it.
Don’t waste the time of the other people reviewing the bug and trying to make sense of what you wrote.
Don’t harm your good name as a QA Professional, by writing a bug that is either correct but incomprehensible or altogether wrong.</li></li></ul><li>Components of a Good Bug<br />1. Short and precise title<br />2. Concise but complete description: Steps to reproduce, consequences of the bug, and suggested behavior<br />3. Good attachments <br />4. Complete definition of the categorizing fields<br />5. Correct Severity & Priority <br />6. Follow-up and comment <br />
Root Cause Analysis<br />QA professional must be able to analyze the root cause in order to support/justify the defect raised by him.<br />Some of the possible root causes are:<br />Not a Defect<br />New Requirement<br />Design<br />Code related<br />System/Backend Data <br />
METRICS AND STATISTICS<br />Can Metrics be EVIL? <br />(No, but the people who misuse them can… )<br />
Dos and Don'ts for Metrics<br /><ul><li>Metrics should always be a base for comparisons.
What we want to communicate by publishing our metrics?
Metrics should evolve.</li></li></ul><li>UAT & BAT<br />Strategy Preparation and analysis<br />Test Data preparation<br />Considerations from USER point of view<br /> (User’s time, gaps in understanding of the application etc)<br />Preparation of END-TO-END Hand-Off Template<br />Providing Support <br />Addressing all the issues and keeping track of the enhancements<br />
Best Practices<br />Never stop learning new stuff :<br /> Make a list of sites and blogs that regularly post the important stuff, if possible subscribe to their daily letter or news feed.<br /> Whenever you have some free time, or when you need a break of what you are doing, go over these sites and mails making notes of the stuff that sounds interesting or important.<br />Download and play with the new software, or simply think about how you can use the information you just read in your day-to-day work.<br />
7 habits of highly effective testers<br />Context awareness: always understand the higher objective of what you are doing<br />Self awareness: realize your personal advantages and limitations<br />Hands on attitude: a need to stay connected with the concrete tasks taking place<br />Value of communication: explain simply and correctly<br />Teamwork: collaborate to achieve synergies<br />On-Going Improvement: self & external criticism to keep-on growing<br />Urge to learn: thirst for the expansion of knowledge<br />
On-Going Improvement<br />Does anybody know what is ….<br /> <br /> hitting a brick wall?<br />
This means the all-too-familiar feeling that “Regardless of how much you raise your voice and warn all the project stakeholders about the imminent danger of following a certain path, they decide against your advice and follow it anyway…”<br /> Who hasn’t gone through this before?<br />
Make your homework before the meetings<br />Make your objective to become the Trusted Adviser of your project Heavy-Weights: you need to create a reputation for yourself that will make people listen whenever you speak your mind.<br />Be open to change your mind when you understand new things about the problem at hand<br />Learn to pick your fights<br />Learn how to communicate<br />You need to become a Project Trusted Adviser!<br />
Reference <br /> “Testing Intelligence” <br />- Mr. Joel Montvelisky<br />http://qablog.practitest.com/ <br />