Test automation has been adopted and used effectively in the IT industry for over a
Both automated and manual testing are equally important and one is simply not a replacement of the other. Using automated scripts, we can rapidly go through the pre-existing test cases and validate functionalities and hot-fixes. This gives the QA team ample time to investigate more, discover new information, and exercise the newly-added functions of the application/software. Also, it is important to diligently identify the test cases that would require to be automated to provide the best ROI. In my experience, I have always tried to prioritize test cases by communicating with leaders/stakeholders so that the essential business requirements or testing goals are met.
A good example of when manual testing is needed is when there are hot-fixes for a release that were not integrated in the automated tests. In those cases, manual testing is essential to verify that the defects are no longer existent in the software or application. In conclusion, no matter how complete the automation tests are it does not negate the fact that manual testing is also needed.
Today’s project managers and QA’s are moving towards Agile based methodologies, which allows for testing to no longer be limited to the User Interface layer. Early feedback is brilliant for any agile project, so if we’re concentrating only on the UI layer, we are left waiting until the UI is developed and ready to test. Now we can test even before the UI is developed and we can directly test the APIs using tools like Cucumber, FitNesse or SOAP UI. Following this approach tests not only small cosmetic changes or validations on the GUI, but also gives developers more time to fix any bugs.
In conclusion, we can use test automation at many different levels in various platforms or environments.
Simply put, test automation is not guaranteed to improve the quality of software because the test automation steps are pre-defined, leaving room for human error. If the test cases are not written diligently and with proper understanding of functionality and business requirements, then the automated test may not help the quality of the software/application at all. A full understanding of the software’s important functionalities will allow the appropriate test automation cases to be made, ultimately improving the quality of the software. In addition, the QA person developing the automated scripts needs to have the aptitude and curiosity to be able to understand the main goals/objective of the test case and add his/her experience into it to make it more robust and efficient.
The name ‘test automation’ may lead you to believe it can work as an independent entity, especially given the pre-requisites for the development are essentially the documented test-cases, automation related tools, and test environments. However, opting to utilize such a methodology could have a negative impact on the project. Leaving it to work independently would likely lead to a lack of communication or flow of information, causing the automation team to not be fully aware of the changes applied to the current functionalities or the new ones that will be added in the sprint. Therefore, more time is invested in the development and maintenance of the tests. To get the maximum benefit, the scrum team should work collaboratively with test automation in terms of identifying the automated functional and regression tests, confirming current sprint goals are aligned with automated functional tests and strategizing the development of the tests that are more stable. It is also important in an agile based project for test cases to be updated on a regular basis to better assist the test automation team in terms of robustness and maintainability. Therefore, the cooperation between both teams is essential to make the project successful.
It is true that one of the main objectives of test automation is to reduce testing effort, but the reality is it may take some time to gain this benefit, especially when the application or software is changing rapidly. The first few development cycles are crucial and require the most attention because there is an initial need to investigate the product, select different tools, prepare POC, compare different options, and develop basic infrastructure based on existing/new framework to support testing layer. Therefore, the development has high initial investment, but once the application becomes stable and the automation personal is also accustomed with the application, then the maintenance becomes much easier and we start to witness the true benefits of test automation. That’s when the ROI would start to become more visible.
In short, test automation is an incredible tool that can go lengths to ensure the software being developed is of the utmost quality and meets the needs of the users. It is not the be-all and end-all of testing however and a manual, human touch will likely still be required.
Did we miss any myths? Feel free to leave a comment below! If you would like to learn more about Online’s Business Consulting practice, click here.