The emergence of methodologies like Agile and DevOps have spun the world of software testing into chaos. In the 90’s, tech was still emerging and the use of personal computers and mobile devices was a novel concept. Software development since then had been fairly simple - a streamlined, sequential process that was often much slower. It could take weeks, months, and sometimes years to fully finish a project. Developers were responsible for building the underlying code and testers were tasked with breaking it. Lines were drawn and they were clear.
Today, developers are testing, testers are learning to write complex scripts, and everyone is struggling to keep pace with the ever-expanding universe of devices and operating systems that make up the internet of things (IoT).
Meanwhile, consumer demands continue to rise, bringing the software development industry along with them. Not only are teams challenged by what they’re testing, but also how they’re testing. The selection of tools and languages has also exploded, each with niche features and benefits, as well as the opinions on software best practices and methods.
How are you supposed to break through the noise? More automation. Less automation. Is DevOps the answer? What about artificial intelligence (AI)? Deciding how testing should be done and what tools to use is daunting, but regardless of those tactics, there are five habits that every tester needs to break away from. These may have worked when Waterfall was the only methodology available and the tool selection was limited, but this is no longer the case. Flexibility is key in today’s agile environment, and avoiding these will give you a competitive advantage.
1. Running Too Few Regression Tests
Regression testing is a type of software testing conducted to make sure that any updates made by developers to an existing application haven’t caused unexpected issues. Apps are modified frequently and it’s important to your success that previously validated functions don’t have new bugs and that old bugs stay dead. Re-running test scenarios, or regression tests, is the safest way to get this done. Historically, you’d run regression tests after every commit. In a perfect world, this would still be the case, but with DevOps and Agile picking up steam, this means you could be running tests weekly or even daily.
As a result, many teams today are tempted to try and get away with as few regression tests as possible and only cover the most essential pieces of their software. This is exactly what you should avoid. Despite our best efforts, bugs are unpredictable and tricky, and can sneak back into an app after the smallest tweak - ultimately breaking everything. In an atmosphere where updates are made by the hour, it’s more important than ever that you run regression tests as frequently as possible. Ensuring you can automate your regression test suites here is key.
Automated regression testing tools, like TestComplete, expand coverage and enable you to speed up your regression testing cycles, meaning you can get more testing done in less time. So go ahead, run more regression tests. You’ll feel more confident when each app update goes live.
2. Using Outdated & Integration-less tools
No tool does all testing perfectly. With such a wide variety of testing needed – from API testing to GUI testing and load testing - this would be nothing short of a miracle. Half the battle would be won. Since this isn’t the case, many teams and testers use a combination of tools, either internally-built or from vendors, to address their needs. As demands for testing across and between new devices, browsers, and platforms grows, so does the need for products with modern and up-to-date capabilities.
If your budget for adding new tools or new features isn’t growing as quickly as consumer demands are, you can bet you’re not the only one. The development team developing test tools also needs to keep pace. The best thing you can do to set yourself up for success in this situation is to adopt not just a robust testing tool, but a testing tool with a flexible and open architecture that integrates with modern platforms – whether it’s a CI platform like Jenkins or Bamboo, or a defect tracking and reporting tool like Jira or QAComplete.
You need to enable your team to be agile, continuous, or to shift left, and the tools you use should facilitate your transformation, whether it’s through native capabilities or through integrations.
3. Not Being Able to Reproduce Bugs
This is the result of poor documentation of defects. In order to fix defects quickly, developers need to know exactly what went wrong and where to find the bug. Enabling them to do so in a timely fashion is directly correlated to how well you document your failed test cases. Without well-documented defects, fixing issues can be a time-consuming and complex process - something no one can afford. A this is such a vital step to the success of any team, testers need to make it a priority. Breaking this habit is a two-part task – good practices and the right tools. It’s tempting to rush when you’re in a crunch, but you need to understand 100% of the problem.
Ask yourself the following questions:
- Can I reproduce the bug?
- Did I include enough test data?
- Is my description clear enough (did I use simple language)?
- Did I prioritize the bug based on severity?
- Did I include images, screen shots, or videos?
You should be able to answer yes to all of these before deciding you’re done documenting. Signifying how severe a bug is will help the development team determine where to focus their efforts and including visuals will provide proof points for how well your test ran.
Getting to the root cause without the right tools is also tough. Good automated testing tools like TestComplete or CrossBrowserTesting, will enable you to take screenshots while tests are being run and will record your UI or API tests from the point of creation to when they’ve completed. This means you can track your actions from start to finish. A flexible test case management tool like QAComplete, will enable you to immediately create a defect for a found issue and notify your team for you by continuously integrating defect reports with your favorite bug tracker. A robust test management tool like this will also enable you to link the defects to respective requirements, tests, and releases—something that is super important and saves you a lot of time rather than trying to hunt through what test/requirement/release the defect came from.
4. Having a 100% Automation Mindset
Not everyone has this mindset. In fact, some are wholly against this idea. Manual testing is still a crucial practice and for those who think total automation is the answer, it’s important to understand why you need to break away. Automation is all about efficiency, and not all test cases are any more efficient if automated. Redundant tasks or test types that work with multiple data sets, such as regression testing, load and performance testing, or data-driven testing, are great candidates for automation. Implementing these tasks by hand can be extremely cumbersome and prone to human error as people tend to get bored. Introducing automation here will absolutely cut down on testing times.
Any types of testing or tasks that require a human touch, such as usability testing, exploratory testing, or ad-hoc testing are great candidates for manual testing. Their success is highly dependent on the knowledge and creativity of the tester or the power of human observation. For example, a computer won’t be able to tell you if text is hard to read, or a webpage is visually displeasing due to contrasting colors. A computer also won’t be able to tell you if the user flow makes sense.
Having the right balance between manual and automated testing is vital to your success, so you’ll want to choose a tool stack that can support your needs. Aside from choosing which tests should be automated and which tools can help, you’ll also want to look at how you can effectively manage your test cases. With a tool like QAComplete, you can manage both your automated and manual test cases from the same location. This way, you’ll be able to facilitate better team collaboration, track defects more efficiently, and leverage in-depth reports to help you make business critical decisions faster.
For more information on test management or automated testing tools check out the following top lists to help you find out what tools would best suit your needs.
5. Not Staying Up-to-Date with Industry Trends and Practices
With the onset of new tech it can be hard to determine which methodologies, tools, and QA practices will be the most effective in ensuring quality, so it’s critical you stay in-the-know with industry trends. It’s also essential for your own professional development and career that you continue to learn how to implement new testing techniques.
There are any number of resources available to you on the internet these days so once again, you’re probably wondering how to break through the noise. The following software testing experts, groups, and companies regularly publish top-notch testing tips, tricks, white papers, and career advice, as well as tutorials on how to get started with various tools.
- Joe Colantonio
- Ministry of Testing