There are quite a number of tools in the market place, but from experience we recommend:-
HP Unified Functional Tester (UFT) for Functional Testing
HP UFT is a tool that replaces HP Quick Test Pro (QTP) and is used primarily to automate regression testing. The recognized standard is to only automate regression tests that are to be run three or more times, to handle the effort and time of development. It should be understood that there is an overhead in script creation, that is compensated for by the speed of running the tests and their accuracy.
A feature of UFT, not commonly known, is that it also has the ability to test APIs.
The link between an application and UFT is the Repository, where application objects and their properties are stored. Identification of application objects is made using the properties held in the Repository. Some times objects cannot be recognized by the Repository and there are a number of ways to overcome this.
Manual regression tests are converted into automated tests by recording against a GUI and behave just as a user would, except that human vagaries are not introduced into the process. Having recorded a script, it then needs to be enhanced, using VBScript, by adding checkpoints, adding Pass/Fail conditions and creating any further logic that may be required.
Please note that a single UFT script can contain any number of associated manual scripts and so there is not necessarily a one to one correlation.
Data driven testing can be achieved by using external databases, spreadsheets or the inbuilt datasheet.
Automating your testing allows for quicker test cycles, complete reproducability and greater accuracy.
It is best to use QTP/UFT using the Expert View to allow the greatest control. Some people recommend creating numerous functions instead of using the Expert View - unfortunately this is not a very good idea, as it just makes the process take longer to create or update and is an absolute nightmare to debug and can't use the inbuilt QTP/UFT methods to determine where an error has occured.
Selenium for Functional Testing (Open Source)
Selenium is a very good free tool for conducting Functional Testing on Web Sites or on Mobile Devices. It is not a play and record tool but can achieve similar results to HP QTP/UFT. It can be a little problematic to install and configure, but once done can be used with Eclipse to create and run automated scripts. The tool is based upon the JAVA language.
It is often used with:-
- The Webdriver client to test web sites
- Log4J API for logging
- TestNG framework for reporting
- NodeJS and Appium for Mobile Devices
- SWTBot for testing Standard Widget Toolkit (SWT)
- Apache POI for interraction with Microsoft Documents e.g. Excel, Word, Powerpoint, Databases, etc.
Selenium has the ability to automation test mobile devices attached to a PC via USB and interacts with the applications in a similar way to a human. Dragging and dropping can be conducted, pages scrolled, objects tapped, text read/input etc.
Selenium projects are licensed under the Apache 2.0 License."
HP Loadrunner for Non-Functional Performance Testing
The practicalities of conducting Performance testing and producing a Load on a system require the use of an automated tool and HP Loadrunner is probably the best one on the market. Loadrunner can emulate hundreds or thousands of users and also has the most protocols. The scripts can be bundled into scenarios for stress, volume, soak, etc. testing
Scripts are generally recorded against a GUI, enhanced using ANSI C and subsequently run against an API without a GUI, allowing multiple vusers to be generated by one server.
Scripts are enhanced to add parameterization, text checking and manipulation, timing measurements, etc.
Scripts are grouped together into Scenarios, which emulate realistic user behavior harmonics.
Agentless monitors can be arranged on the system under test to record such things as CPU usage, Memory usage, Network delay, etc.
Scenarios are run for differing lengths of time and load, depending upon the test type being run and can include Load, Stress or Soak tests.
The results are carefully analyzed and interpreted so that any bottlenecks can be found and rectified.
Clear reporting is produced.
HP Application Lifecycle Management (ALM) for Test Management/Defect Management
At its simplest, HP ALM is a tool for managing the requirements, testing effort and for managing defects.
Multiple projects can be set up.
It encompasses a Dashboard, Releases, Cycles, Libraries, Requirements, Tests and their associated Test Steps, the Test Lab from where tests are run, the Run History and Defect management.
It has the ability to handle Business Process Testing and can automatically create Requirements from an xml file output from a product such as ARIS.
However, it can do far more, for example it can dictate specific actions by role, it can hide certain fields and abilities from certain roles and it can create advanced reporting using Open Test Architecture (OTA). Templates can be used to good effect to standardize the testing process, as can the inbuilt Workflow.
There is a Test Lab component, where tests (manual, automated or performance) can be managed, allowing tests to be run on specific hosts/servers based on a calendar/time structure.
Being an HP product, it works seamlessly with both UFT for automation testing and Loadrunner for performance testing.