Why it is Needed?
The most plausible answer to this would be, to reduce the time required for regression testing. This will eventually increase the efficiency of the testing team, as a lot of efforts are to be saved on regression testing.
One more important aspect of the automation testing is the fact that in modern scenario quality assurance is the most critical phase of any software life cycle. As it would be the deciding factor of the sustainability of the concerned application in the tough market.
Here Automation proves its importance with its diverse and versatile ability to test the basic work flow of the functionalities at the earliest phase in test life cycle.
One more important area for extensive usage of the Automation is “Build Verification testing”.
By the term mentioned above, I mean, in certain process oriented organization, these tests are carried out in order to conduct the “sanity” testing. To make sure that the AUT is fit for extensive testing, and should be free from UT level bugs.
Areas where Automation testing is required at the most are,
- Build Verification Testing
- Regression Testing
In certain cases where the whole application is played around certain specific sets of customer with specific sets of use cases and scenarios, It would be quite beneficial to automate the specific scenarios, so that, any changes made in the concerned functional machinery, should be tested thoroughly with maximum level of assurance in minimum time frame.
When Automation Testing is Needed?
Special care should be taken care on switching to the automotive approach. Going with the automation testing requires few prerequisites fulfilled with greater degree of acceptance.
The very first point should be the proper Understanding of the project. This pre-requisite is directly in relation to the decision for going for Automation.
In and Out knowledge of AUT is required with certain degree of critically scrutinized understanding of functionality is critical.
Further, few more points should keep in mind and needs to be asked within:
- Do we have too many repetitive tests that need to be executed repeatedly?
- If there is frequent regression testing iterations?
- If it is needed to simulate large number of users who are using the application resources?
- If AUT is having comparatively stable UI?
- If you have large set of BVT cases?
If the answer is assertive, then for sure it is the right time to jump to the Automation testing
Tools Selection for Test Automation
Tool selection is important task for test team, in order to initiate the Automation process.
Certain aspects should keep in mind prior to select the appropriate tool for automation.
- Frequency of the changes made in the application
- Project environment
- Skill sets
It is essential to assess the tool as per your project requirement, skills level of people some tools work better in particular environments, while in another environments they can make a compatibility problem. Demonstrate the tool using your application under test.
Many QA engineers have the same opinion about test automation that programmatically creating an automated test takes in more time than the record and playback method. It’s also the first major decision that needs to be made when implementing test automation for a given project.
Our application is basically categorized in two different branches, desktop and Web. Desktop application is developed on Dot Net framework using devexpress controls.
Automating this genre of applications, the best and comprehensive way is “Record and Play” methodology of automation testing. As it would be quite difficult to get the element’s IDs or locators through which the elements are identified and controls are utilized. Hence via “Record and Play” methodology, we can easily record any desired steps derived from the Manual test cases, in automatic fashion.
In our environment we are using “Test complete” tool in order to automate the manual test steps. For every Build, in accordance to the predefined process, we need to verify the build for the sanity level test cases.
Here we call them “BVT” which is Build Verification test, which in turn comprises of the test cases for all the basic and fundamental functionality of the application. This is important to conceptualize the process of BVT and Build rejection criteria, where short deadlines with rigorous build iterations are going on.
Second time when Automation comes in picture in the STLC is at the time of regression testing.
By regression we mean that all the functional testing is executed and the entire functionality is covered during manual phase.
Regression testing includes:
- Basic and fundamental functionalities verification
- End-To-End testing
- System Testing
- Ad-Hoc testing
The first two points should be covered via Automation as it includes large number of repetitive test cases to be executed.
Regression testing should be done with both manual as well as Automation testing going in parallel. Once completed, the results are matched and based upon the current status, it would be easier to decide, whether to go for final release or not.