We all know the challenges of companies to continuously maintain and improve the quality of their applications or products. And here at Innominds, we also know the challenges testers face having to repeatedly execute test cases, something that requires more and more time with the ever-increasing features and releases. We have developed quite a few great learning situations over the years, as you can imagine. And we would like to share some of our findings and processes with you on this.
Best Solution for Executing Test Cases
We find the best solution for these challenges is automation. Test automation, with right planning and right set of tools, eventually relieves the manual testers from repetitive time-consuming tasks like smoke/regression tests, allowing them concentrate on testing new/modified features and to think and cover the corner cases.
Steps and Phases in Test Automation Planning
Once we decide we are going to use automation, we work on a solid strategy that where we define the scope, decide on the tools/technology to use, layout the start date, framework, resources and budget. Many times our list looks like this:
- Analysis and Planning
- Identify Tools and Technology
- Select and Design Framework
- Define Scope of tests
- Prepare the Testbed
- Identify common functionality/methods
- Implement the test cases
- Review the test cases
Analysis and Planning Phase
We start here, as planning plays a major role in our success. And we know that it’s important to start with the right planning. This phase includes important discussions around understanding what to automate, organizing resources, preparing the team on task distribution, setting up budget and so much more. Once the plan is prepared, it’s important to review the plan with the team.
Identify Tools and Technology
Once the test plan is reviewed and approved, the team members who are responsible for the design and implementation of the framework should start identifying the right tools and technology for the projects. No tool/technology will fulfill 100% of the requirements for the project, but we find it important to conduct some POC and then choose one of the best tools that satisfies most of the requirements or use combination of tools instead of one tool. The type of test automation tools can either be open-sourced or licensed versions, usually chosen by consideration of requirements and budget.
Select and Design Framework
The test automation framework plays a vital role in the success or failure of any automation project. We came up with a list of tasks involved in test automation framework development:
- Setup source control system and repositories
- Setup common coding standards
- Define test automation project structure
- Define standards to create scripts, identify objects, define properties, gather data
- Create common/reusable methods
- Integrate other tools to be used
- Develop reporting tools at different levels like summary, screen shots, logging, email reporting
- Integrate with build tools
- Documentation and training
It is in this phase that a test automation framework is developed, one that encompasses the process, tools, standards, etc. This serves as a baseline, making it easier to create and maintain automated tests. Depending upon the technology/tools you are choosing, it’s important to select the design pattern and framework during this time.
Define Scope of Tests
In this Phase, it’s important to organize the test cases into different groups like Sanity, Smoke and Regression. We recommend starting with implementing the Sanity test cases, then move to smoke and regression.
Prepare the Testbed
Next up is to prepare the common testbed with the required hosts, VM’s, tools and build. It’s important to execute the test cases on this environment in order to make sure the test cases are executed properly.
Implement the Test Cases
With the framework, objects and common methods in place, now is the time to start implementing the test cases. Follow the standards defined, use the common methods, and implement the methods, if required. Organize the test cases into different packages or modules, making sure there is proper logging and documentation for each script so that it will be easy for maintenance. This is important as it enables a way to identify failures. Once the test cases are implemented, execute them on the testbed, making sure they are executed successfully.
Review the Test Cases
Once the test cases are successfully executed on the testbed, it’s important to have them reviewed by team members so all can help make sure the test cases cover all the functionality. We recommend including one team member from the Functional Testing Team and one from the Automation Team in this review process. Once the review is complete, be sure to incorporate review comments, if any.
Test Maintenance is an on-going effort, where all the automated tests are updated regularly to accommodate the functional and UI changes. It includes addition of any new test cases that were not first considered during the Planning Phase. Enhancing test automation framework components and the addition of new features are a part of this phase
Innominds – Your Test Automation Partners
If you’re looking for more information on this topic, we have found the following sites to be helpful. Click here,here and here. Start your automation today. You’ll save time and energy by not having to repeat the same test cases, having more time to learning and think of different ways to test! And if you have questions or a special project you are needing help with, contact us today. Happy Testing! Happy Automation!