In our degree program, there is a compulsory course module we follow in our second year. That is Software Verification and Validation. As a part of this course module, we had a session about Test Automation conducted by an associate conduct specialist. So let’s see about test automation and tools which are useful for software engineers.
As the Wikipedia definition, In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes.
First, he mentioned about black box testing which is a software testing method with functionalities of software applications and tested without knowing internal code structure, implementation details, and internal paths. Black Box Testing mainly focuses on the input and output of software applications and it is entirely based on software requirements and specifications. There are several benefits of test automation.
· Speedup test execution
· Avoid human errors
· Unattended execution
· Test what manually impossible
· Improve the efficiency of testing and cost
· Improve team morale
· More time for exploratory testing
Because of these benefits automation becomes much easier and efficient. There are different types of automated testing. They are;
- Code driven — Unit tests/TDD
- GUI (End to End Test Automation) — UI object property based / Image recognition based
- API/Service Test Automation — Restful APIs, SOAP
- Mobile Test Automation — Android, IOS, Hybrid
As we were told having the knowledge of the Testing pyramid is a key point in software engineering.
Knowing the testing pyramid helps to divide time and effort in testing as if Unit testing needs the biggest coverage. And knowing the exact route makes finding the problem a lot easier. And also it needs to choose the correct automation tool in each testing stage.
He mentioned some of the industrial trending tools & technologies that are used in test automation.
- GUI-web — Unified functional testing/ TestComplete/ sikuli/ Selenium
- Mobile — appium/ Calabash/ DeviceAnywhere/ Perfecto
- GUI-windows — TestComplete/ Unified Functional Testing/ Rnorex/ sikuli
- API — Unified Functional Testing/ SoapUI/ rest-assured/ Postman/FitNesse
Why we need automation frameworks?
The framework is a supporting structure around something that can be built. Some of the benefits of using frameworks are, increase reusability & maintainability, reduce complexity, and improved reporting, error handling & productivity. There are some tips to gain the maximum ROI in any application. For that, we must observe the following;
- Scope of automation
- Select the right automation tool
- choose appropriate framework
- scripting standards
- measure metrics
Then we got a practical session about selenium IDE to get a brief idea. What is selenium? Selenium is widely used for test automation and there are many reasons behind it. Selenium is an open-source IDE and it has so much of cooperate backing up for all the cooperate tools. It can be run in most of the modern and latest versions of web browsers such as chrome, firefox, opera, etc. And it can be run on all the operating systems such as Microsoft, macOS, Linux, etc. So the story in a nutshell it is very important to learn about Selenium IDE when we go to the industry level.