Welcome to the fourth installment in our Ask the Expert Series. Here you’ll find insights on everything from User Experience (UX) to ecommerce directly from our team. Today LaDarrious Dortch shares his expertise on quality assurance (QA) , what QA automation is, how it's done, and when to implement it in the project lifecycle.
QA testing is a crucial component of the software development life cycle (SDLC), ensuring that your site or app is working correctly.
Manual testing by a QA specialist is an important piece of the puzzle, but QA automation can turbocharge your QA efforts.
With QA automation, a specialist creates a suite of tests that can run automatically day or night, as often as needed. With careful design and deployment, QA automation testing is fast, reusable, efficient, and supports continuous integration and continuous delivery of software.
When is QA automation right for you?
- When it's cost effective. QA automation generally pencils out for larger projects rather than smaller ones.
- When manual testing is repetitive and takes too much time, such as for full regression testing.
- When testing is frequent and/or high-volume. Most teams don't have the capacity for constant high-volume manual testing.
- When testing needs to be simultaneous across multiple machines, or for load testing.
- When human error is likely in highly complex flows.
- When the team practices continuous integration and continuous deployment (CI/CD), with daily develop/deploy cycles.
To deploy QA automation for your project:
Select an automation tool that best suits your scope and the application under test (AUT). This will mainly depend on the technology on which the AUT is built, but may involve more unique requirements suited to the tool’s users. Do you need a web app or a desktop app? Should it be code-based to suit developers, or codeless to allow non-developer QA personnel to work with it?
Create a test plan that outlines the approach, timeline, and goal of the project and choose a test automation framework (linear, data-driven, keyword-driven, etc.) that benefits your maintenance strategy. Then use your plan to develop the automated test bed.
Set the environment: Establish where testing takes place -- web staging, browsers, machines, etc. -- and acquire the software and hardware you need to effectively test the AUT.
Write scripts: Create reusable and easy-to-understand scripts to execute tests based on the established requirements. Scripts should guard against environmental change as much as possible.
Execute tests directly through the automation tool or schedule execution to take place via a command line interface or an additional test management tool. There are two main ways to automate execution:
- GUI testing: imitate UX through execution, run the same test each time, or test different software features each time.
- API testing: test third-party or in-house programming interfaces, assess end-to-end transactions and software components.
Report: The QA automation tool generates a post-execution report to show where defects exist and indicate whether you need additional testing.
On even the largest and most complex projects, QA automation can help you deploy code with confidence and deliver an excellent experience for your users.

LaDarrious Dortch, Mapping Team Lead, Bio
LaDarrious Dortch currently leads Aegir's indoor mapping team and also holds a wealth of experience in quality assurance. He has expertise in test plan creation, execution, and maintenance. LaDarrious previously focused on regression, integration, functional, and smoke testing as well as defect reporting.