What should be automated to minimize manual testing?
I have some queries regarding automation test cases.
For example: I want to test login and logout from the application.
What type of test cases should be automated?
First, take a look at the answers to these questions:
- Does automating your manual tests give you good automated tests?
- What are good guidelines to determine when to automate a test?
- Transition from all manual testing to automated testing
All of them provide some insight into the general question of what type of test cases should be automated - but you should remember that there are no absolute rules. The types of test cases that should be automated in your organization may not be the ones that should be automated in my organization.
To use your logon/logoff example, you would want to consider automating in these cases (this is not an exclusive list - I'm sure there are many more examples):
- there is a login screen and you can't do anything else in the application until you've logged in.
- the path through the application is different for a logged in user than it is for a non-logged in user.
- the application offers different functionality to different levels of user account.
- the application stores user preferences associated to the user login.
- the application locks a user out after a set number of failed login attempts.
You might consider not automating user logon/logoff in circumstances like these (again, not an exclusive list):
- the application behavior doesn't change for a logged in user compared to a user who isn't logged in
- the application uses domain credentials to perform an implicit logon.
Some other things you would consider not automating:
- hardware interactions such as PIN pads, printers, and so forth.
- interactions with third party applications.
- any kind of configuration that typically uses a "set and forget" pattern
- multi-application interactions (app A communicates with app B to drive app C, which in turn sends message to app D. App A receives messages from apps B, C, and D, sends messages to apps C and D via app B. And so on)
- custom settings used by only one customer (unless that customer happens to be your largest customer, in which case you do automate).
In short, what you should automate depends on your business model, your application, your customer base, and whether you have the time and/or support to build the automation.