DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Integrating Lighthouse Test Automation Into Your CI/CD Pipeline
  • AI-Driven Test Automation Techniques for Multimodal Systems
  • Debugging With Confidence in the Age of Observability-First Systems
  • Overcoming MFA Test Automation Challenges

Trending

  • Mastering Advanced Aggregations in Spark SQL
  • Is Agile Right for Every Project? When To Use It and When To Avoid It
  • Memory Leak Due to Time-Taking finalize() Method
  • AWS to Azure Migration: A Cloudy Journey of Challenges and Triumphs
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Testing, Tools, and Frameworks
  4. Test Automation vs. Automated Testing

Test Automation vs. Automated Testing

Automated testing and test automation are terms that are bandied about frequently, but what if we told you they mean two entirely different things?

By 
Kyle McMeekin user avatar
Kyle McMeekin
·
Jan. 13, 17 · Opinion
Likes (4)
Comment
Save
Tweet
Share
14.3K Views

Join the DZone community and get the full member experience.

Join For Free

When we talk about continuous testing in terms of Continuous Delivery and DevOps, the term "automation" gets thrown around a lot. In a basic sense, we all understand what automation means: The use of some technology to complete a task. However, when we talk about automation in terms of continuous testing, there are some nuances that we need to take into account.

Two Types of Automation in Testing

In the world of testing in general — and continuous testing, in particular — there are two types of automation: automated testing and test automation.

While it might just seem like two different ways to say the same thing, these terms actually have very different meanings.

Automated testing is the act of conducting specific tests via automation (i.e., a set of regression tests) as opposed to conducting them manually, while test automation refers to automating the process of tracking and managing the different tests.

Both automated testing and test automation are important to continuous testing, but it’s the latter that really takes the cake on this one.

Why Test Automation Is Critical to Continuous Testing

To fully understand why test automation is so critical to continuous testing, it’s important to make clear what exactly continuous testing entails and why it came about.

Continuous testing is a relatively new approach to software testing that aims to ensure quality at all times.

In a traditional environment, testing gets completed at the end of a development cycle. However, as more and more companies move toward a DevOps and Continuous Delivery model in which software is constantly in development and must always be deployment-ready, leaving testing until the end no longer works. That’s where continuous testing comes in to ensure quality at every stage of development.

So, with continuous testing, rather than testing happening in a big bang at the end of a cycle, it happens in small pieces at all times as soon as the need arises.

While ensuring quality at all times is of utmost importance to this model, it’s not all that counts. The speed at which all of the development and the testing occurs also matters quite a lot. That’s because if something in the pipeline stalls or breaks down, it holds up everything else and slows down the release of new developments. Given that the need to deliver new releases faster and on a more regular basis paved the way for this Continuous Delivery and testing model, that roadblock defeats the purpose of taking this approach.

This “how” and “why” make organization, consistency, and speed imperative to supporting a continuous testing model, and that’s where test automation can help. Managing all of the testing needs in a continuous testing environment is a massive undertaking. It requires tremendous communication efforts to keep track of which environments have deployed new code, when each piece needs testing, and how those requirements integrate back into the moving process of continuously delivering software.

Test automation eases this burden by automating the tracking and managing of all those testing needs, including how much of the system different tests cover and what other types of testing might be required to cover all the moving parts. In doing so, test automation goes a long way toward helping ensure that teams maintain a high standard of quality at all points along the pipeline. Additionally, it allows testers to focus more time and effort on creating effective test cases to ensure the quality of the software since they’re no longer bogged down in managing all the minutia of testing needs.

Making Test Automation a Reality

In theory, the concept of test automation is a perfect fit for testers operating in a continuous testing environment — but what happens when reality strikes?

In a typical real world scenario, when testers need to schedule and verify test cases, they:

  • Communicate with the Product Owner to gather product requirements and distil the essence of the problem for which the product owner is trying to solve.

  • Break the product requirements down into user stories and then incremental units of work to create the functioning software. This often requires working with the team of developers, analysts, and operators.

  • Write a combination of test cases (automated, exploratory, regression, etc.) to fulfill the contract of those requirements. 

  • Track the progress of each step to completion, running the appropriate test cases for each phase:

    • Developer branches that compose components of the feature.

    • Deployment artifacts that compose parts of the systems and services needed to support the feature.

    • Regressions so that changes or additions to the component don’t affect other aspects of the working system.

    • Functional verifications to ensure the product does what the product owner intended it to do and solves the problem correctly.

With this type of scenario in mind, what testers really need to make test automation a reality is a solution that can help automate the process of creating test cases for specific work items and scheduling test runs to execute those test cases.

Ideally, this solution should allow for test automation by:

  • Flagging a list of work itemsfor which test cases need to be created to bring new needs to testers’ attention automatically.

  • Integrating with the ALM so that when a particular type of task gets created in the ALM, a copy of that task also gets created in the test automation tool and presented to the user.

  • Allowing users to separate and categorize work items by logical containers (such as by feature, component, or Sprint) to make it easy for users to ensure proper coverage for each pipeline.

The Move to Embrace Continuous Testing

As DevOps and continuous delivery models become the norm, so too will continuous testing. In order to make continuous testing efforts successful, testers need to start thinking now about what it will take to manage the change that comes with injecting testing throughout the entire development pipeline.

Clearly, test automation will be a critical weapon in the continuous tester’s arsenal given its ability to help keep track of all of the different tests that need to take place at various points in the pipeline.

Test automation Testing Pipeline (software)

Published at DZone with permission of Kyle McMeekin. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Integrating Lighthouse Test Automation Into Your CI/CD Pipeline
  • AI-Driven Test Automation Techniques for Multimodal Systems
  • Debugging With Confidence in the Age of Observability-First Systems
  • Overcoming MFA Test Automation Challenges

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!