Back to Resources

Blog

Posted October 27, 2023

4 Tips for Optimizing Usage: Scaling Testing Without Sacrificing Quality

Monitoring your usage data helps assess test efficiency and effectiveness so you can make data-driven decisions on your strategic approach to testing, and focus on business critical testing opportunities.

quote

In the dynamic world of software development, delivering flawless applications while staying ahead of the competition is an ongoing challenge. Software testing plays a pivotal role in achieving this goal. But the real key lies in testing the most impactful components of your software and having the capacity to do so. It's a strategy that enables you to avoid potential business risks associated with the accidental release of critical defects into production or delayed releases altogether.

Testing acts as the checkpoint; so when tests can't run (due to limitations) or they fail, code releases don't go to production. If you don't have the ability to flex your capacity to test anywhere anytime, its crucial to prioritize and test what matters most.

With Usage Analytics, you can leverage comprehensive dashboards and reporting to gain a clearer view of your testing needs. We compiled a list of our top four usage optimization tips that can help drive your testing strategy and effectively mitigate risk.

With usage data, you can maintain a consistent assessment of test efficiency and effectiveness, make data-driven decisions on your strategic approach to testing, and focus on business-critical testing opportunities. In fact, a study by McKinsey found that organizations that measure and track such metrics saw a 20-30% reduction in product defects and a 60% increase in customer satisfaction ratings.

Let's dive in to learn more about how usage analytics can help you increase testing efficiency and help ensure quality software is released into production.

1. Distribute your Testing Schedule Strategically

One effective way to optimize usage and test what matters most is by revisiting the schedule of regression tests. This is essential for proper resource management, reducing costs and streamlining load distribution, all of which contribute to the efficiency and effectiveness of the software development process: 

Here's how you can distribute your regression test schedule in a more thoughtful way:

  • Prioritize critical tests: Identify critical tests that need to be executed more frequently and run them during peak testing times. Non-critical tests can be scheduled during off-peak hours.

  • Spread tests throughout the day: Instead of running all your regression tests simultaneously, schedule them to run at different times during the day. This reduces the risk of a high number of concurrent sessions and creates better balance, saving resources while ensuring thorough test coverage.

  • Leverage Continuous Integration (CI): If you're using CI tools like Jenkins, Travis CI, or CircleCI, integrate your Sauce Labs tests into your CI pipeline. This way, tests are automatically triggered with each code commit, reducing the need for scheduling.

2. Prioritize Test Suites for Quicker Execution 

Prioritizing test suites allows you to maintain testing quality while staying within your concurrency limits and ensuring that the most important tests can run. Critical path tests that cover essential functionality should be given priority – ensure that these tests run successfully with a high concurrency level. For example, a fintech banking company focused on its app experience will want to prioritize mobile testing. Segment your tests by resource type, prioritize mobile tests, and verify that those are able to fully run before moving on. 

After that, secondary tests or non-essential test suites can be assigned lower concurrency. They can be run with fewer concurrent sessions or scheduled during off-peak times. This requires alignment across your organization, between teams, and with leadership to identify which tests are categorized as critical vs secondary. 

3. Align Concurrency Bandwidth

Provide your team managers and admins a mechanism to define usage bandwidth for their teams, based on their activity and testing needs. To help ensure all teams have proper access to precious resources, you can set thresholds and keep your usage in check: 

  • Custom concurrency limits: Define custom concurrency limits for each team based on their testing requirements. In the example previously mentioned, some teams run more jobs that require higher concurrency limits, which can be customized across teams.  

  • Monitor resource consumption: Regularly monitor your concurrency usage to ensure teams stay within their allotted limits. Adjust these limits as necessary based on your organization's testing needs. It's inevitable that some teams will execute more jobs than others based on factors like project complexity, coverage goals, and compliance requirements. 

  • Informed decision-making: Many QA teams at large enterprises run their tests in silos, meaning that they might not have visibility into the work others are doing. With greater visibility into usage across teams, you can truly understand your test suite at an organizational level and make decisions on where to increase capacity and scale back. 

With this approach, you can enhance team productivity. Identifying any potential bottlenecks in your team member’s test execution allows for better planning and resource management. 

4. Drill Down on Data for Further Analysis 

Make even more strategic testing decisions by diving a layer deeper into your usage data. Harness the power of groups and filters to uncover valuable optimization trends. This approach is pivotal for gaining insights into the teams actively running tests, the specific devices they are utilizing, and the precise timing. You can pinpoint areas for improvement and make informed decisions to not only enhance software development but also prevent detrimental defects.

  • Team usage: Move from an organization-wide view to individual team’s test data to explore more in-depth. Examine each team's long-term trends to spot consistent patterns, highlighting opportunities for optimization. If a team consistently underutilizes its testing capacity or continuously overuses, this may suggest the need to provide extra access to those exceeding their limits or to support teams that are underutilizing their resources.

  • Resource usage: Understanding who is using your app can help you understand prioritization for testing.  If 95% of your mobile users are running Android, then a large percentage of your tests should be geared toward those device types. Many companies have end-users that operate on different devices, so it's crucial to understand the usage breakdown on various resource types, like Windows (Android) and Mac (Apple). 

  • Time range: Use filtering to break down by day, month, quarter, and year and look for more granularity hour by hour. With this breakdown, you can identify when and why more tests were or weren't running. ‘

What Does Right-Sizing Testing Capacity Look Like? 

Proactive, high-performing DevOps teams with multiple simultaneous CI cycles may require more generous usage limits than the waterfall teams supporting legacy tech. However, many organizations set standard limits across teams – capping highly active teams, which can lead to timeouts. As mentioned earlier, it's critical to provide higher thresholds to active teams.

Here is an example of how to approach this scenario: To balance out your team's testing usage, take a look at team usage summaries to identify which groups are consistently running a high number of jobs and consider providing them with higher concurrency limits. For example, when your highest performing team is constrained by a limit of 40 virtual machines (VMs) while consistently attempting to utilize 200 VMs, it becomes evident that this team would benefit from an increased limit to accommodate their robust testing requirements. You can manage these limits within the Sauce Labs platform. 

Wrapping up

Optimizing your test platform usage is all about smart planning and resource allocation. By strategically scheduling tests, setting team concurrency limits, and prioritizing test suites, you can strike a balance between cost-effectiveness and quality assurance. These are all important aspects of a high-performing, quality team.

You can't do any of this without proper usage analytics – Sauce Labs can provide this reporting directly to your email.

Sauce Labs is your go-to partner for ensuring software quality. With our platform and these tips, you can continue to maximize your potential while keeping costs and concurrency usage in check. Your testing processes will be both efficient and effective, ensuring a smooth development cycle and products that your end users love.

Jenna Roering
Senior Product Marketing Manager @ Sauce Labs
Published:
Oct 27, 2023
Share this post
Copy Share Link

Get the most out of your test data with Sauce Labs

Deliver quality software continuously

© 2023 Sauce Labs Inc., all rights reserved. SAUCE and SAUCE LABS are registered trademarks owned by Sauce Labs Inc. in the United States, EU, and may be registered in other jurisdictions.