Automation” is a deceptive term, especially when it comes to automated testing. Instead of completely removing humans from the process, automated testing merely shifts the bulk of the work from running tests and logging errors to designing tests and selecting the best tools for the job. Like all things automation, a sizable human touch is required to ensure that automated testing actually saves a team time as opposed to creating new problems.
For Vlad Plasman, RedShelf’s manager of engineering for data and analytics, that means creating a process that incorporates automation from the beginning.
“Testing is baked into our engineers’ mindset from day one with unit test coverage of over 90 percent,” Plasman said.
With that in mind, we reached out to three Chicago tech leaders to learn more about what their approachs entail, including templating, mocking and isolation.
One of the best ways to ensure people pick up a practice is to make it easier to accomplish. That’s the idea behind test automation at Vail Systems. Matt Wood, manager of test automation, said Vail’s test execution and reporting systems are purposefully designed to be both dev-friendly and efficient.
Briefly describe your top three test automation best practices.
Whenever possible, we attempt to create automated test solutions and when necessary follow-up with exploratory manual solutions. We have three main test classifications that include end-to-end feature testing, load and longevity testing, and high-availability testing. Our goal is to build these test classifications into our CI/CD pipeline process. Each of these test classifications may include varying degrees of automation and utilize various tools to perform the testing. These tests include the automation and verification of phone calls, texts messages, API requests, API responses and web UI cross-browser operations as required by different Vail products.
What kind of tests does your team automate, and why?
We strive for 100 percent coverage with end-to-end testing and our aim is to achieve the highest level of automation to cover almost every functionality of Vail’s products under test. We focus on creating developer-friendly test execution and reporting systems that allow developers to execute and verify test results on their own private branches when needed.
In our process, a developer can submit new code changes. The CI/CD pipeline begins by building their submitted code, then running static code analysis. If all build and static analysis pass, the code is deployed to one of the testing locations and a full functional test is executed. Results are available as soon as the automated tests are completed.
What are your team’s favorite test automation tools, and how do they match up with your existing tech stack?
We utilize a Git code repository, and our CI/CD process is driven by CloudBees using Jenkinsfile Groovy scripts and shell scripts with static analysis tools such as Coverity and cpplint. We are also utilizing Kubernetes clusters for deployment and managing platform resources and have many in-house test suites for feature and load test execution.
For our end-to-end browser and cross-browser testing, we also utilize the following tools: Selenium with Selenium Grid, Cypress, JMeter, and Readyui. Many of our test solutions are built in a way that allows for tests to run in parallel. This greatly speeds up test execution time and allows resources to be reallocated dynamically for other test execution.
https://www.builtinchicago.org/2021/08/13/test-automation-best-practices-engineering-managers