By Pablo Hernández Castillo, Automation Tester at Financial Solutions
Performing testing during software development is very common, always with the goal of delivering quality in what we are creating.
The main goal of test automation is to achieve the following:
What does it consist of?
It consists of using automation testing tools to develop automated test cases that we would normally perform manually. This is achieved by generating a test with code and replicate the flow that we would normally perform for a manual test.
To generate the tests, before we start coding, we must keep in mind some considerations to start this process, which are as follows:
There are different tools for the creation and development of tests, however, some will have more or less options than others.
We must bear in mind from the beginning on what type of system we will automate, obviously it’s not the same to automate a platform installed on our desktop as it is to automate one that is on a web system. Therefore, we must know well the basis of the system on which we will perform the tests.
Some of the most famous tools to automate in different scenarios are:
Perhaps this is the most important part of all, since here we define the level of productivity with the design and development, we must remember that these tests have a short and concise objective, we should not extend too much with what is being carried out, since the more a test is extended, there is a greater probability that it will fail.
You can learn more about the definition and scope of testing in our blog –> [Define an effective test plan] https://bit.ly/3pxgGjD
Once we have our scope, we begin to design our automation, we must define the steps to follow and we must know what we can find at the time of execution, each factor must be taken into consideration to comply with a clear design.
Developing it’s the fun part of the process, this is the point where we will replicate how a person would behave in our system, how long it would take to go from X to Y element, or what it would do if it encounters a strange element. The biggest problem we can have developing our test, to not stick enough to the design planned before, which will cause that our test doesn’t give the expected results.
Once all our tests are fully developed, we can start with the execution, managing them in a unitary way so that, when a change is made in a specific module only that test is executed, or in an integrated way to check if any change made in the system doesn’t affect any other part.
After each test we will get our feedback, this will help us to know if the test was performed correctly or if we need to modify something in our design, we will do this in order to improve our success rate.
Let’s not forget that every change in our system can affect our tests, therefore, it’s necessary to give them constant maintenance to confirm that everything is still in order.
This can become a totally optional process; however, it can save us even more work.
Let’s suppose we have a web system, which has its 4 main branches: Development, QA, Production and Design, there are dashboards (depending on the tool we use) which will allow us to synchronize with our repository, in order to centralize the tests to be executed in a single tool.
Dashboards are tools that will help us to clearly visualize, the different tests that we will execute on the system, the average execution time, and even the ability to divide the workload into different nodes, in order to improve the time it takes to perform, all tests in this way, every time a change is detected in any of our branches, our previously defined and developed tests will be executed, giving us this immediate feedback, without us having to perform manual tests, or execute automation on our own, generating a continuous integration.
At Financial Solutions, we use automation, to improve day by day the software we develop, we seek to use the best tools that suit each case and thanks to this, we have been able to increase our productivity, while we continue our process to deliver the high quality standards that characterizes us.