Test Automation - Part 1
Walid Sabra
Leading digital transformations as an Executive MBA & Enterprise Architect. Skilled in strategy, architecture, project mgmt, product mgmt, TOGAF, and IoT. Driving growth and improving operations through technology.
Well, I was wrong!; when I started to read about this topic a few years back the name was and still misleading, "Test Automation". I thought its nothing but adding few test cases for a particular software app in some sort of script to automate the testing execution.
It's a science, and I do believe systems architects need to take it into consideration early in the design phase in order to avoid the big disconnect between Product Development, QA/QC, implementation, Support ...etc.
Developers always tend to avoid getting involved in the subsequent stages of the product lifecycle and try to be more reactive to avoid scope creep.
The more test automation is considered by the Architect and the developer, the less testers and support teams need to work; which always leads to fewer defects reported back to the developers.
This is the raw definition of what is called; Continuous Integration - CI.
Its the ability to host the code on a repository being used by multiple teams members (Developers) and each change/commit is "Tested" automatically and finding issues for the change of the code that Just happened or committed to the repository.
There is no single solution out there that covers the full lifecycle, therefore; many technologies will take parts in order for test automation to work; Development languages such as C# or Java, Testing Frameworks such as NUnit or MSTest, Browser automation framework such as Selenium WebDriver, Testing IDE, and records such as Katalon, Containerization such as Docker, Code repository such as GitHub .... and the list goes on.
In the subsequent parts of this article, I will demonstrate one case study on how to combine these tools and technologies to build test cases link it to the code and trigger it each time the code changes and see the outcome of the test results in some fancy reports which deliver on the root cause of the issues reported.
I will only explain in this part on a high level each component mentioned above and its role in the bespoken case study.
* NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit.
* Docker is an operating-system-level virtualization also known as containerization.
* Selenium is a suite of tools to automate web browsers across many platforms.
* Katalon is built on the top of Selenium and Appium; it can be used as a recorder for test cases and more.
A workflow that combines all of them together will give you the best practice in Test Automation and that's what we will work on together. Code samples and videos will be shared. Stay tuned.