Test automation means using a software tool to run repeatable tests against the application to be tested. It compares actual outcomes with predicted outcomes. For regression testing this provides that responsiveness. In generic terms, Test Automation is the process of converting the manual test cases to programmable test scripts that can be executed by a system without human intervention.
Why Test Automation?
Software tests have to be repeated often during development cycles to ensure quality. Every time source code is modified software tests should be repeated. For each release of the software it may be tested on all supported operating systems and hardware configurations. Manually repeating these tests is costly and time consuming. Once created, automated tests can be run over and over again at no additional cost and they are much faster than manual tests. Automated software testing can reduce the time to run repetitive tests from days to hours. A time savings that translates directly into cost savings.
Automated software testing can increase the depth and scope of tests to help improve software quality. Lengthy tests that are often avoided during manual testing can be run unattended. They can even be run on multiple computers with different configurations. Automated software testing can look inside an application and see memory contents, data tables, file contents, and internal program states to determine if the product is behaving as expected. Test automation can easily execute thousands of different complex test cases during every test run providing coverage that is impossible with manual tests.
Even the most conscientious tester will make mistakes during monotonous manual testing. Automated tests perform the same steps precisely every time they are executed and never forget to record detailed results. Testers freed from repetitive manual tests have more time to create new automated software tests and deal with complex features.
Even the largest software and QA departments cannot perform a web application test with thousands of users. Automated testing can simulate tens, hundreds or thousands of virtual users interacting with a network, software and web applications.
Shared automated tests can be used by developers to catch problems quickly before sending to QA. Tests can run automatically whenever source code changes are checked in and notify the team or the developer if they fail. Features like these save developers time and increase their confidence.
Other BenefitsÂ
Test automation is useful if test needs to be executed repeated number of times.Once one time script is written Virtually unlimited iterations of test case execution can be done on short time.
Following are other advantages of test Automation:
– Â Rapid feedback to developers
– Disciplined documentation of test cases
– Customized defect reporting
– Finding defects missed by manual testing
– Support for Agile and extreme development methodologies
– Upgradation and Reusability
Testing software is reusable. Not only that, but with every new test and every new bug discovery, the testing software directory can be upgraded and kept up-to-date. Thus, even though one of the main criticisms against test automation is the expense, one has to realize that automation software is a long lasting, reusable product which can justify its cost.
-Consistency
Test automation provides a consistent platform for your testing needs. The tests for which automation is usually deployed are extremely tedious. Automation drastically reduces the margin of error in the testing scenario by going through pre-recorded instructions. Regression tests verify whether the pre-existing functionalities are suited for new versions, which is critical when new development in the existing software takes place. This novel consistency provides a much needed reliability for your testing protocols.
Some of most popular Automated testing tools
Selenium Webdriver (Automates web applications) (It is an open source)
Telerik TestStudio (Complete test automation solution for a wide range of technologies.
Test desktop, web and mobile applications.) (Not an open source)
QTP (QuickTest professional)(For testing GUIs, APIs and multi layer applications) (Not an open source)
TestComplete (Used for testing windows, web or rich client software)
Watir (Open-source (BSD) family of Ruby libraries for automating web browsers. )
Selenium Webdriver in Java
WebDriver is a tool for automating web application testing, and in particular to verify that they work as expected. It aims to provide a friendly API that’s easy to explore and understand, easier to use than the SeleniumWebDriver is a tool for automating web application testing, and in particular to verify that they work as expected. It aims to provide a friendly API that’s easy to explore and understand, which will help to make tests easier to read and maintain.
Advantages of selenium:
- Supports cross browsers and supports many languages
- Most widely-used open source solution.
- Allows many options for locating UI elements and comparing expected test results against actual application behavior.
- Supports JavaScript alerts
Besides it provides followings advantages:
- Find out broken links on website using selenium webdriver and HTTP Client
- Find Broken / Invalid Images on a Page
- Handling Authentication Window with WebDriver (In Firefox, Chrome and IE)
- Extract PDF text And Verify Text Present in PDF using WebDriver
- Element is not clickable at point SeleniumWebdriverException
- How to verify entries in Exported CSV file
- Validate Downloaded file after clicking on downloaded button/ link
- Resizing a web element using movebyoffset
- Resizing a web element using movebyoffset
- Get Css values using Webdriver
- Get Attribute values using Webdriver
- Working with Ajax controls using Webdriver
- Working with Date Picker Calendar
- Working with AutoComplete Text box
- Right Click Context Menu example
- Double Click on element using Webdriver
- Simple Page Object Model example
- WebDriver Waits Examples
- Drag and Drop using Webdriver Action Class
- Click element using JavaScriptExecutor
- Working with Multiple Checkboxes with Safecheck
- Mouse hover using javaScript Executor
- Introduction to Page Object Model Framework
- Perform operations on new window
- Download file using selenium webdriver
- File upload using Autoit
- Working with Checkbox using Resuable Methods
- Working with Select examplesTesting in multiple browsers using selenium and testng
- Scrolling web page with Selenium Webdriver using java
- Read data from Properties file using Java Selenium
- Uploading a file with sendKeys method
- Uploading a file with Selenium Webdriver
- Test Configuration File / Executable File
- Test Data in automation framework
- Reporting Structure in Selenium Automation Framework
- Handling keyboard events and mouse hover events using WebdriverWebdriver Select with Multiple Attribute
- Webdriver SELECT Methods to work with Dropdowns
- Taking Screenshot using Webdriver
- Working with Frames in Selenium Webdriver
- Page navigation
- Drag-and-drop
- AJAX-based UI elements.
- Support for iPhone and Android testing
Project Detail
- Platform:Â Selenium Webdriver
- POC Project:Â SaaSSia
- SVN: svn://10.0.1.4/javra/psg/int/testAutomation
- Test Server: 10.0.1.228
Try a Demo
For viewing Demo ‘SMOKE Test’ of project SaaSSia follow following steps:
Step 1: Go to remote desktop 10.0.1.228 through remote desktop connection
Step 2: Open Eclipse from D:\eclipse\eclipse.exe
Choose workspace: D:\testautomation
Step 3: On Left panel, From ‘Package Explorer’ Expand saasia>src>com.saassia.tests>Smoketest.java
Step 4: Right click on Smoketest.java and Select Run as> TestNG test
Now smoke test of SaaSSia starts automatically.
Browsers automatically opens and starts SMOKE testing of SaaSSia project automatically.
Wait until process is completed.
Step 5:Â From menu bar Click, File > Refresh
Step 6: On Left panel, Expand test-output. Double click emalable-report.html and view test report
Since this topic is about test automation for applications, does this include mobile applications. Telerik TestStudio seems to do that but I am not sure whether it also provide test result for wide range of mobile device (both android and iOS). Even I was in research for test automation specially for mobile application. And I found Calabash (automate test – open source) with Xamarin test cloud produces great result( Paid option – free trail for 1 months). Have not gone through in detail, hope you will find research time for this.
Selenium Webdriver itself does not cover test automation for Mobile applications. Specifically, I am using “Appium” for Mobile App Automation. Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS and Android platforms and it communicates with Selenium Webdriver.
Does Appium support Windows App? Or do you know tool that support Windows App?