How does test quality affect speed, and vice versa, and could finding the balance between the two be the key to keeping customers and the business happy?
Software testing requires striking a balance in determining when an application is good enough for customers and getting it in their hands as quickly as possible. Many software testing teams struggle daily with testing faster without cutting quality or minimizing the user experience. As a tester, you’re constantly under the gun to get testing done faster without missing any defects. Testers describe their position as being between a rock and a hard place.
Customers need quality application code and the business needs to win the market, so releases must be timely and of high quality. However, that’s often difficult to do based on resources, testing volume and release deadlines. Many times, testing feels like a tug of war between demanding quality in a product and the business needing to release software to gain sales. The problem is that development teams and testers need both speed and quality for optimal results.
This article describes speed and quality and how striking a balance between the two is the ultimate goal to keep customers and the business happy.
What is testing speed? Testing speed is the time the testing team takes to test an iteration or sprint’s worth of work before the developers deploy the build to a production server. For testing, speed is impacted by development work progress and quality. The higher the quality of coding, the fewer new defects are generated. Test server and data access and reliability also impact testing speed. Many testing teams struggle to keep testing environments updated to manage ongoing testing.
Other factors impacting testing speed:
Not to make excuses, but in some testing teams, the amount of testing significantly outweighs the available resources. Many times testers are stretched in more than one direction and cannot focus solely on a sprint release. Managing testing resources efficiently includes prioritizing test execution or reducing test coverage.
Test automation provides scalable speed as long as the builds and data align so false failures do not occur. Automated tests are quick to run but also quick to fail if the test environment, data or build is not aligned correctly. Every automated script failure requires a tester to review and validate if the failure is a new defect, a script or an environmental issue.
In software testing, what does quality mean? Quality for software testers means how well the application meets a customer’s needs. High-quality applications allow customers to perform work tasks without creating errors.
Quality means efficiency and accuracy. When customers find defects or errors that prevent work from getting done, the user experience suffers. Quality for testing teams means the customers get the best experience possible and enables them to reach their goal and perform work efficiently and accurately.
Speed over quality can be a valid approach when release speed is the primary goal for the development team. Agile teams focus on speed when the application is new and has few competitors. Applications may be temporary or meant only for quick hits on social media or for entertainment purposes only. Many development teams working on maintenance for older applications may also put speed over quality.
The advantages of choosing a speed-first approach include:
Disadvantages include the possibility of poor customer satisfaction levels, frequent defect fixes and large, ongoing tech debt loads.
Development teams should always prioritize quality over speed when creating applications that use, save or manage sensitive personal data, are highly integrated or are required to satisfy regulatory standards. When an application cannot fail, then quality must come first. For example, applications built for financials, healthcare, retail, IoT and aerospace.
When teams prioritize quality over speed, it doesn’t mean testing takes as long as the team wants. Focusing on quality still requires testing teams to perform efficiently, and customers still want timely releases. The only difference is quality comes first. Customers aren’t tolerant of errors, which can create compliance issues with serious legal or financial implications. QA testing teams define and create efficient test practices that save time and keep the focus on application quality. A well-managed Agile team can still deliver high-quality applications at speed.
Applications that use sensitive or private data also require robust security. Many complex applications also require backup and failover systems to prevent a crash or extended system disconnection. In these cases, testing teams need to include security testing as well as testing each failover system to validate it functions as expected.
Advantages of a quality-first approach include:
The disadvantages of putting quality first are that testing cycles may take longer, and release dates must be flexible.
Balancing speed and quality is possible for testing teams. With a well-designed test strategy and QA processes that support both quality and speed, testing teams can balance speed and quality effectively. A QA tester’s role is vital because testing creates the balance between speed and quality for Agile development teams and organizations. Teams may use a DevOps or QAOps approach or Agile testing and development methods that help balance quality with delivery speed.
For example, testing teams increase speed by developing suites of valid automated tests and grouping tests into test suites that ensure each function is tested at least once. Effective test development and execution management help teams test an application quickly by reducing duplicate work. Many testing teams rely solely on test automation suites paired with on-the-fly manual exploratory testing. Adopting other Agile testing practices helps when testers are trained and the methodologies are implemented with proper planning.
Development teams that emphasize creativity and practice collaborative communication can improve task completion speeds. Solid communication between developers and QA testers also significantly improves testing and development outcomes. When quality is built into code and testing, it’s far less likely critical defects slip through to production regardless of the release schedule.
Speed versus quality is a long-running debate in software development. Both approaches are valid depending on the intended customer and how they respond to quality or delivery speed issues. Nearly every software development team and tester wants to achieve realistic release dates with quality code. It’s rare for a team to look forward to managing customer complaints or fixing and retesting defects unless necessary.
The best answer for customers and application providers is to create a balance using QA testing teams. Balancing speed and quality is an inherent part of software testing. Testers working within Agile development teams can create thorough and efficient practices that balance quality and speed. Set up your application for success by delivering on both with a balanced approach.
A QA test professional with 23+ years of QA testing experience within a variety of software development teams, Amy Reichert has extensive experience in QA process development & planning, team leadership/management, and QA project management. She has worked on multiple types of software development methodologies including waterfall, agile, scrum, kanban and customized combinations. Amy enjoys continuing to improve her software testing craft by researching and writing on a variety of related topics. In her spare time, she enjoys gardening, cat management and the outdoors.