by Joy Grieg
In the last blog we talked about timing as foundational—the secret—to sound testing. We also mentioned organization, logic, thoroughness, attention to detail, and clear communication. They all play their part in putting the quality in quality assurance.
Organization and Logic
Have you ever known someone who seems to flit from thought to thought or activity to activity with no real plan in mind…just going with the stream of consciousness or “shiny object, shiny object” approach? Sometimes it’s fun to watch, and through that sporadic creativity there may be some successes here and there, but there’s no march toward solid accomplishment.
So it is with testing. Successful testing requires orderliness—sound logic and organization of one’s thoughts toward the final goal of helping ensure a quality product is released. From the macro view, you’re asking questions like:
- “What is this software we’re testing trying to accomplish overall?”
- “What skills in planning the testing, analyzing the software under test and developing test cases do we need?”
- “How do I go about developing my tests in the most efficient andeffective way to achieve maximum test coverage?”And to be able to answer these key questions, logical, organized thought is key.
Leadership is responsible for answering the first two questions and planning the overall approach, from unit testing through system and user acceptance testing. Developers and test engineers then must clearly and successfully answer the first and third questions to achieve the quality testing workout of the software.
Once the big plan is in place, it becomes the responsibility of the individual testers to think clearly through the approach to the test cases and how best to write and group them for efficiency and effectiveness. Testers must ask themselves questions like:
- How does this software work overall?
- What are key behaviors of the software?
- What test tools can I apply?
- Particularly in black box testing, how might a user think, use the software—or accidentally use the software?
Thoroughness and Attention to Detail
“Macro” means big picture and obviously functionality testing is important, but it’s the little things that’ll get you. It’s so important to test details, even the ones that might seem insignificant, because they tend to be the ones that cause the most heartburn in the long run. Take for instance the case of the Microsoft blunder in October 2011 in which Microsoft incorrectly marked the Google Chrome browser as malware in its antivirus definition file. Oops! Over 3,000 users were affected before the error was found, and the incident earned Microsoft a place in the “Testing Hall of Shame.”
Border cases, seemingly “small” functionalities, cases where someone might say, “Aw, you don’t really need to test that; it’s solid,” or “That will never happen”—these are the scenarios in which detail and thoroughness will provide full value for the testing effort.
Books, articles, whole seminars and college courses have been presented on the theme of communication. That’s because it simply can’t be emphasized enough.
For test engineers, communication really is critical, and key to testing. Because test engineers are often a bridge between Requirements, Development, and Client, they need both technical and interpersonal communications skills. Testers must communicate well with:
- The client and business analysts/requirements engineers
- For understanding the software and its uses
- For understanding the critical elements of the software to focus testing
- Especially when reporting bugs—the developers must have a clear understanding of the issue the tester has seen via the written description, and the tester must be able to talk with the developer about it as needed
- For additional understanding about system behaviors
- For contributing to the decision of when to do new builds for the test team to execute
- Other test teams or test team members
- For keeping each other’s efforts coordinated
- For learning from each other, both about the software’s behaviors and about sharing testing methods, tips and tricks
- For answering the key questions about the quality of the software being produced, and where the weak and strong spots are
- For information about the quality of the software and whether it’s ready for prime time
In all these cases, communications MUST be clearly presented in a manner that the recipient is most likely to receive.
So there you have it—the foundations on which to build an effective testing endeavor. Now proceed to all the cool methodologies, old and new, and test that software to the max!