- Automation testing involves testing of application or
product using some program in some software, or testing or validating
software using software which is different from the one which is to
be tested.
- Commonly its well known for reducing and removing human interactions from an existing
manual process that follows formalized testing
process. Once test have been automated they can be run quickly and
repeatedly. This is the most cost effective process for the products
or applications whose maintenance life is for
long years.
- Every software development group tests its products, as
the delivered product contains defects. Test Engineers strive to catch
them before release of the product with the best manual testing processes
but they end up in vain. Automated Testing is the best way to test the
product with increase in efficiency. Automated tests are created and can
be easily repeated to perform the tasks impossible with manual testing.
Automated testing is considered critical for big software organizations or
too expensive for small companies to implement. Automated software testing
improves the accuracy, test coverage within short interval of time at low
cost.
- Test automation has specific advantages for improving
the long-term efficiency of a software team’s testing processes at low
cost and time.
Why To Automate
- Cumulative coverage to detect errors
It
is a fact that applications change and gain complexity over their useful
life. As depicted in the figure below, the feature set of an application
grows steadily over time. Therefore, the number of tests that are needed for
adequate coverage is also constantly increasing. Just a 10% code change
still requires that 100% of the features be tested. That is why manual
testing can’t keep up – unless you constantly increase test resources
and cycle time, your test coverage
will
constantly decline. Automation can help this by allowing you to accumulate
your test cases over the life of the application so that both
existing and new features can always be tested. Ironically, when test time is
short, testers will often sacrifice regression testing in favor of
testing new features. The irony is that the greatest risk to the user is
in the existing features, not the new ones! If something the customer is
already doing stops working – or worse, starts doing the wrong thing –
then you could halt operations. The loss of a new feature may be inconvenient
or even embarrassing, but it is unlikely to be devastating. But this
benefit will be lost if the automated tests are not designed to be
maintainable as the application changes. If they either have to
be rewritten or require significant modifications to be reused, you
will keep starting over instead of building on prior efforts. Therefore,
it is essential to adopt an approach to test library design that
supports maintainability over the life of the application.
· Graphical User Interface Testing:- In this approach verification of application is done considering the behavior of application for mouse clicks and keystrokes.Many test automation tools provide record and playback features that allow users to interactively record user actions and replay them back any number of times, comparing actual results to those expected. The advantage of this approach is that it requires little or no coding skills.However, reliance on these features poses major reliability and maintainability problems. Relabeling a button or moving it to another part of the window may require the test to be re-recorded. Record and playback also often adds irrelevant activities or incorrectly records some activities.
- Repeatability to save time and reduce the cost to market
Because software has become a competitive weapon, time to market may be one of the key drivers for a project. In some cases, time is worth more than money, especially if it means releasing a new product or service that generates revenue. Automation can help reduce time to market by allowing test execution to happen 24X7. Once the test library is automated, execution is faster and run longer than manual testing. Of course, this benefit is only available once your tests are automated.
- Reduced cost of Failure
Software is used for high risk, mission critical applications that represent revenue and productivity. A single failure could cost more than the entire testing budget for the next century! In one case a single bug resulted in costs of almost $2 billion.
- Leverage to improve resource productivity.
True leverage from automated tests comes not only from repeating a test that was captured while performed manually, but from executing tests that were never performed manually at all. For example, by generating test cases programmatically, you could yield thousands or more - when only hundreds might be possible with manual resources. Enjoying this benefit requires the proper test case and script design to allow you to take advantage of external data files and other constructs.
Benefit: Reduced testing resources. The sad fact is that most test teams are understaffed already, and it makes no sense to try to reduce an already slim team. Instead, focus on getting a good job done with the time and resources you have.
When to Avoid Automation
If the expected behavior
of application is well known then one should go for automation. When this is
not the case, it is usually better not to automate.
- Ad hoc Testing
- One time testing
- Testing that demands validation of applications appearance
- Unstable design of Application
- Inexperienced Testers:- If the person(s) automating the test are not sufficiently experienced with the application to know the expected behavior, automating their tests is also of doubtful value.
- Temporary testers
- Insufficient time, resources:- If you don’t have enough time or resources to get your testing done manually in the short term, don’t expect a tool to help you. The initial investment for planning, training and implementation will take more time in the short term than the tool can save you. Get through the current crisis, then look at automation for the longer term.
Automation is a strategic solution, not a short term fix.
Benefits of Automation Testing- Fast: - Tools runs tests significantly faster than human users.
- Reliable: - Tests perform precisely the same operations each time they are run, thereby eliminating human error.
- Repeatable:- You can test how the Web site or application reacts after repeated execution of the same operations.
- Programmable:- You can program sophisticated tests that bring out hidden information.
- Comprehensive: - You can build a suite of tests that covers every feature in your Web site or application.
- Reusable: - You can reuse tests on different versions of a Web site or application, even if the user interface changes.
There are basically two approaches for automation testing,
· Code Driven Testing:- It is a process in which unit testing is executed to validate
functionality of modules or some functions or classes under different
circumstances. It is generally done by Development teams
· Graphical User Interface Testing:- In this approach verification of application is done considering the behavior of application for mouse clicks and keystrokes.Many test automation tools provide record and playback features that allow users to interactively record user actions and replay them back any number of times, comparing actual results to those expected. The advantage of this approach is that it requires little or no coding skills.However, reliance on these features poses major reliability and maintainability problems. Relabeling a button or moving it to another part of the window may require the test to be re-recorded. Record and playback also often adds irrelevant activities or incorrectly records some activities.
No comments:
Post a Comment
Note: only a member of this blog may post a comment.