In today’s world, software development is used widely for almost every aspect of life. Be it the software to do small things like checking emails to a more customized home grown application used to run payrolls/other important operations. Everyone is seeking speediness and excellence when it comes to softwares.
High quality softwares come with higher level of dedication and commitment. To the software development world this means fast and focused development based on user needs within less time. To ensure high quality product, testing of the application plays a major role. Different testing techniques are being used to ensure quality these days.
Two main types of testing techniques are
a. Manual Testing 1 is a type of testing where testing activity is performed by a testing person.
b. Automated testing 2 is running test cases where manual intervention is not required to run each test.
Automation testing is the new thing considered to ensure product quality these days. It’s an interesting concept where 3 different software tools are used to execute pre-scripted test on a software application before releasing it to production. These pre-scripted test cases can be run as many times as one wants with slight to no physical interference.
With 4 the progress in the software development industry it seems integral to change from manual to automation testing to increase the depth and scope of tests and to help improve software quality.
With manual testing, lengthy tests are often avoided. Those lengthy tests can be run through automated testing on multiple computers with different configurations to reduce manual labor cost and expense.
There are different types of automation tools used by different companies based on their needs and ease of use. Below is the list few most commonly used automation test tools
2) Telerik Test Studio
6) QTP (UFT)
Selenium 3 is a set of different software tools used to support test automations. It is an open source tool used for automating browser based application. There are operating system where selenium can be deployed including Windows, Linux and many OS for mobile applications like iOS, Windows Mobile and Andriod. One of the biggest advantage of selenium automation tool is that it is considered as highly portable software testing framework. Selenium is a suite of software with 4 different components
a. Selenium IDE: Is the simplest tool in selenium suite. It is a Firefox add-on that creates tests very quickly through its record-and-playback functionality. Its a prototyping tool for building test scripts. This tool also has a save feature which allows user to keep test in table based format for later import and execution. Because of its simplicity, this tool is only used for prototyping but not overall solution for developing and maintaining complex test suites.
b. Selenium RC: Selenium Remote control allows user action to be simulated in a browser like clicking UI elements. Remote Control makes it possible to write automated tests for a web application in any programming language, which allows for better integration of Selenium in existing unit test frameworks. Selenium RC server is written in Java and accepts commands for the browsers via HTTP.
c. WebDriver: The biggest change in selenium is the collection of open source of webdriver API’s. These API’s are used to automate the testing of web applications. Web Driver is designed to provide a more simpler and concise interface in addition to addressing some limitations in the selenium-RC API.
d. Selenium Grid: Selenium grid allows the user to run different test scripts on different browsers at the same time in parallel. This would help user to run test fairly quickly as the tests would be on different machines using different browsers.
2. Test Studio
Test studio is a window based software testing tool for web and desktop functional testing. It offers intuitive, codeless and productive ways to test web applications. Test studio automation tool is by Telerik. This tool is built to support functional, load, mobile and performance testing
Test Studio can help both record and playback tests from multiple browsers including IE, Chrome, Firefox and Safari. Test studio also has a feature of test reuse which means using an entire step of a test script within another test.
Test studio can help users keep unique elements only rather than modifying duplicate elements in each test. This way unique elements are kept and updated if need be, instead of modifying numerous duplicate elements in every test.
Test studio has a debugger which helps identify the failing points. Tester can directly go to the element where they can see test being failed and can debug quickly.
3. Robotium Automation Tool
Robotium automation tool is used to test native and hybrid android applications. Robotium offers different API’s to directly interact with UI controls within the android applications such as activities, Edit text, text view and buttons.
Robotium can also be used for testing applications where source code is not available. In this case, if only APK file is available, still it can be used for testing.
Another flexibility of Robotium is that the test cases are written using Robotium can be executed either on android virtual device or on a real android device. This gives flexibility to developers so that they can write functional, system and user acceptance test cases.
Robotium Tools is more like Selenium but this is specifically for android devices. It has support for different android features that include activities, toast, menus, web views, and remote controls and so on.
4. TestComplete Automation Tool
TestComplete is an automation tool developed by SmartBear. This provides the flexibility of testing three major types of application
1. Desktop applications
2. Web application executed through web browser
3. Mobile applications executed through android and IOS devices
TestComplete desktop: Allow testers to test a variety of desktop applications running within window operating systems. It even provides built-in support for testing third party controls such as Telerik, Microsoft, and Developers Express. Some key features of desktop application include Visual C++ testing, Window store app testing and so on.
TestComplete Web: Can help testers create automated tests for websites, web apps and mobile web applications. TestComplete web basically captures all the actions user performs on the web browser and adds them to the test. It can record navigation throughout the website which can include searching for products, placing orders, submitting forms. This also gives us flexibility to to insert checkpoints to verify web page structure and accessibility which can help website to be WCAG complaint. One of the Key feature of TestComplete Web is that it supports chrome, Firefox, IE and Opera
TestComplete Mobile: Can help testers automate native and hybrid mobile applications. Tester can test mobile applications on android and IOS devices
TestComplete supports different types of testing which primarily include unit testing, functional and GUI testing, regression testing and so on. TestComplete can test applications that are created in C#, C++, Delphi, Java or any other development language. With help of TestComplete tool, tests can be recorded or scripted through its built in editor.
5. Watir ( Web application Testing in Ruby)
Watir is a ruby based automation tool. It’s an open source automation tool used for automating browser-based tests of web applications. This tool allow test to be written in simple and flexible manner and are easy to read for the tester.
Watir interacts with a browser the same way user interacts with it on daily basis, for example, clicking, links, filling out form, entering data details and validating text. Basically test scripts are written in the ruby programming language and watir is a ruby library that simulates user action in the browser
Ruby give power to connect to database, can export XML files, can read data files and spreadsheet and its code is also reusable as through ruby we can create our own function and libraries. Watir natively support Internet explorer but extension also supports Firefox and Safari.
6. QuickTest Professional (QTP)
QuickTest Professional is a functional testing tool which is used to perform functional and regression testing of any application. This tool is owned by HP. This tool makes comparison with the actual and expected results and provide reporting. QTP uses the visual basic scripting for automating the application.
With QTP, tester can automate user actions and lately same actions can tested for different users, different data set on various operating system and different browsers. It also supports record and play back.
FitNesse is a test framework that allows testers, developers and customers to collaborate to create test cases on a wiki. Teams can take examples of desired software behavior and turn them into automated tests, integrated with narrative requirements documentation. FitNesse runs its own wiki web server. It’s possible to test applications written in Java, .Net, Ruby, Python, C, and PHP using FitNesse.
FitNesse comes with its own version control and test history functionality, so it can be used stand-alone. Everyone on the team can use a single FitNesse server, or each team member can import tests into their local environment, work on them, and export changes and new tests back to the main server.
FitNesse provides a framework for using other test tools, such as GUI drivers. This allows greater flexibility, while taking advantage of the ease of writing tests in the Wiki and FitNesse’s excellent result reporting capabilities. Selenium (http://seleniumhq.org/) GUI tests can be run from FitNesse test tables. A tool called Selenesse (http://github.com/marisaseal/selenesse) provides a bridge that makes this easy for both Java and .Net environments. SWAT (http://ulti-swat.wikispaces.com/) is another example of a GUI test driver that integrates well with FitNesse.
FitNesse automated acceptance tests have several advantages over many kinds of traditional black-box, GUI-based functional tests:
FitNesse tests can give us feature feedback very early in the project. In fact, the tests ought to be written first, so programmers can code to the tests.
FitNesse tests can give us feature feedback very frequently. They can be run manually or automatically by anyone with web access to the server, as frequently as required. Every week, every day, every hour in a crunch.
FitNesse tests are deterministic: they either run green or red. If they run green for a given requirement, either the requirement is done and we move on to others, or the set of tests is not yet exactly right, in which case we refine them. Either way, we are successively refining the system in an orderly way. With each new test running green, we can all see the system getting better, more valuable, and closer to what we need.
Being based on example data, FitNesse tests exercise more paths through the business logic. When you use FitNesse, you run less risk of missing important features or functional behavior.
SoapUI is an open source tool which is used for functional testing of API’s. This tool can also be used to perform regression and load testing. The main and the most popular functionality of SoapUI is to provide user the ease of functional testing.
SoapUI has different features that include ease of use for functional testing. SoapUI has drag and drop option which testers can use to create theoretical scenarios which can be used for testing without writing any scripts. After creating a project, testers can add the test suites with this application. Groovy (object oriented scripting language) can be used to integrate SoapUI with Selenium. Once integration happens, then we can call the SoapUI test case runner in Selenium
SoapUI can also give functionality to generate reports in pdf, word, excel and HTML. Core features of SoapUI include
· Web services inspection
· Web services invoking
· Web services development
· Web services simulation and mocking
· Web services functional, compliance and security testing
HP QTP is an automated functional Testing tool that helps testers to execute automated tests in order to identify any errors, defects or gaps in contrary to the expected results of the application under test. It was designed by Mercury Interactive and later on acquired by HP. It is a tool that will support any level of testing like Unit testing, Integration testing, System testing or User acceptance testing (UAT). It depends only on the client needs and the level of testing where automation is required the most.
One of the major testing scripts of QTP are used in regression testing. Regression testing is very monotonous and tend to bring back old bugs and issues. QTP scripts can be added to the regression test suite and be executed any time we need to regress the entire system, even we can schedule a daily run as per need.
QTP supports all types of windows applications like a VB application, or a Power builder or any other standard windows application. The tool can emulate key strokes or mouse movements and can identify Activex objects on the standalone applications. The tool can read the data from any database sources compliant with Microsoft standards. There are database check points available to verify the values in a table at any given point during test execution. ‘Output values’ in Quick test professional also aids in performing effective and efficient database testing. Quick test professional easily integrates with Load runner another product of HP to expand to the capabilities of the load testing tool.
Quick test professional identifies all generic web elements and the related windows controls. So, there is no question of getting struck up with a windows ‘Save as’ dialogue box like in Selenium. There are different plug-ins available to support the web applications like java, .net etc. Even if a browser is not in the list of browsers supported by QTP, we can still record and execute scripts on the browser as a standard windows application.