There’s a popular statistic that circulates among developers — something like 80% of their time is taken up by debugging. While good testing can’t eliminate all bugs (that’s not the goal of testing anyway), it can cut down on the overall time spent fixing a product that’s not right. Here are seven tips to help QAs do testing right.
1. Start with the Right Tools & Environment
Testing software is complex and it runs on specialized platforms. Whether you build your own testing infrastructure or source it out, the quality of your testing will suffer if you don’t have a reliable set of tools and a supportive environment for testing. And the better the infrastructure, the more capable it will be of handling the highest-performing (as well as stable and reliable) automated tools. The basics include:
- A dedicated test lab
- A dedicated test environment that provides a stable back end and front end
- A test case database
- A defect database
- A version control system
And that’s just a start- there are lots more components to add along the way as you develop your own testing environment.
Then there’s security. This is an aspect of the ideal testing environment that’s essential — you need to be assured of a controlled security environment. If you’re making use of cloud-based testing tools and platforms, this is a big concern, especially if your resources are on a public cloud.
Again, with security, the solution is investing in proper architecture. A secure testing environment typically means a locally-hosted testing environment, which removes the possibility of internet- and cloud-based security gaps. And mobile testing? Find a device lab near you — they are a great resource because they host their resources on private, internal cloud networks.
2. Prep Well and Get the Full Picture
Every process runs more smoothly when there’s an action plan in place — including software testing. Your strategy should include tons of prep work so everyone involved — all your testers — understand the project objectives. Yes, they might be off in their own silos later on, each performing their own segment of the testing, but their work will be greatly improved when they know the full picture. That’s because, only with a complete understanding of the software (including who the users are and how they’ll be using the product, what problems need to be solved, etc) will they be able to discover and resolve issues. Besides, knowing the full story of the product helps everyone stay laser-focused on the reason they’re testing in the first place: a good user experience.
3. Prep Well and Plan Your Strategy
This is another version of “prepping” that’s critical to a better testing process. Besides selecting the right team with the right skillset and then identifying the risks, here are some more considerations to make while you’re making your plan:
- Create a test schedule and plan to start testing right from the beginning of the dev process
- Define what you’ll test under certain scenarios that you can foresee (a change in the timeline, for example, or delays with the development team)
- Design your test scenarios and test cases so stakeholders can review (before you start test execution, ideally)
- Identify test data, including data for negative and positive cases
4. Test Early
As we mentioned just above, testing should be performed early on in the development process, at the beginning stage. This will help you catch bugs and, in some cases, prevent defects that might otherwise snowball into bigger, more complex problems. Ideally, as a result, you’ll see a reduction in hours spent during the final stages of QA and even savings on maintenance because you have a better product.
5. Test Often
Testing often saves resources, too. The key is to break your testing into smaller tests and only test for one aspect of quality, like UX, security, or UI.
6. Test Thoroughly
Test for known conditions and test for unexpected conditions. Use your well-developed knowledge of the user, their problems, and the business goals to predict use cases and write test cases for them. Write all your tests to cover every scenario and be thorough. Carry out regression testing (this can be automated) by segregating your test cases and looking for unintended changes in the app resulting from subsequent changes in the code or the environment.
In addition to regression testing, there are other test types:
- Functional quality testing
- Non-functional quality testing (reliability, usability, etc)
- Architecture testing
7. Make Sure You are Always Learning
The world that swirls around software development is always changing, with new tools, new techniques, and new processes evolving constantly. So it only makes sense that from a personal development angle, you should be evolving to keep up. Make regular efforts to expand your horizons by reading up on the latest news, attending conferences and webinars, listening to podcasts — whatever suits your style of learning.
And consider adding more skills to your personal portfolio, too. One big step forward that you can take is to learn coding, if you don’t already know it. The evolution of the software process has continually brought testing and development closer together throughout the development lifecycle. As they become more intertwined, knowing how to code will help you step up your software testing game. You may even be able to be involved with developers as they write the new code, stepping in to help identify issues before they even come to fruition. Knowing coding also helps when it comes to writing test cases.
Stay With us for More!
With that last bit of advice in mind (i.e. always be learning), we invite you to become part of the Making Sense family- stay informed, hear what our team has to say about important matters in the world of software development, and come meet us and your peers at our awesome Meetups that we hold periodically throughout the year!