Live demos are back. See Testim Mobile in action on Feb 21 | Save your spot

Improving Testing Collaboration—Whether Co-located or Remote 

Improving team collaboration is a crucial goal of nearly every software development team. Methodologies like DevOps, tools like Jira, and…

Author Avatar
By Shawn J,

Improving team collaboration is a crucial goal of nearly every software development team. Methodologies like DevOps, tools like Jira, and activities like daily standups all serve to improve cooperation and align teams toward common goals. 

Testing is too often the final step, rather than an integral part of the development process. Yet, releasing faster requires a more integrated approach. Teams need to collaborate early and often, especially as testing shifts-left in development cycles. 

The purpose of this blog is to discuss how Testim’s AI-based functional test automation solution can help improve collaboration and accelerate workflow so that your team can release faster. 

Ease of Use

Ease of use should be measured by more than the beauty of an interface—it should consider the full experience of installing, managing and using the software or service. How long does it take for people to get productive using it? If you aren’t a daily user, can you switch context and use the tool effectively? 

Testim is a SaaS-based service making setup, administration, and upgrades very easy. It’s also straightforward to use. But don’t take our word for it alone, customers like Microsoft, Outbrain, and AI Media all cited ease of use as a top reason they chose Testim.

Authoring tests

The goal is to quickly create stable tests that work for your application. The tests should be easy to write, configure, reuse, maintain, and troubleshoot. If the tests meet these criteria, they will enable your team to work together toward your quality objectives. When specialized skills or expertise are required to create, maintain, and fix tests, it limits who can work on them. 

To illustrate, let’s look at how Testim helps with each of these attributes:  

  1. Write. Testim’s recorder enables the quick capture of user journeys by clicking through scenarios. Everyone from developers to non-technical users can record the journey with only minimal training. And because Testim’s recorder has evolved and matured over five-plus years, it captures UI actions like drag-and-drop, multi-tabs, hovers, and more that require hard-coded workarounds in other solutions.
  2. Configure. Visualize the recorded test as discrete steps in the Testim editor. The visualization is essential as it helps ensure that the right elements were selected in the test case to reflect the user journey. It also enables each step to be treated independently to add additional wait times if needed, to insert validations, to configure loops, to reference databases for data-driven testing, and more. A non-technical or infrequent user can perform all of the above. If you need more advanced configuration, a more technical developer or QA automation engineer can step in and insert custom JS code. Again, duties can be split across the team or done solely by a single person depending on the complexity of the test and their skill level. 
  3. Reuse. Nearly every user journey contains steps repeated across multiple use cases. Login and add-to-cart are two examples commonly repeated across test cases. Testim makes it easy to turn these steps into reusable groups that can be accessed by multiple teams to simplify their tests. Creating reusable groups not only reduces test authoring and configuration time, but it also helps improve troubleshooting and maintenance as well. If a failure occurs in a reusable group, fix it once, and repair all dependent test cases.
  4. Maintain. Testim uses AI-based Smart Locators to identify elements. Rather than look at one, two, or three attributes to identify an element, Testim’s Smart Locators consider how dozens (sometimes hundreds) of attributes make an element unique. Why does this matter? Because developers move buttons, change text, and modify attributes to improve the application. Testim does a better job of locating those elements than competitive solutions, even when attributes change. Tests pass when they should, not because the test was fragile, saving time for everyone on the team. If there’s a failure, a non-technical user can simply reassign the locator by clicking on the correct new element. No coding. No calling for help.
  5. Troubleshoot. Tests will fail—because of an application bug, an environment problem, or perhaps because the test has become stale. When that happens, you need the tools at your fingertips to troubleshoot quickly. First of all, Testim will tell you what step failed with a red icon. When you inspect that step, you can see side-by-side screenshot comparisons of the recent run versus the baseline. You can quickly page forward or backward to see the screenshots that led to this failed step. Often this is enough to determine the root cause of the problem. However, sometimes you need more data like console logs or network information. Testim automatically pulls that information and provides it right at the step where you need it, so you don’t have to go looking.

Testim offers two ways to author tests, depending on your team’s skills and preferences. The fastest way to create stable tests is to record user journeys and then configure them in the visual editor, as described above. The second method of authoring a test is to record the test and then export it as code and edit in an IDE. A non-technical user may record the test, but editing code requires JavaScript experience. For developers who work in code all day, editing in their IDE is natural.  

The two options allow team members to build test coverage by recording and configuring tests, by enhancing tests with custom code, or by editing the coded test. 

Running tests

Tests can be run on-demand, on a schedule, or based on an action in your CI server. The decision depends on the goal of the test. Let’s explain.

Testim easily integrates with nearly all CI servers by simply copy-and-pasting a Testim generated script. Then, run different tests depending on actions in your pipeline. For instance, developers may execute a functional smoke test on every commit to verify that the new code is working correctly. They will then run a more extensive set of functional tests upon merging a pull request. Finally, a QA lead may schedule nightly cross-browser regression runs on all significant user journeys to validate that new code doesn’t create problems with existing code.

Regardless of the type of test run, developers, QA automation engineers, and non-technical testers can run the tests to support their needs. 

Results and reporting

When you run your tests, you’ll want easy to read and understand results—did your test pass, and if not, why? If you are a manager, you might also want to evaluate team progress and assess whether systemic or process issues can be improved. 

Results are about understanding whether your test or suite of tests passed. A developer will want to know whether their new feature passed the smoke test. Testim lets you run those tests locally or remotely, showing whether the test passed or failed. 

A QA manager or development leader might want to know if the new release candidate caused any regressions. A regression suite will likely contain dozens or hundreds of tests that execute at night. Testim will show you the tests that passed and failed and help you diagnose problems by aggregating errors on failed tests. For instance, if you ran 100 tests and ten failed, Testim will identify like-issues, such as the same missing element on seven of the ten steps to help reduce the troubleshooting time. 

Testim can push results updates directly into your collaboration tools such as Slack or Jira to inform you immediately upon completion of the build and testing steps. These notifications reduce switching from your pipelines tools simply to check status.

 

Reporting will help inform how your team is performing and identify areas for improvement. With Testim’s built-in reporting, you can see which tests are passing and failing. You can identify trends over time that can serve as indicators of code (or test) quality. 

Tag failed runs with reason codes such as “bug in app,” “environment issue,” or “network.” Then leverage this data to show systemic issues that need process improvement, technical fixes, or additional training. Your whole team gets better at writing tests, improving quality, and releasing faster. 

Bug reporting

Quickly capturing an application bug and reporting it is often overshadowed by other more time-consuming tasks. However, getting a full and accurate bug report can save time and confusion—often when the team most needs clarity. 

Testim’s bug capture feature allows organizations to capture and communicate bugs effectively. It’s easy enough for anyone to use, whether on the front lines fielding support calls or in the test environment reviewing results. The capture tool enables screenshot and video capture, annotations, and even automatically authoring a test to recreate the bug. This data can be submitted through Jira, Trello, or Slack to facilitate collaboration across the team. 

Summary

Improving collaboration is a crucial driver of team cohesion and success. Yet, as I write, the COVID-19 pandemic is causing office closings that split up teams. Collaboration is necessary to maintain momentum, especially when obstacles surface. There are many tools for collaboration, and no single tool is sufficient—processes, leadership, and culture also provide vital roles. 

We believe that Testim can help improve collaboration across development and test—to improve coordination, speed, and quality. Whether a developer, QA automation engineer, or non-technical tester, all can play a part in creating, running, and maintaining tests. And, because Testim is SaaS-based and connects with your pipelines tools, you can work efficiently from anywhere.   

Do you need a break from writing flakey tests? Get Testim free. Now up to 1,000 runs per month per organization.