This post is from the Experitest blog and has not been updated since the original publish date.
Ride the Automation Wave and Weather the Digital Transformation Storm
There is no denying the influence that the rise of digital transformation has had on customers. They are accustomed to online and digital experiences; both on browsers and mobile applications.
Leading businesses like Walmart, Macy's or Amazon, must adapt to this growth. If not, as a result, there is a chance that they may not make it through this digital era.
According to a CEO of North American Bank, "I run a technology company that happens to have a bank." They do provide the service of banking, but the way that service is provided is digital.
So, what does this digital transformation mean for application development and testing?
Paradigm Shift in Application Development and Testing
The main methods used to enable digital transformation include:
- Renewed focus on ‘speed' as things are changing quickly.
- Agility so that business can adapt to change.
- DevOps to focus on aligning organizations within the company.
- Continuous integration for continuously committing, and delivering, test code.
- Shift Left testing which brings quality into the process as early as possible.
However, one of the most prominent changes under this digital transformation wave is the growing role of automation in both development and testing. Without automation, there can be no short or expanded testing cycles, which ultimately leads to technical debt.
So, there has to be continuous testing and high automation for better results.
Manual Testing Vs. Writing Tests - The Fundamental Difference
- Manual Testing
Manual testing is done in a freestyle manner and is considered as more of an immediate process. You can come up with the test scenarios as you go.
While you are performing these tests, if you find issues, the tester can report it as a bug and have it fixed.
However, the main issue begins as the software code grows. With an increase in code, the number of necessary regression tests will skyrocket, and you will need to have strong automation project in order to shorten your release cycles.
- Test Automation
With test automation, you need to plan out testing, and then decide which one is going to become an automation test. After that, you can create the test.
Although you need both coding skills and time to create an automated test, you can look up to them as an investment.
The Fundamental Difference: In manual testing, you do the test yourself, so you have immediate feedback on your code. While, in automation, you program a machine to do the testing, so that the outcome of the test has to be quite clear.
Here is what makes a good test:
- Short: If the test is short, it is clear, easier to maintain, and code.
- Efficient: As we are talking about code and programming, it has to be efficient with no repeat source code and be readable. These tests are regression tests and are used over and over again.
- Readable: Test has to be readable. There is a chance that you are doing the test, but people analyzing the results are on the other side.
- Stable and Robust: The test should be both stable and robust to get the best results.
The main aim is to create a test, which you can keep using as you develop your application or as new versions are released. So consider it an investment, rather than a one-time thing.
Coding and Reading Test Code - The Basics of Test Automation
We have heard that in order to be an automation engineer; you have to be an expert coder. The truth is that the most common approach to becoming a test automation engineer is to create your application and then create an automation project for it.
Other basics include:
- Learning about the most common languages used in automation including C#, Java, and Python.
- Learning how to read and write code.
- Starting to use test automation tools and frameworks
Moreover, reading code is also a way to write better code. As an automation engineer, it would also be the main part of your daily job.
Here is how to get started.
Mobile/Web App Test Automation Environment – What You Need?
The first thing you need to test is your code. Other things you need in a test automation environment include:
- Digital App Test Automation Tool
These are the test development tools that help you write tests. With an easy to use visual interface, they will simplify the development process. Moreover, mobile applications are complex, the number of devices to test is more, and hence, there is a need for a dedicated testing tool.
- Integrated Development Environment
In your IDE, you can define the automation project, matrix coverage dependencies, test the environment, and view your test results.
- Access to Mobile Devices and Desktop Browsers
When testing, it is necessary to have a device lab as mobile testing requires covering numerous devices and operating systems.
Demo and Test Results
- Example- Object Identification
When we test an application, we test how objects interact in every page of the application. We create a program that uses the objects in every page so that every object in the app needs to be identified to be used in your code.
Here is an example of XPath from the tool Appium Studio. A tool like ExperitestObject Spy identifies the objects, their unique identifiers, and actions that can be executed. It represents the entire page of an application as an XML tree, where you can see all of the elements, and all elements come with a list of the properties.
- Recording Tests and Understanding Test Code Structure
Start by connecting a physical device located in the Experitest Digital Assurance Lab. Open the interface, and you'll see a physical device, which you can control on the screen.
Select the application you want to test, install it, and record the test scenario.
- Every element you interact with is highlighted. The recorder uses the XPath and Experitest's Object Spy to to compute an expression for identifying elements.
- In the code snippet part, you will see that the test part remains empty.
- Stop recording, and you will see the test screen that has been generated.
You will see that every command uses the XPath expression, and the entire test screen is readable and requires no technical knowledge. Moreover, in the bottom, there is a complete translation that you can run the code from.
- How to Turn Tests into an Automation Project?
To start, you need an IDE like Eclipse IntelliJ, Visual Studio, and a bit of familiarity with automation frameworks such as JUnit.
- Connect to the digital assurance lab. At the bottom, you can see the list of added devices.
- Create your test automation project using a template. To create a project, configure the mobile nature in the Appium Studio for Eclipse capability. Choose the client, platform, and you will see the tests will be changed.
- Use the properties file.
- Set up the project dependency configuration.
- Run TestNG parallel execution using parameters.
Making Sense of Test Results
First, we use Appium Studio to create a test by recording it and the tool creates the code for us. Then, we use Appium Studio for Eclipse, take the test in the IDE, and create an automation project.
Now the next step is to take the automation project and run it on numerous devices in parallel.
- Go to the digital assurance lab. In the lab, you will see reports for every single test. You will also see the status of currently running tests.
- As you will launch the test on both devices and web browsers, you can see the results of tests that are finished. Although the data is a bit more, you can skim and check if there is any failed test or characteristics of specific tests.
What to Do to Navigate Digital Transformation Next?
Here are the top things you need to do today to prepare for running test automation on your web and mobile apps:
- Download Appium Studio and start writing tests.
- Download an IDE like Eclipse or IntelliJ and learn how to use them.
- Use Appium Studio for Eclipse and create automation projects.
- Learn basic coding from YouTube, Stack Overflow, and other online tutorials
Lastly, sign up for a digital assurance lab account to access other devices.