Writing Your Automation Strategy
Developing an Automation Strategy is the most important yet often overlooked steps in Automating Tests. This asset will allow you to unify stakeholders as well as develop your roadmap while encouraging the right questions.?Here are the key questions:
What do you want to automate?
Test automation is a tool. It is great that you can use automation for a variety of purposes, including software testing. Software Testing utilizes a variety of different tools, practices, and methods. You can’t simply replace all of that with automation just like you can’t simply replace a developer with automation. It is important to define specifically what you are trying to automate.
Automated Acceptance Tests? Do you want to have an automated test for EVERY functional acceptance Test and verify every detail of functionality you ever verified and make sure still works as expected?? This isn’t practical or realistic. It affects performance and maintenance. Also, you can’t automate all types of tests such as accessibility, UI verification (images, look and feel), or exploratory testing.
Automated Regression Tests? If you automate some functional acceptance tests as you complete stories they can be added to a regression test suite and executed on a schedule of your choosing. In this case, you can have a subset of tests and continually regression test the basic functionality of an application.
Automated Smoke Test? If you automate a subset of tests you can measure the general status of a new build or environment.
Why do you want to automate?
Some reasons to automate a task are to save time and money. Efficient repeatability is also a good reason. Test Automation is not free. These are the costs to consider when implementing test automation and making decisions in your strategy. Factors to consider:
It is important to evaluate the cost with all of the above in mind whenever choosing a test automation tool. The more complex the system is, the more expensive it is to build, grow, and maintain. Remember! Just because you have automated a test, does not mean it is a good test! Just because you have coded some functionality, does not mean it is good code! Asking these questions and having thoughtful conversations could potentially save you and your company months and millions of dollars before jumping into an epic journey of fully automating your regression test library.
How do you automate the tests you’ve chosen?
Do you pick a Tool and start to automate? or do you decide what to automate and pick a tool? There are several common types of automated tests to consider.? Let’s look at some taxonomy and test definitions to understand the full scope of testing.
Taxonomy of Testing Terms
UI Tests
UI Tests can be used to verify user interaction with a User Interface. This can be time-consuming and complicated.
领英推荐
API Test
API tests can be used to easily verify API endpoints. Just as the API is efficient, the tests are also smaller sized and more efficient. This is efficient Regression Testing as APIs generally do not change as much as an interface.
Integration Tests
Integration Tests might combine all of the above depending on the system. UI, API, ETL, File processing, etc. Testing multiple integration points within a system.
E2E Tests(End to End)
Test the flow of the entire system or product to verify functionality. This may tie together several Integration Tests.
Test Matrix
A matrix can help you target your testing activities and testing types so that you can choose methods and implement automation while seeing coverage. An example:
Integration UI Tests
Integration tests are a combination of existing workflows (Integration test cases) for legacy features and New Feature tests (Integration Tests)
One challenge with long integration UI tests is that they touch so many parts of your system. Long end-to-end tests are not desirable.? They can be flaky and mask isolated failures.
Whenever possible you should break long tests into smaller pieces to isolate Applications and components in your system.
Next Steps
While the idea of clicking a button and having “Testing” done automatically is exciting, you can see there is a lot of scope to consider. Software Testers use many perspectives and skills to help ensure the quality of an entire product. This happens through design, implementation, and testing. Automating Tests are a fantastic tool to prevent unexpected regression bugs and save time. But rushing into it without a clear strategy can waste a lot of resources.