What Robotic Restaurants Can Teach Us About Test Automation
See what lessons robotic restaurants can teach us about planning test automation, considering risk, and cutting costs.
Join the DZone community and get the full member experience.Join For Free
To most people, going out to eat doesn't evoke the image of robots. But to the four founders of this restaurant, robot chefs are the only viable solution. In this automated kitchen, robots begin cooking your meal in temperature controlled pans as soon as you submit your order. The bots are programmed to spin the ingredients and spices around until everything's perfectly cooked. Then, it dumps your meal into a compostable bowl.
While the restaurant may seem overrun by robots, when you look around, there are more humans involved than you think.
Once in the bowl, a person takes it and adds yogurts, sauces, and dry toppings, then hands you your finished product. Behind the scenes, the Culinary Director and Executive Chef are the masterminds behind the delicious recipes, making sure the finished meals have the right balance of flavor. Additionally, there are people prepping the ingredients. Of course, there are also the four engineers behind the robots making sure that everything runs smoothly.
So what does this have to do with software testing?
In the shift from manual to automated testing, we often get ahead of ourselves in trying to automate as much as possible, or even attempting to automate everything.
But just like a fast-casual restaurant cannot operate on robotics alone, neither can we rely on automation to fulfill 100 percent of our testing. There are certain qualities that testers possess that we can't automate.
So as we continue to explore the ways that automation can aid in our testing efforts, here are a few takeaways we can gain from robotic restaurants:
- A Good Recipe is Key - Just as we need a chef to create the recipes for the robotic sous chef to follow, there needs to be the first test for automation to follow. Whether this is done through record & replay or by writing out a script, the quality of the first test is crucial to designing a suite that will provide insightful results. Just like a robot can't follow a recipe it isn't yet programmed to make and can't create one on its own, a test automation tool can only test what it is told. Additionally, every bowl is only as good as the recipe, just as every regression test is only as good as the first test or script.
- Robots Don't Have an Eye for Detail - Just like humans are the final step in garnishing your meal at a robotic restaurant, human testers have an eye for detail that is critical in testing. There are many soft skills that software testers have - empathy, creativity, curiosity, and knowledge of the software, for example - that are impossible to teach to an automation system. This is why it's important to have real people that can perform exploratory tests on new features, layouts, or other noticeable application updates, so they can bring unique perception and understanding to provide valuable insight. Not to mention the customer service aspect - communication is important that there's someone on the team advocating for testing as well as the end users and who's able to talk to other stakeholders.
- There is Risk Associated with Automation - Automation usually accounts for "normal" situations but doesn't consider edge cases or stress. What happens if a customer has an issue with their bowl? What happens if a concert gets out, and the influx of customers is 10 times what it normally is? What happens if you run out of utensils? These are the instances where automation can no longer solve the problem, and a human needs to step in. Automation can't go outside of what it's told, which means there will always be risk involved when expected situations arise.
- Automation is Best for Repeated Actions - A McKinsey report said the food industry is most susceptible to automation because there are so many predictable physical activities involved. Similarly, during code changes and new integrations, it's important to repeat some of the same tests run previously to make sure they work. This is where automation becomes a good candidate for testing - regressions that have programmable repetition that helps to reduce human error. Rather than have someone perform the same actions over and over, having a machine take over the tester has more time to add new tests is what will result in faster productivity in less time.
- Cut Costs Without Cutting Jobs - Because of reduced labor costs, the robotic kitchen's bowls start at $7.50, around $3 less than comparable options. If you're getting to the point where your solo tester doesn't have time to run all the regression tests they need across browsers in addition to new exploratory tests, introducing an automation solution can alleviate some of those time-consuming tasks and give you a higher ROI. However, if you implement automation, there needs to be a human behind that as well. It's also important to have someone who understands automation and the tools in order to properly execute and maintain tests.
The Biggest Takeaway
You can't automate everything. Though you can add significant automation to a project, there will always be a place for human testers. Additionally, automation should be used as a tool to support manual work rather than replace it.
Interested in hearing more about how test automation is like a robot restaurant. Listen to Episode 6, Manual vs Automated...Restaurants? of SmartBear’s podcast series “The Good, the Bad, and the Buggy” with an interview with Paul Grizzaffi.
This article was first published on the CrossBrowserTesting blog.
Published at DZone with permission of Alex McPeak, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.