There’s no telling how beneficial it is to involve QA in planning your digital product; however, it is even more imperative to have testers participate during development. Productive and creative testing can uncover many bugs, effectively shortening both the development period and testing. Ultimately, it results in an on-time launch with a product that is reliable and functions as intended. On the other hand, leaving QA out entirely or only involving them after development is officially over will likely result in a catastrophic launch. Unfortunately, there are many such deterring examples out there.
We have collected our best practices to get the most value out of QA and testing during the development phase of the SDLC.
The Foundation: Scope and Plan
Software testers are responsible for making sure that significant bugs and issues are ironed out before launch, but they need to be prepared from the get-go for them to do that. As such, it is vital to have an efficient, clear-cut start to testing; otherwise, bad decisions and sloppy implementations made in the beginning will lead to a lot more work and wasted resources later.
You can ensure that your team gets started on the right path by doing just two simple things:
Define the scope of testing: Since testing is a multi-dimensional activity, it includes a range of sub-disciplines such as functional testing, regression tests, performance, load testing, and more. Chaos ensues if the tester is not fully aware of the scope of testing that will have to be done before execution even begins. This is when it becomes a priority to define a comprehensive test strategy with clear requirements and timelines included. In a previous blog post, we wrote on developing a comprehensive QA strategy.
Create a test plan: A test plan is essentially the holy book of a tester; it’s needed for disciplined and organized testing. Unfortunately, it’s a common mistake to think that you can remember all the test cases without a formal test plan. However, as the scope of testing grows, it becomes impossible to remember all the necessary details, making these tests error-prone. The good thing is that this mistake can be easily avoided by writing a sound test plan, which will keep track of all test cases.
As a rule of thumb, answering the 3 W’s of testing and then following the defined answers will help testers stick to the plan in the vast majority of cases:
- What to test (the scope of testing)
- When to test (when to start testing and when to stop)
- Where to test (system requirements)
The Ten Commandments of QA
Sufficient understanding of the product will always be the number one requirement for carrying out great testing. It’s the core that the rest of the profession is built around.
But beyond that, the road to successful test implementations can quickly get murky. Fortunately, our forebears in testing have trodden these paths and learned from the mistakes they’d made along the way, laying down a set of commandments that, if followed, can ensure that no tester will stray from the path.
- Do not conclude a test abruptly. Investigate a little bit further once you’ve tracked down the bug.
- Give a required amount of importance to negative testing as well.
- Define the scope of testing properly.
- Remember that usability testing can also be iterative.
- Interact with your team as much as possible, for poor coordination is one of the most significant pitfalls in any project.
- Do not prematurely close defects—even when they seem tough to reproduce.
- Make sure you correctly understand test scenarios.
- Provide enough prominence to bug prioritization.
- Report issues thoroughly, precisely, and with care.
- Strive to consistently create excellent and actionable test designs.
Mistakes born of not following these general guidelines are bound to cost testers and developers time and resources. And unfortunately, we have seen that such errors are not as rare as we testers would like to think.
Tips & Tricks for Bug-Hunting
Finding and reporting those pesky bugs that bad user experience might seem easy at first but requires time to truly master. We have put together our seven-step best practice guide that’s guaranteed to give you new insights on bug-hunting and improve your skills.
Understand the application
Having a comprehensive, in-depth understanding of the whole application or module will make your job a lot easier. With the necessary knowledge in hand, you can maneuver better and push the app to its limits. Then even those bugs will come out that are hidden in the depths of the code.
Prepare good test cases before testing
The best testing outcomes result from test cases that are 100% based on approved user stories. Ensure that your preparation includes writing a good test case that considers all the significant risks of the application.
Look for oddities the software shouldn’t do
By this point, you have a great understanding of the software and its features. You will surely know when you encounter an anomaly that is not something the software could or should do under normal circumstances.
Learn from existing bug reports and try to reproduce them
Collaborate with testers and developers. Check and discuss each other’s bug reports, try to reproduce them on your own, and figure out what might be causing them. While this tip will not find you more bugs to report, it helps you learn more about testing best practices and become better at your job.
Do some Monkey Testing
Just imagine what would happen if you let a curious and intelligent monkey – or an experimenting user – has its way with the app. Got it? Now try to mimic that behavior. Perform user tests on the application by providing random, invalid inputs and make it your goal to crash the app. Make sure that you are monitoring how the app behaves and responds to your shenanigans.
Check areas that are related to where the fix was applied
According to the notes about the new build, the issue that you reported has been fixed. Great! But don’t forget that neighboring or related areas might have been impacted as well. While checking if that fix is correct, make sure that you check all the associated sites!
New feature vs. existing features
Unfortunately, when a brand-new feature is added, some existing ones could malfunction or start behaving weirdly. When checking out the new feature, make sure you also pay attention to the “old” ones and confirm that they didn’t break.
Testing is not a series of mundane, repetitive tasks; it requires flexible thinking and good perception. However, a tester also needs a great deal of creativity to be successful. Exploratory testing can only be performed well if done with a creative and intuitive flair—and exploratory testing is a crucial part of the overall QA process.
Exploratory testing is most useful when there are few or inadequate specifications concerning the product and its features, or there is significant time pressure on testers. It is also highly effective in the early stages of the SDLC when requirements are still unclear and the code regularly undergoes rapid changes. Similarly, it also helps when you do not have time to predefine and script test cases.
Although it might not seem as informative as it should be, exploratory testing can lead to new knowledge about the product. During this process, the information you collect will be incredibly beneficial when you start preparing test scripts for regression testing in upcoming development iterations.
Exploratory testing provides excellent insights into the software and deepens your understanding of it. You also increase your testing expertise, which will generally help you throughout the project and even beyond – in your entire career as a QA tester.
All in all, if you explore during testing, do it with creativity!
Speak Up When Something doesn’t Work
If I could help any prospective tester with one additional piece of advice, it would be this: don’t be afraid to say that something will not work as intended!
Having the courage to say that a product or system will fail in operation is a necessary trait in this line of work. Even if pressure from higher-ups to release as soon as possible is significant.
When faced with such a dilemma, just ask yourself the following question: which scenario is better; discovering major flaws in the initial design assumptions and stopping the software from being released to customers, resulting in a delay, or launching the product anyway and suffering the consequences—including a dissatisfied and angry customer base that received a faulty product?
It’s always much more feasible to stop making a huge mistake by releasing a product that is still ripe with major defects. Instead, work with all involved stakeholders (i.e., product owners and developers) to fix the flaws in the design and re-engineer the solution. As always, the customers, the end-users should be in focus. If they get a functioning product that works as intended, everyone will be a lot calmer and happier.
Over the last ten years, we have helped a world-renowned brand perfect their streaming service app by rendering them our professional QA services. Choosing Blue Guava QA as a partner means having access to a veteran team of professional testers with a decade-long experience, an arsenal of real devices, and a commitment to ensure the best possible release of your high-quality software on time.
If you are working on your digital product or getting close to releasing it, consider ensuring its defect-free launch as well as high-quality performance post-release. We would love to help you achieve that.