For Video Tutorial : Move on Youtube Channel
Note : Select the playlist as per your need & move with number sequence
"When pre-written Test script/Test Suite is executed by any automation tool then it is known as automation testing."
Manual software testing is performed by a human sitting in front of a computer carefully going through application screens, trying various usage and input combinations, comparing the results to the expected behavior and recording their observations. Manual tests are repeated often during development cycles for source code changes and other situations like multiple operating environments and hardware configurations. An automated testing tool is able to playback pre-recorded and predefined actions, compare the results to the expected behavior and report the success or failure of these manual tests to a test engineer. Once automated tests are created they can easily be repeated and they can be extended to perform tasks impossible with manual testing. Because of this, savvy managers have found that automated software testing is an essential component of successful development projects.
Difficulties of Software Testing :
1).It is a lengthy process and can happen only after the alpha stage of the application.
2). Constant retesting : After each release we need to test new features and retest existing ones - even if the changes affect only a part of the application we can never be sure that the rest of application is unaffected.
3). Usually the full test plan is applied right at the end of the delivery cycle : regression error or unexpected error can be detected too close to final delivery - they can affect the delivery schedule.
Solution : Automated Tests
1). Automate the test plan right from the beginning of the development cycle : the developer can now exercise the application before is deployed to testing.
2). System testing will always have a manual part but can be also comprised of automated tests that can cover a lot of scenarios.
3). Use unit testing and integration testing extensively as they can be automated with minimal cost.
Why do we need automated testing
Time - Speed up the delivery schedule : the test window is reduced and testers can concentrate more on exploraory testing and test cases that can not be automated.
Cost - reduce the number of bugs : bugs can be detected before a deployment is made and regression issues are reduced significantly.
Scope - reduce the amount of rework and make scope changes cheap : the testers, business analysts and developers will start from test scenarios first that will increase the product knowledge right from the start.
How to implement automated tests
1). The application need to be testable.
2). System Testing : coded ui tests using an automation framework or using record and replay tools.
3). Integration tests : inject data that is used to exercise the application layers from specific scenarios.
4). Unit testing : they are code only tests so they don't have an impact on external systems and their dependencies.
Styles of writing unit tests :
1). Write production code first then unit tests.
2). Test driven development(TDD) : write the unit tests first then production code.
3). Behaviour driven development(BDD): start from user stories and decompose them in scenarios then write code to validate the scenarios.
Why we need automation?
When frequent testing is required also for a long application to minimize testing effort.
Popular Tools in Market :
There are number of tools in the market but few popular are described below :
Selenium : Open source tool , need basics of core java programming skill
QTP : licence tool, need VB script knowledge & easy to use.
SOAPUI : Open source, need Groovy knowledge.
Watir : It is an open source tool & need ruby knowledge.