Generally speaking, test automation means doing functional testing through the UI. Non-UI automation tends to be easier and more inherently stable and should also always be looked at in addition to UI automation.
If you are a non-technical person, like a Business Analyst or project manager, you may be struggling with understanding the logic of automated tests. The test doesn’t expose any business logic of application under test (AUT). Instead, its steps link directly to the AUT’s GUI and it’s eating up your time chasing what automated test does instead of giving you the results you need. You properly want to redesign these tests to make them readable. Of course, you still want them automated and runnable.
Sounds good right? You can easily do this with Action Based Testing. Action Based Testing is a modular-design and action-driven test method that provides a systematic approach to increase the success of automated testing. Modular-design addresses the challenges of test planning and test case management through efficient test organization. Action-driven test development eliminates the majority of the programming work required to automate and maintain tests long-term. This alleviates the need for having a technical testing staff.
Here’s how to create readable automated tests with Action Based Testing methodology:
Action-Based Testing Design Process
In Action-Based Testing
- The focus is on a modular approach, where tests are organized in test modules, each with a clear and differentiated scope. The test cases in the module consist of sequences of “action lines,” each starting with an action keyword (short “action”) with optionally one or more arguments.
- The automation efforts focus on automating the actions rather than the tests.
- Actions shifts the focus from technology and instead places it on test design as the key driver of automation success. In other words, a clever automation engineer alone is not enough to fix a situation where tests are not well designed.
A top-down planning approach creates a logical test flow that results in more efficient test creation.
It also facilitates developing test cases free of any unnecessary details or redundant checks that make tests difficult to debug and maintain when the application under test changes.
Test module design
Test Modules are containers for organizing tests—typically around user stories, or software requirements. Test Modules increase the efficiency of test development by providing a well-defined test case flow.
Tests within a module can have interdependencies, but test modules are intended to be independent from one another. This simplifies maintenance and allows different parts of a project to be parsed out to different teams without impacting the overall test project.
Action-driven test authoring
Actions are keywords in which the majority of the programming work of automating tests is separated from the actual test design.
Actions create a plain text business-readable domain specific language to optimize test automation production. This mini-domain specific language is called Action Based Testing Language (ABTL) that follows an activity >> outcome syntax.
Tests consist of actions specifying activity followed by outcome. This makes it possible for testers to write tests using one or more actions rather than lengthy scripts detailing operations and checks.
Action-Based Testing is a modern approach to Keyword-Driven Testing – the test development method we all know and love. It represents the continued evolution of the keyword-based testing approach. Moreover, it unlocks the ability of creating readable automated tests by non-technical. To learn more about Action based testing visit https://www.testarchitect.com/support/action-based-testing.
Author: Hien D. Nguyen
Hien D. Nguyen is an experienced Software QA Engineer at LogiGear Corporation. A tester by day and a blogger by night, Hien has a great passion for software testing, especially complex test automation problems. When not doing all those, he enjoys reading, jogging and trying new things.