What is automation testing ?
Use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes.
Automated Software Testing is the application of automation technology throughout the software testing life cycle with the goal of delivering capability faster and more afford ably.
A process in which software tools execute pre-scripted tests on a software application before it is released into production.
Using automation tools to write and execute test cases is known as automation testing.
The process of software verification in which the basic function and test steps, such as running, initialization, execution, analysis and delivery of results are performed automatically by tools for automated testing.
So whats automation testing or test automation? as per bolton and bach*
from the definitions we have seen till now, we can summarize following
- we automate test cases, which are nothing but steps followed by end user, hence automation testing is automating user
- we automate test cases execution , which are executed by tester manually , hence automation testing is automating tester
We see at least three big problems here that underestimate testing:
- The word “automation” is misleading. We can not automate users. We automate some actions they perform, but users do so much more than that.
- Output checking can be automated, but testers do so much more than that.
- Automated output checking is interesting, but tools do so much more than that.
Test automation is not human at all. It’s incredibly fast and inexpensive
We define a tool as any human device that aids in fulfilling a human purpose. A test tool could be software; hardware; a map, document, or artifact; or some other heuristic that aids in fulfilling a testing purpose.
Automation testing is we automate error prone repetitive tasks,
automated testing is not really testing. It is checking of facts.
Why Automation Testing ?
A time savings that translates directly into cost savings.
Save Time, Save Money
Automated software testing can reduce the time to run repetitive tests from days to hours.A time savings that translates directly into cost savings.
It means you saves time required for repetitive test execution and you saves money.
so what are repetitive activities?
Manual Testing of all work flows, all fields , all negative scenarios is time and cost consuming
Increase the effectiveness, efficiency
Software Test Efficiency is number of test cases executed divided by unit of time (generally per hour).
Test effectiveness = Number of defects found divided by number of test cases executed.
- Automation does not require Human intervention. You can run automated test unattended (overnight)
- Automation increases speed of test execution
- Automated testing can simulate tens, hundreds or thousands of virtual users interacting with a network, software and web applications.
Helps increase Test Coverage
- Test coverage in particular, is a measure of the extent to which the code in question has been tested by a particular test suite
- test coverage is a useful tool for finding untested parts of a code base.
- Manual Testing can become boring and hence error prone.
Early Feedback
In agile context
Test automation provide early feedback, if automated tests own by both developer and tester
Test can be run on each code change.
Collaboration of developer and tester due to automation improve moral of team as well as individual
When and What to automate?
In any project life-cycle, our goal should be to automate all the activities that are repeated while creating and maintaining the system
so what are repetitive activities?
- Set up test data
- Executing same tests on different or cross environments
- Regression testing
Our focus should be to create a high value test suite, which focuses on the business critical areas of our product.