A = For Automation
Welcome to the #AutomationABC In this weekly series I will explore topics regarding automation & testing. Each week a different letter will be explored. Expressed views and opinions are my own, unless stated otherwise. Debate is more than welcome, love to challenge my personal biases.
Additional context and feedback are always welcome, this is a major part of our profession and will be applauded.
Automation:
The first letter in the alphabet is the letter A, since this series will cover Automation. It makes a lot of sense to start with this definition. A topic that is often heavily debated within the international testing community.
Beforehand it’s good to distinguish between Automation & Automated testing. The latter often criticized by the Context driven school of software testing.[7]
To an extend I agree with their point of view. Since testing and checking are completely different activities. Truly interacting with a piece of software or executing some quick checks to see if a login functionality works as intended are completely different approaches.
Being someone who both loves automation but can also appreciate manual craftmanship I’m often torn between these two camps.
Personally, I would prefer to automate the “boring” checks, the ones we all know are important but are often not that exciting to work with. This leaves me more time to really dive into the software and search for the corner cases.
In addition, it frees up time to speak with stakeholders and actual end-users. Awesome right? Maybe even pair with a developer while you're at it.
Let’s look at some definitions of automation, shall we?
Definitions of Automation:
According to the Cambridge dictionary, automation means:
“the use of machines and computers that can operate without needing human control”[1]
Looking at Merriam Webster we find the following:
“?the technique of making an apparatus, a process, or a system operate automatically"[2]
Though there are some similarities in usage of words. The definitions differ in the angle. One mentions the absence of human control. The other one just mentions making it operate automatically.
Let’s delve deeper. What does the ISA say?
"The creation and application of technology to monitor and control the production and delivery of products and services “[3]
The ISA, being a non-profit organization with the goal of creating a better world through automation. Has created a definition that I as a software tester can align with.
Monitoring[4] & control[5] are well known in the world of software testing. Arguably becoming even more important when more companies are adopting a shift-right approach. Just wait 18 more weeks and the letter 'S' will be added. Guess which topic it will cover?
When looking for more context, we stumble upon the definition of the Britannica encyclopedia:
"automation, application of machines to tasks once performed by human beings or, increasingly, to tasks that would otherwise be impossible.?“[6]
By itself, nothing ground shattering compared to the previously mentioned definitions. Though, would extend the sentence. "Would otherwise be impossible at this moment" However, in their article we find three principles of automation:
1.???????? Power source
2.???????? Feedback controls
3.???????? Machine programming
领英推荐
Here is where it becomes interesting. This remains pretty much unchanged nowadays. Automation activities in our software testing world won’t function without a power source, there is usually feedback controls and even though some tool-vendors might tell you otherwise. There is programming required to make it work.
From the definitions of the past, we flash forward to the future. We prompt GPT and see what it comes up with.
“ Automation is the use of technology to perform tasks without human intervention. In the context of software testing, it refers to using tools, scripts, or frameworks to automatically execute tests on a software application, improving speed, accuracy, and coverage, especially for repetitive tasks.”
?Though there are some elements I can agree with. Improving speed for repetitive tasks, absolutely. I'm game.
However in my opinion it's cutting corners. Working with tools, frameworks, or scripts themselves there is still human intervention taking place in order to execute these “tests” Yes even setting a scheduled run is a form of intervention.
Checks won’t magically start. Taking aside configuration and set-up, sure they can run without human intervention. But once they are done, there will often be some form of interpretation and communication taking place.
Only in an environment which has a true CI/CD build pipeline. Including the deployment to production, the last human intervention can be the developer committing their code. But how often do we experience this? It requires an extremely mature team and very little constraints.
Conclusion
Consult 5 sources, get 5 different definitions of automation. This diversity is what makes our profession so dynamic. Our mindset is to challenge the status-quo and spark the debate in our communities.
These are just some definitions of Automation I could rake up in my spare hours. But i'm curious to hear your views on it. What does automation mean to you?
If you found a great definition of automation, please share it in the comment section. Would love to hear it. And remember, all truths are but half-truths.
Will leave this here as well, we are safe for now.
?
?
CEO of TechUnity, Inc. , Artificial Intelligence, Machine Learning, Deep Learning, Data Science
2 个月Great start to #AutomationABC! Love the focus on debate and diverse views—key for growth.#KeepItUp
Quality Engineering Leader | Educator | Speaker | SAST board member
2 个月Looking forward to this series. Rethinking basics is always a good idea.
Tech leader | Cloud Native Expert | ?? Innovator | Practice Lead @ Sopra Steria
2 个月Mooi Willem K. ben benieuwd naar de serie!