Best practices for QA testing can be a lot to take in. There are bug reports, test cases, and many other steps involved for both manual testing and automated testing. Anyone who’s been in the QA field for a while (or Engineering in general!) is familiar with the Agile QA process in software development.
However, it’s always a good idea to review best practices for QA Testing, whether you’re on day one or year ten of a QA career. Some of these tips may sound obvious, but others just might help you up your game.
Document Everything
Screenshots, video grabs, version info, and communication in general. If a picture is worth a thousand words, a screenshot is worth avoiding a thousand back-and-forth questions about a bug that a developer isn’t able to reproduce. If you can get a video showing the flow of the behavior, that’s even better.
It’s also important to proactively include info about the software version/OS/etc. For example, if you’re reporting a bug with a mobile app, instead of just saying “it’s happening on Android,” you can include the build version, Android OS version, type of Android device, and more. If you have time to go back and check the previous build, that’s helpful as well.
Make Automated Tests Easy to Understand
When it comes to automated test scripts, documentation is just as important. This can include adding clear method names and comments that describe what your code does. For example, if you have a test like this:
//Validates that user can send a contact message successfully (with input in all fields) @Test public void sendContactMessage() { mQACommon.goToContact(); assertEquals(mQAContact.contactPageText(), "Want to know more information, get a quote, or just talk?"); mQAContact.typeNameText(); mQAContact.typeSubjectText(); mQAContact.typeEmailAddressText(); mQAContact.typeContactMessageText(); mQAContact.clickContactSubmitButton(); }
It will be much clearer than the same functionality written as:
@Test public void sCM() { mQACommon.gTC(); assertEquals(mQAContact.cPT(), "Want to know more information, get a quote, or just talk?"); mQAContact.tNT(); mQAContact.tST(); mQAContact.tET(); mQAContact.tCT(); mQAContact.cCSB(); }
There might be others working on the automation suite (either now or in the future), and they’ll need to be able to clearly understand your code in order to maintain it.
Keep Track of Communication
Documenting communication can be essential as well. (Interestingly, this can often be easier for remote workers.) This can help in multiple ways:
- Improved accuracy. Say that a colleague or stakeholder gives you a directive on a call. Ideally you took notes, but there could still be a detail that you weren’t sure about. You would either have to spend time following up with the person, or if they weren’t available, delaying the task completely. If you had a record of the conversation via email or a messaging program, you could simply scroll back and review it.
- Resolving issues that may come up later. Say that you mention a design issue on a landing page, but are told that it’s fine as-is, and that you shouldn’t create a bug ticket for it. It might come up again in a month, with a different manager questioning why QA never reported it. If you have a record of the original conversation in Slack, you can provide details on the origin and history of the bug — even if it was never formally written up in Jira. (If you do use Jira, you can check out our guide to the Jira QA Workflow and Best Practices.)
Sweat the Small Stuff
Just because a software bug or user experience issue seems minor doesn’t mean that it won’t be considered worth fixing (or at least tracking). As with the above example, sometimes a project or product manager might tell you to disregard it. But it’s always better to be safe than sorry, and mention the issue that you’re concerned about.
Respect the Business
At the end of the day, it’s the managers who have the final say in what gets fixed. As QA testers, we’re experts on user experience and have well-formed views on which bugs to prioritize. But we also need to remember that our ultimate job is to report issues — and even advocate for them — without superseding the final decision-makers.
Ask Questions
Not sure if a feature is working as expected? Wondering if you’re assigning Jira tickets to the right dev? Just ask! If you’re not sure who to address questions to, checking in with the project manager or head of Engineering is a good place to start.
Sure, you might encounter the rare occasion when someone sees questions as a nuisance. However, it’s still better to ask than to make an incorrect assumption. If you act based on inaccurate information, it could result in incorrect testing and more bugs in Production.
Stay Up-to-Date
New software testing tools and programs are coming out all the time. If you don’t stay informed, it can be easy to fall behind industry standards.
Some of the best ways to keep up-to-date include:
- QA blogs. Whether it’s our QA blog or someone else’s, identifying and reading various QA blogs can help you keep up with current trends in all things QA. For the best results, try to find blogs that publish new content at least once a month.
- Twitter. It’s hard to imagine a way to get fresher information than Twitter. Reading the latest tweets from a variety of QA-focused accounts will definitely keep your finger on the pulse. If you’re not sure where to start, we recommend Angie Jones, Laurent Bristiel, and the Mindful QA Twitter.
- Review job postings. Even if you’re perfectly happy with your job and have no plans on leaving, keeping an eye on QA job postings may help your craft. The task and skill requirements in job descriptions can give you ideas on new programs and processes to learn. (For more on finding the right job postings, see How to Find QA Jobs.)
- Take online courses. Have you identified a skill that you’d like to learn or improve at? Online courses are the perfect way to do so without giving up your day job or breaking the bank. For under $20, you can take a comprehensive testing course on Udemy — and you can even learn Git or programming languages that will help with automation for free on Codecademy!
Collaborate
Who should you collaborate with? Anyone involved — developers, other QA testers, etc. Collaboration can iron out kinks with the product requirements, and even the software development process itself. Ultimately, working positively with others on the team will make for a higher quality product, which is the goal for any QA tester.
Implementing Best Practices for QA Testing
Need help setting up best practices for QA testing for your mobile app or website? We offer Agile consulting and QA testing services. Let’s talk!