Companies design and develop software in order to solve the routine human issues with a potent blend of technology and human intelligence. It is very much essential that the software is tested in order to bring assurance that it works as expected. Moreover, it is that testing is efficient, quick and economical as well.
Therein, comes the role of Automation Testing, which helps reduce the effort required or significantly increase the amount of testing which can be done in limited time which is not viable in case of manual testing.
Automation testing always evolve as the software grows hence change is inevitable in this fast paced moving world.
We can cope up with the changes and keep the impact minimal by following the good habits given below:
- Evaluate AUT options: Evaluate the technology of AUT. Understand how its code structure is developed and which all API’s are used as this will help in moving further.
- Select best feasible solution: Based on AUT evaluation, we can consider selecting the right tool for test automation. For example: Coded UI for Desktop applications, Selenium webdriver for web applications, SoapUI for API’s testing, etc.
- Create good framework: A good framework is the backbone of any automation test solution that can help in long run by providing benefits of code reusability, low maintenance cost, easy reporting etc. It mainly comprises of function libraries, test data sources, object details and reusable modules. Some of the examples of framework include – Data driven, Keyword driven, Hybrid, Cucumber (for BDD applications), Unit Testing frameworks like Nunit, TestNG.
- Choosing the right test candidates for automation: Select the best tests for automation which are critical from the customer view point and thus help in giving maximum ROI. An important principle to consider, ‘do not automate anything and everything’. Make sure that right Platforms (OS and Browsers) are identified in the beginning so as to minimize the scope creep. One thing to keep in mind is that test has to be simple and only one test is running at a time. Also asserting many things in one test is not considered as a feasible option.
- Always follow the best practices of OOPS by making loose coupling between the classes with minimal dependency.
- Segregation of Test Suites: Functional test suites should be kept apart from with regression test suite cases. In the case of need, corresponding test suites can be run thus contributing in the time saving from identification and selection of cases for execution.
- Reporting and Emailing: The final thing, but not the last – Keep the stakeholders inform through daily execution reports in a presentable format.
But if we consider the whole situation there are few shortcomings of automated testing.
- Creating Unrealistic expectations: Thinking that automation tests/tools will solve all the technical problem is itself a problem. Testing tools have a tendency to be optimistic about what can be achieved by them. If management expectations are unrealistic, no matter how well the tool is implemented on technical front, it will not meet expectations.
- Poor Practices of Testing: if manual tests are not good at finding defects then automation tests around them are not worthy.
- False sense of security: Just that a test suite has run successfully does not mean that there are no defects in the software. It may be possible that tests itself are incomplete or contain defects.
- Other reason for automation failing is bulkiness of automation test suites. Hence maintenance seems difficult to achieve.
- Automation effort is like developing software. A good tester might not become a good automation tester. Hence right set of skilled people is required at the right time in order to achieve automation benefits.
Therefore in order to fully reap the benefits of automation testing one must carefully choose the good habits considering the drawbacks too same time.
Sunny Bhatia is a System AnalystCompanies design and develop software in order to solve the routine human issues with a potent blend of technology and human intelligence. It is very much essential that the software is tested in order to bring assurance that it works as expected.
Moreover, it is that testing is efficient, quick and economical as well.
Therein, comes the role of Automation Testing, which helps reduce the effort required or significantly increase the amount of testing which can be done in limited time which is not viable in case of manual testing.
Automation testing always evolve as the software grows hence change is inevitable in this fast paced moving world.
We can cope up with the changes and keep the impact minimal by following the good habits given below:
- Evaluate AUT options: Evaluate the technology of AUT. Understand how its code structure is developed and which all API’s are used as this will help in moving further.
- Select best feasible solution: Based on AUT evaluation, we can consider selecting the right tool for test automation. For example: Coded UI for Desktop applications, Selenium webdriver for web applications, SoapUI for API’s testing, etc.
- Create good framework: A good framework is the backbone of any automation test solution that can help in long run by providing benefits of code reusability, low maintenance cost, easy reporting etc. It mainly comprises of function libraries, test data sources, object details and reusable modules. Some of the examples of framework include – Data driven, Keyword driven, Hybrid, Cucumber (for BDD applications), Unit Testing frameworks like Nunit, TestNG.
- Choosing the right test candidates for automation: Select the best tests for automation which are critical from the customer view point and thus help in giving maximum ROI. An important principle to consider, ‘do not automate anything and everything’. Make sure that right Platforms (OS and Browsers) are identified in the beginning so as to minimize the scope creep. One thing to keep in mind is that test has to be simple and only one test is running at a time. Also asserting many things in one test is not considered as a feasible option.
- Always follow the best practices of OOPS by making loose coupling between the classes with minimal dependency.
- Segregation of Test Suites: Functional test suites should be kept apart from with regression test suite cases. In the case of need, corresponding test suites can be run thus contributing in the time saving from identification and selection of cases for execution.
- Reporting and Emailing: The final thing, but not the last – Keep the stakeholders inform through daily execution reports in a presentable format.
But if we consider the whole situation there are few shortcomings of automated testing.
- Creating Unrealistic expectations: Thinking that automation tests/tools will solve all the technical problem is itself a problem. Testing tools have a tendency to be optimistic about what can be achieved by them. If management expectations are unrealistic, no matter how well the tool is implemented on technical front, it will not meet expectations.
- Poor Practices of Testing: if manual tests are not good at finding defects then automation tests around them are not worthy.
- False sense of security: Just that a test suite has run successfully does not mean that there are no defects in the software. It may be possible that tests itself are incomplete or contain defects.
- Other reason for automation failing is bulkiness of automation test suites. Hence maintenance seems difficult to achieve.
- Automation effort is like developing software. A good tester might not become a good automation tester. Hence right set of skilled people is required at the right time in order to achieve automation benefits.
Therefore in order to fully reap the benefits of automation testing one must carefully choose the good habits considering the drawbacks too same time.
Sunny Bhatia is a System Analyst[:]