Handout: Automation Version: ST/Handout/0907/1.0 Date: 28-09-07

Cognizant 500 Glen Pointe Center West

Teaneck, NJ 07666 Ph: 201-801-0233 www.cognizant.com

Automation

TABLE OF CONTENTS

Introduction ...... 3 About this Module ...... 3 Target Audience...... 3 Module Objectives ...... 3 Pre-requisite ...... 3

Automation- An Introduction ...... 4 Objective:...... 4 What is Automation?...... 4 Why Automation Required? ...... 4 What to automate?...... 4 When to Automate ...... 4 When NOT to Automate...... 5 Automation benefits: Overview...... 5 Various Tool Vendors ...... 8 Automation Tool Evaluation ...... 9 Various Testing Tools ...... 13 Performance Tools...... 17 Open Source Tools ...... 18 Third party vendor tools ...... 19

References ...... 24 Websites ...... 24

STUDENT NOTES: ...... 25

Page 2 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Introduction

About this Module

This module provides a detailed description about the Test automation

Target Audience

Entry Level Trainees.

Module Objectives

After completing this module, the student will be able to: ‰ Explain automation.

Pre-requisite

Should know fundamentals of Testing

Page 3 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Automation- An Introduction

Objective:

After completing this chapter, the student will be able to: ‰ Explain automation

What is Automation?

Automated testing is automating the manual testing process currently in use. Test Automation is a 'development' activity, not a 'test' activity. ‰ Test automation involves automating a manual process already in place that uses a formalized testing process. ‰ Software testing assisted with software tools that require no operator input, analysis or evaluation

Why Automation Required?

‰ Reduced testing time ‰ Consistent test procedures – ensure process repeatability and resource independence. Eliminates errors of manual testing ‰ Reduces QA cost – Upfront cost of automated testing is easily recovered over the lifetime of the product ‰ Improved testing productivity – test suites can be run earlier and more often ‰ Proof of adequate testing ‰ For doing Tedious work – test team members can focus on quality areas

What to automate?

‰ Tests that will be run many times ‰ Tests that will be run with different sets of data

When to Automate

‰ By using automated techniques, the tester has a very high degree of control over which types of tests are being performed, and how the tests will be executed. ‰ We can Automate when there are multiple releases of the application. ‰ We can automate only When the application under manual test is stable. ‰ We can automate on tests that need to be run for every build of the application. ‰ We can automate on tests that require detailed information from application internals ‰ We can automate on tests that require execution of multiple data called parameterization. ‰ When the project have enough time for regression testing

Page 4 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

When NOT to Automate

‰ Automation cannot be used for a project that has very few releases. ‰ Automation testing cannot be used in usability type of testing. ‰ It cannot be used when the functionality of the application changes frequently. ‰ Test with unknown results cannot be automated ‰ The automation of testing cannot ensure 100% error free product and moreover it is not a label for all the testing problems. ‰ When the project doesnt have enough time

Automation benefits: Overview

Today, rigorous application testing is a critical part of virtually all software development projects. As more organizations develop mission-critical systems to support their business activities, the need is greatly increased for testing methods that support business objectives. It is necessary to ensure that these systems are reliable, built according to specification, and have the ability to support business processes. Many internal and external factors are forcing organizations to ensure a high level of software quality and reliability.

In the past, most software tests were performed using manual methods. This required a large staff of test personnel to perform expensive, and time-consuming manual test procedures.

Owing to the size and complexity of today’s advanced software applications, manual testing is no longer a viable option for most testing situations.

Every organization has unique reasons for automating software quality activities, but several reasons are common across industries. ‰ Using Testing Effectively ‰ Reducing Testing Costs ‰ Replicating Testing Across Different Platforms ‰ Repeatability and Control ‰ High speed cycle; code-test-analyze-fix-test… ‰ Better testing if designed right ‰ Good coverage for Data-oriented and/or repetitive verification tasks ‰ Reduces manpower and time ‰ More coverage within the same testing time. ‰ Testing products which are very difficult to test manually. Eg Load Tests ‰ Can look inside the software for memory leaks, redundant code etc. ‰ Improves efficiency of testing ‰ Reducing Testing Costs ‰ Replicating Testing Across Different Platforms ‰ Repeatability and Control ‰ Greater Application Coverage

Page 5 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Automation Life Cycle Methodology

4. Test planning, 3.Automation Testing and Introduction Process Design and Mana 5. Execution 2. Test tool 2. Test tool Automated Acquisition Testing Life-Cycle g ement Methodology (ATLM)

6. Test program Review 1. Decision to and Assessment Automate Test

Identifying Tests Requiring Automation - The features that software life cycle process, has to care for to be a successful project are: ‰ Early detection of software problems ‰ Preparation of appropriate test facilities ‰ Early consideration of the user’s needs during software development. Most, but not all, types of tests can be automated. Certain types of tests like user comprehension tests, tests that run only once, and tests that require constant human intervention are usually not worth the investment to automate.

If the testing tool that you select, does not support your environment/application then you are in trouble and in most cases you will need to revert to manually testing the application. So, Testing tools depends on consistency of the test environment. The Tool Matrix is provided for quick and easy reference to the capabilities of the test tools.

The following are examples of criteria that can be used to identify tests that are prime candidates for automation.

Page 6 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

High Path Frequency - Automated testing can be used to verify the performance of application paths that are used with a high degree of frequency when the software is running in full production.

Examples include: Creating customer records, invoicing and other high volume activities where software failures would occur frequently.

Critical Business Processes - In many situations, software applications can literally define or control the core of a company’s business. If the application fails, the company can face extreme disruptions in critical operations. Mission-critical processes are prime candidates for automated testing.

Examples include: financial month-end closings, production planning, sales order entry and other core activities. Any application with a high-degree of risk associated with a failure is a good candidate for test automation.

Repetitive Testing - If a testing procedure can be reused many times, it is also a prime candidate for automation. For example, common outline files can be created to establish a testing session, close a testing session and apply testing values. These automated modules can be used again and again without having to rebuild the test scripts. This modular approach saves time and money when compared to creating a new end-to-end script for each and every test.

Applications with a Long Life Span - If an application is planned to be in production for a long period of time, the greater the benefits are from automation.

Selection of Automation Testing Tool Knowing the Tools language is very important for a tester to automate the test cases. Choosing an automated software testing tool is an important step, and one which often poses enterprise-wide implications. Generally a good tool should ‰ Test all out of box functions. ‰ It should have good debugging facilities. ‰ It should have a clear help file and a user manual.

There are also several key issues, which should be addressed when selecting an application testing solution, which are given below:

Test Planning and Management A robust testing tool should have the capability to manage the testing process, provide organization for testing components, and create meaningful end-user and management reports. It should also allow users to include non-automated testing procedures within automated test plans and test results.

Page 7 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

A robust tool will allow users to integrate existing test results into an automated test plan. Finally, an automated test should be able to link business requirements to test results, allowing users to evaluate application readiness based upon the application's ability to support the business requirements.

Testing Product Integration Testing tools should provide tightly integrated modules that support test component reusability. Test components built for performing functional tests should also support other types of testing including regression and load/stress testing. All products within the testing product environment should be based upon a common, easy-to-understand language. User training and experience gained in performing one testing task should be transferable to other testing tasks. Also, the architecture of the testing tool environment should be open to support interaction with other technologies such as defect or bug tracking packages.

Internet/Intranet Testing A good tool will have the ability to support testing within the scope of a web browser. The tests created for testing Internet or intranet-based applications should be portable across browsers, and should automatically adjust for different load times and performance levels.

Ease of Use Testing tools should be engineered to be usable by non-programmers and application end-users. With much of the testing responsibility shifting from the development staff to the departmental level, a testing tool that requires programming skills is unusable by most organizations. Even if programmers are responsible for testing, the testing tool itself should have a short learning curve.

GUI and Client/Server Testing A robust testing tool should support testing with a variety of user interfaces and create simple-to manage, easy-to-modify tests. Test component reusability should be a cornerstone of the product architecture.

Load and Performance Testing The selected testing solution should allow users to perform meaningful load and performance tests to accurately measure system performance. It should also provide test results in an easy-to- understand reporting format.

Various Tool Vendors

Mercury IBM (Rational Segue Interactive Incorporation) software Functional Testing Tool Winrunner (TSL) Rational Robot (SQA) Silk Test (4th QTP (Vb script) GL) Performance Testing Load Runner Rational Performance Tool Silk Performer Tool Test Management Tool Test Director Rational Management Tool Silk Radar Quality Center

Page 8 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Automation Tool Evaluation

PURPOSE Identifying an automation tool accurately, effectively and efficiently is a difficult problem for any large application, with diversified technologies and architecture. The primary purpose of this document is to effectively conduct the evaluation of automation tool that suits the project needs. The evaluation and selection is made upon comparing standard automation test tools based on various criteria taking all major factors into consideration.

The intended audience for this document is business decision-makers who want to select the automation tool for their application. This document is closely related to the accompanying Evaluation Methods document (this document describes what we will do, what criteria we will use and which tools we will use, and the methods document describes how we will do it).

With the advent or growth of technology and the need for Quality Work in IT field, Cognizant have come out with a standard way of evaluating the tools that help us out in attaining the goal “Quality”.

NEED FOR TOOL EVALUATION In the past, Test Automation Professionals have spent time learning how to evaluate automation tools for their projects, but in reality most clients make the purchasing decision for software at a level above the Test Automation Professionals (usually on the budget and tool knowledge).

So the issues become: ‰ How to become aware of the automation tools available for the project use. ‰ Decide when to use the automation tool. ‰ Evaluate the tool based on different criteria’s. ‰ Select the tool based on different technology.

After the application developed becomes stable and maintainable, need for automation is proposed. Once the need for automation is recognized, automation tool evaluation is accomplished. Due to availability of large number of automation tools in the market, it becomes difficult to identify the appropriate automation tool for the project. Hence tool evaluation is inevitable for selecting the automation tool that meets the project expectation. It requires prior experience and process to reduce the complexity of the tool selection.

TOOLS USED Based on the prior experience, popularity and support provided by vendors tools for comparison are selected.

Vendors Mercury Mercury’s turnover is in excess of $190 million with staff in excess of 1250. In the UK Mercury have at least 50% of the market in test tools. So as a tester you are more likely to find work as a skilled Winrunner/QTP developer and also as an employer more likely to find people with Winrunner/QTP skills.

Page 9 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

They have a number of complimentary tools TestDirector being the most integrated one. They have a lot of third party support and test tools are usually compared first against Mercury than the others. Mercury tends to use third party companies to supply professional services support for their tools (e.g. if you require onsite development of test suites).

IBM’s Rational Rational’s turnover is in excess of $I/2 billion with staff in excess of 3,300. For me they offer the most complete lifecycle toolset (including testing) of these vendors for the windows platform.

When it comes to Object Oriented development they are the acknowledged leaders with most of the leading OO experts working for them. Some of their products are worldwide leaders e.g. Rational Rose, Clearcase, RequistePro, etc.Their Unified Process is a very good development model with which it allows mapping of requirements to use cases, test cases and a whole set of tools to support the process.

Segue Segue has a turnover of in excess of $50 million and a staff of 400. Anyone who has used SilkTest along side any of the other test tools will agree that this is the most function rich out the box. However the learning curve (if you have no programming experience) is the steepest. It provides the most robust facilities; an object map, test recovery facilities and object-based development language. Segue’s performance test tool SilkPerformer also performs very well compared to it’s rivals e.g. LoadRunner, LoadTest, etc.

SilkTest does not have a big user base in the UK compared to the other products which is a shame because for straight automation testing it has excellent facilities for creating robust test suites/frameworks.

Compuware Of all the vendors mentioned in this document Compuware is by far the largest. It has a turnover in excess of $2 billion and staff of more than 15,000. 9,500 of these are professional services staff with skills covering all the development lifecycle. As such Compuware does not only supply the tools but will provide staff to initially develop your test suite and handover to internal staff as required. Their test tool set is second to Rational only on the windows platform (for coverage) but for complete coverage across platforms including mainframe and Unix they are the best.

Functional Test Tools Functional test tools considered are ‰ Rational Robot ‰ Winrunner ‰ QTP ‰ QARun ‰ SilkTest

Page 10 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Test Management Tools Test management tools considered are ‰ Rational Test Manager ‰ Test Director ‰ QA Director ‰ Silk Test Manager

TECHNIQUE USED To ensure that the automation tool satisfies all the functional criteria, a specific technique needs to be developed after comprehensive analysis by the automation team. ‰ The activities and features expected from the tool are listed. ‰ Technology/Environment supported by the tool is identified. ‰ Based on prior experience, the support provided by each tool for a specific feature is rated. ‰ Level of importance of the individual feature for the project is evaluated.

Level of importance weight

Critical 6 Must Have 5 Very Important 4 Important 3 Nice to have 2 Not Important 1 No need 0

‰ Based on the level of importance and the tool rating the weightage for each feature is arrived. Weightage = Level of importance * Tool rating ‰ Final weightage is calculated by taking sum of weightage of each feature. Final weightage = ∑ Weightage of individual feature ‰ Based on final weightage the tool that best suits the project is selected.

Page 11 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Tools Evaluation

Silk

Silk QA Run - Compuware Tools QA Run - Compuware QTP QTP Winrunner Winrunner Rational

Rational

480 500 520 540 560 580 600

FOCUS AREAS Automation tool selection requires identification of the major factors and prioritization of the factors. The automation tool should support most of the factors identified.

The tool evaluation process should address the following issues before selecting the suitable tool. ‰ Compatibility issues: The tool should be compatible with the operating system(s) that are supported by the application, the technology used for creating the application (Add-ins should be available to support specific technology like .Net etc.), third party tools integrated with the application for example Crystal Reports, Infragistics controls used in application created using .Net technology etc. ‰ Business requirements: Projects may have additional requirements that tool vendors must meet. For example, the extent of support the tool provides for applications related to insurance, Banking, Logistics etc. ‰ Budget constraints: How much can be afforded and how much it is worth investing in the tool should also be considered

Criteria considered for comparison – Functional Test Tool ‰ Support for various Technologies ‰ Support for various OS ‰ Support for integration with test management tools ‰ Testing Methodologies ‰ Scripting language used by the tool ‰ Support rendered by the vendor

Criteria considered for comparison – Management Test Tool ‰ Testing Methodologies ‰ Integration with test tools and other documents ‰ Metrics tracking and Defect management ‰ Test execution and reporting ‰ Support rendered by the vendor

Page 12 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

The major benefit of this document is to identify the best suited automation tool which provides the support, reusability, speed, data accuracy etc. The document will help the business leaders in decision-making process with regard to significant tool purchase and automating the application.

Refer to the “Testing Services Automation CoE – Tool.xls”

Various Testing Tools

Functional Tools

‰ Winrunner (TSL) ‰ QTP (VB script) ‰ Rational Robot (SQA) ‰ Silk Test (4th GL)

WinRunner (TSL) WinRunner records user actions and application responses to create scripts that can be used as automated tests.

WinRunner offers your organization a powerful tool for enterprise-wide functional and regression testing. The solution is a component of Mercury Interactive’s Optane™ Suite — a comprehensive set of tools for testing, deployment, and performance management that provide the only integrated solution for business technology optimization (BTO).

WinRunner captures, verifies, and replays user interactions automatically to identify defects and ensure that business processes work flawlessly upon deployment and remain reliable. With WinRunner, organizations gain several advantages, including: ‰ Reduced testing time by automating repetitive tasks. ‰ Optimized testing efforts by covering diverse environments with a single testing tool. ‰ Maximized return on investment by modifying and reusing test scripts as the application evolves.

How WinRunner Works? WinRunner’s intuitive recording process allows users — even those with limited technical backgrounds — to produce robust tests. To create a test, WinRunner simply records a typical business process by emulating user actions, such as ordering an item or opening a vendor account. During recording, you can directly edit generated scripts to meet the most complex test requirements. Next, testers can add checkpoints, which compare expected and actual outcomes from the test run. WinRunner offers a variety of checkpoints, including test, GUI, bitmap, and Web links. WinRunner can also verify database values to ensure transaction accuracy and database integrity, highlighting records that have been updated, modified, deleted, and inserted. With a few mouse clicks, WinRunner’s Data Driver Wizard lets you convert a recorded business process into a data-driven test that reflects the unique, real-life actions of multiple users. For further test enhancement, the Function Generator presents a quick and reliable way to program tests, while the Virtual Object Wizard enables you to teach WinRunner to recognize, record, and replay any unknown or custom object.

Page 13 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

As WinRunner executes tests, it operates the application automatically, as though a real user were performing each step in the business process. If test execution takes place after hours or in the absence of a QA engineer, WinRunner’s Recovery Manger and Exception Handling mechanism automatically troubleshoot unexpected events, errors, and application crashes to ensure smooth test completion. Once tests are run, WinRunner’s interactive reporting tools help your team interpret results by providing detailed, easy-to-read reports that list errors and their origination. WinRunner enables your organization to build reusable tests to use throughout an application’s lifecycle. Thus, if developers modify an application over time, testers do not need to modify multiple tests. Instead, they can apply changes to the GUI Map, a central repository of test-related information, and WinRunner will automatically propagate changes to all relevant scripts.

Supported Environments: WinRunner supports many environments, including the following. For more information on WinRunner and a complete list of supported environments, please visit http://www.mercuryinteractive.com/products/winrunner.

Browsers ‰ Internet Explorer ‰ Netscape ‰ AOL ERP/CRM ‰ Oracle ‰ PeopleSoft ‰ Siebel ‰ Baan Platforms ‰ Windows 98 ‰ Windows NT ‰ Windows Me ‰ Windows 2000 ‰ Windows XP Programming Languages ‰ PowerBuilder ‰ ‰ ActiveX ‰ Oracle Developer ‰ C/C++ ‰ Java, JavaScript, ‰ JDK ‰ Delphi ‰ Centura

Page 14 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

QTP (VB script) Mercury QuickTest Professional is an advanced automated testing solution for building functional and regression test suites. It captures, verifies, and replays user interactions automatically.

Mercury QuickTest Professional provides the industry’s best solution for functional and regression test automation for every major software application and environment. QuickTest Professional is a next-generation automated testing solution that deploys the concept of Keyword-Driven testing to radically simplify test creation and maintenance. Unique to QuickTest’s Keyword Driven approach, test automation experts have full access to the underlying test and object properties, via an integrated scripting and debugging environment that is round-trip synchronized with the Keyword View.

QuickTest Professional satisfies the needs of both technical and non-technical users, enabling companies to deploy higher-quality applications faster, cheaper, and with less risk. It works hand- in-hand with new test automation system, Mercury Business Process Testing, to bring non- technical subject-matter experts into the quality process in a meaningful way that results in better alignment of IT and the business — and ultimately superior applications. With this product, QA organizations can achieve a number of advantages: ‰ Empower the entire team to create sophisticated test suites with minimal training. ‰ Ensure correct functionality across all environments, data sets, and business processes. ‰ Fully document and replicate defects for developers, enabling them to fix defects faster and meet production deadlines. ‰ Easily regression-test ever-changing applications and environments. ‰ Become a key player in enabling the organization to deliver quality products and services, and improve revenues and profitability.

QTP Record/Play Back There are 3 types of recording:

QuickTest’s normal recording mode records the objects in your application and the operations performed on them. This mode is the default and takes full advantage of QuickTest’s test object model, recognizing the objects in your application regardless of their location on the screen.

Analog Recording - enables you to record the exact mouse and keyboard operations you perform in relation to either the screen or the application window. In this recording mode, QuickTest records and tracks every movement of the mouse as you drag the mouse around a screen or window. This mode is useful for recording operations that cannot be recorded at the level of an object, for example, recording a signature produced by dragging the mouse. Note: You cannot edit analog recording steps from within QuickTest.

Low-Level Recording - enables you to record on any object in your application, whether or not QuickTest recognizes the specific object or the specific operation. This mode records at the object level and records all run-time objects as Window or WinObject test objects. Use low-level recording for recording tests in an environment or on an object not recognized by QuickTest. You can also use low-level recording if the exact coordinates of the object are important for your test. Note: Steps recorded using low-level mode may not run correctly on all objects. Run Options

Page 15 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

There are 3 possibilities to run the number of rows. They are: ‰ Run one iteration ‰ Run all the rows ‰ Run a range of rows Debugging The 3 debugging options in the Debug Menu in QTP are: ‰ Step Into ‰ Step Out ‰ Step Over Parametrization The different types of parameter used in QTP are The input parameter,The output parameter and Random number Taking about options, the following are the options used to do Parameterization in QTP: Datatable,Environment variables and Random numbers

SilkTest SilkTest® is the industry’s leading functional testing product for enterprise applications, whether Web, Java or traditional client/server-based. SilkTest is an easy-to-use test and automation environment that offers many features that enable users to be highly productive in their software test automation efforts. These features include workflow elements for test creation and customization, test planning and management, direct database access and validation, the flexible and robust 4Test® scripting language, a built-in recovery system for unattended testing, and the ability to test across multiple platforms, browsers and technologies with one set of scripts.

SilkTest can help mitigate the challenges of a successful automation effort, such as lack of time, budget and resources. Successful automation consists of a manageable development effort, the ability to run the automation whenever and wherever it’s needed, and quick and accurate results analysis. And SilkTest enables all three of these elements.

Rapid reusable test and automation infrastructure development – With today’s shortened product release cycles, creating enough tests to thoroughly verify your application’s reliability can be a daunting task. SilkTest offers many capabilities to promote rapid test development such as the Basic Workflow for recording tests, the Data Driven Workflow for customizing tests to use application data for improved test reusability, and AutoComplete for improved productivity of script creation and automation infrastructure development.

Test and automation execution – SilkTest offers unique features for running tests such as an out-of-the-box, yet extensible Recovery System, a separate Agent process for accurate user simulation and a cost effective means for distributing test execution across multiple platforms running in parallel. The Recovery System allows tests to be run unattended; should unexpected errors such as application crashes occur, the errors are logged and the application is restored to its original base state so that subsequent tests can run and produce valid results. SilkTest’s Agent technology provides user simulation capabilities, driving the application exactly how an end-user would, resulting in complete and thorough testing of the user experience. Since the Agent is a separate and light weight process, it can be deployed to multiple boxes and controlled by the main SilkTest component, easily enabling the distribution and synchronization of tests across multiple platforms to shorten automation execution cycles. The 4Test scripting language and other

Page 16 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation architectural capabilities, such as the GUI abstraction layer, enable highly portable tests to facilitate test execution across mixed operating systems and browsers.

Ease of test and automation maintenance –To help you cope with changes to the application being tested, SilkTest gives you a powerful, highly customizable and low maintenance GUI abstraction layer that maps the graphical elements of the Application Under Test (AUT) to their automatically constructed counterpart objects in SilkTest. When the AUT’s GUI has been sufficiently modified to require updating the abstraction layer, Project Workspaces help you quickly navigate through the layer to find the sole map location to update. Many times, all that is required is modifying the abstraction layer; tests that reference objects defined in the layer can continue to run unmodified. Project Workspaces also lessen the effort required to update tests or automation infrastructure when application logic changes occur. SilkTest’s scripting language, 4Test, is an object-based language, thereby providing built-in ease-of-maintenance features offering you the advantage for a single point of change when test or automation infrastructure modifications need to be made.

Performance Tools

‰ Load Runner ‰ Rational Performance ‰ Silk Performer

LoadRunner Overview LoadRunner is a tool, or more accurately a collection of tools, which facilitates in performing load testing on a system. LoadRunner is used to create a load or stress on a system, and can be used to measure the responsiveness of the system to that load. The key concept behind LoadRunner is the use of virtual users, or vusers.

Virtual Users To perform a load test, a system needs many users to access the system concurrently, often one hundred or more. Performing such a test with people is a logistical nightmare. When considering that the test cycle is generally iterative, this problem is compounded. LoadRunner overcomes this problem through the use of vusers. A vuser performs the actions that a real user would perform, except that a vuser is controlled by LoadRunner, and the actions are performed automatically.

Vusers are created to perform specific transactions in the system. Once created a vuser can be replicated as many times as required, thus producing an effective load as large as is required. With the exception of GUI vusers, virtual users don’t use the client to perform their actions; they take the place of the client. This allows in many vusers to be run on one workstation, as the overhead associated with the client is not required. This does mean, however, that non-GUI vusers do not test the performance associated with the client side of a system, only the network and server associated performance.

Vusers can be of four main types. ‰ DB Virtual Users ‰ Web Virtual Users ‰ RTE Virtual Users ‰ SAP Virtual Users

Page 17 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

GUI Virtual Users Unlike the previous types of vusers, GUI virtual users actually perform actions using the client. This means that fewer GUI vusers can be run per workstation than the other types of vusers due to the overhead of the client, and is in fact limited to one GUI vuser per PC workstation.

GUI vusers are used not so much to generate load on a system, but to test end-to-end performance associated with various business processes. Although LoadRunner can control GUI vusers, it is unable to create them. For this purpose, WinRunner is required.

Open Source Tools

‰ Junit ‰ Nunit

JUnit is a framework for implementing testing in Java. It provides a simple way to explicitly test specific areas of a Java program; it is extensible and can be employed to test a hierarchy of program code either singularly or as multiple units.

Why use a testing framework? Using a testing framework is beneficial because it forces you to explicitly declare the expected results of specific program execution routes. When debugging it is possible to write a test which expresses the result you are trying to achieve and then debug until the test comes out positive. By having a set of tests that test all the core components of the project it is possible to modify specific areas of the project and immediately see the effect the modifications have on the other areas by the results of the test, hence, side-effects can be quickly realized.

JUnit promotes the idea of first testing then coding, in that it is possible to setup test data for a unit, which defines what the expected output is and then code until the tests pass. It is believed by some that this practice of "test a little, code a little, test a little, code a little..." increases programmer productivity and stability of program code whilst reducing programmer stress and the time spent debugging. It also integrates with Ant http://jakarta.apache.org/ant/.

Nunit What Is NUnit? NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current release, version 2.2, is the fourth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages. NUnit has two different ways to run your tests. The console runner, nunit-console.exe, is the fastest to launch, but is not interactive. The gui runner, nunit-gui.exe, is a Windows Forms application that allows you to work selectively with your tests and provides graphical feedback.

Features Console Runner The nunit-console.exe program is a text-based runner and can be used when you want to run all your tests and don’t need a red/yellow/green indication of success or failure. It is useful for automation of tests and integration into other systems. It automatically saves its results in XML format, allowing you to produce reports or otherwise process the results.

Page 18 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Gui Runner The nunit-gui.exe program is a graphical runner. It shows the tests in an explorer-like browser window and provides a visual indication of the success or failure of the tests. It allows you to selectively run single tests or suites and reloads automatically as you modify and re-compile your code.

Third party vendor tools

Area_of_usage Tool Name Vendor Functionality Debugging Abendaid Analysing Abends ETL Tool ABINITIO Leccotech ETL mappings Code Merge Accelerator Open Source File merge Others Active PDF Acttive PDF PDF generation Build Mgt,Open source build Build ANT Apache management tool and customer Management insisted Code Profiling ANTS Profiler Red Gate Optimizes the pdf files for faster Others ApSaveAs Appligent viewing on web Code Merge BeyondCompare Open Source File merge Defect tracking Bugzilla Job Scheduler CA7 Computer Associates Job Scheduling Static Analysis CANTATA ++ IPL C++ class testing Unit Testing CANTATA ++ IPL C++ class testing Quality Support Changeman Computer Associates Configuration Config Mgmt Changeman Computer Associates Configuration Open source tool for checking Code review CHECKSTYLE Open Source java coding conventions upon zeus source code Verison control of Code source Configuration .Multisite Configuration mgt is CLEARCASE Rational Management possible, Configuration Management Tracking defects and tying to Defect tracking CLEARQUEST Rational clearcase Code coverage CLOVER Cortex Measurement of code coverage Static Analysis CODEWIZARD Parasoft C++ Code review File transfer COREFTP coreFTP Remote connectivity Configuration Version control for Source CVS Apache,Open Source Management Code,Configuration Debugging Dev partner Studio Compuware Component profiling Development IBM IDE Environment

Page 19 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Area_of_usage Tool Name Vendor Functionality Editor EDITPLUS ES-Computing Source code editor Analysis & CA,AllFusion,Platinum Database Design,Data Design - Visual ERWIN Tech Modelling Modeling CA,AllFusion,Platinum Database Design,Data Data Modeling ERWIN Tech Modelling Debugging Expeditor Debugging 1. Good editor for Oracle Coding 2. Traps syntax errors in editor Editor FORMATTER PLUS Quest 3. Suggest bad practices and optimizations that could be done on the code File transfer FTP-SURFER FTP Client Interface to run SQLs,SQL tool Database Access for Oracle, which allows to GOLDEN32 Benthic tool create, edit and execute SQL statements and scripts Remote IBM PCOM Terminal Connectivity connectivity Application IIS Microsoft Server Deployment Tool InstallShield Installshield s/w corp Development INTELLIJ JetBrains IDE Environment Custom tool, can be Issue tracking ITS Open Source customized based on the requirement Custom tool, can be Change Request ITS Open Source customized based on the Tracking requirement Sun's in built utility for finding Code coverage JCOV Open Source coverage. Code Profiling JPROBE Quest Software Profiling and white-box testing Code Review,Java static & Code review JTEST ParaSoft dynamic analysis Code Review,Java static & Static Analysis JTEST ParaSoft dynamic analysis Code Review,Java static & Dynamic Analysis JTEST ParaSoft dynamic analysis

Page 20 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Area_of_usage Tool Name Vendor Functionality Unit testing automation,sub Testing system testing,regression JUNIT Open Source framework testing,Test Management,Java, VB and .NET code Testing DB Tuning LECCOTECH Leccotech DB2 Query Tuning features Load testing Loadrunner Messaging interface, allows filtering transformation as well Messaging MQSI IBM as a pub-sub approach to messaging Project Planning MS PROJECT Microsoft Planning and Tracking and Tracking Analysis & Desgin,Industry Standard tool Design - Visual MS VISIO Microsoft for drawing flowcharts, state Modeling chart diagrams Documentation MS Word Microsoft Documentation Database MS-SQL Server Microsoft Database-side coding Data Reconciliation of data between nBalance OptInfo Reconciliation source and subscriber systems Code counting and assessing Code counting NCSS Open Source cycomatic complexity Testing Regression Testing,.NET Code Nunit Open Source framework Testing Code Profiling OPTIMIZEIT Borland JAVA Optimization Database Management,Project Database ORACLE 8I Oracle Deployment platform ETL / Report Database Management,Project ORACLE 8I Oracle Development Deployment platform Enterprise Project Deployment platform Application ORBIX IONA (J2EE to CORBA connectivity) Integration PdfEncryptor utility is used to encrypt PDF Files which are PdfEncryptor/FileOpen Others FileOpen decrypt using the file open Plugin plugin to the adobe acrobat reader Interface to run SQLs, compile Database Access PL/SQL Developer Allround Automations PL/SQL procedures, browse tool data dictionary Database Platinum Platinum Tech DB2 Interactive Administration Remote PUTTY Remote connectivity connectivity Defect tracking PVCS TRACKER Merant Defect Tracking Tool

Page 21 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Area_of_usage Tool Name Vendor Functionality Analysis & Design - Visual Rational ROSE Rational Design Modeling Documentation Rational SODA Rational Design Documentation Code coverage CANTATA ++ IPL C++ class testing Static Analysis CANTATA ++ IPL C++ class testing Testing Rational Test Suite Rational Testing Analysis & Design - Visual Rational XDE IBM/Rational Desgin Modeling Remote Remote Desktop Microsoft VPN connectivity connectivity Connectivity ETL / Report ReportNet Cognos Reporting Development Requirement Requisite Pro Rational Requirement Management Management M Squared Code Profiling RSM Code Review Technologies Can publish the documents which can be accessed by both Document SHARE POINT Microsoft onsite and offshore. Can Management version control the documents, provide access rights. Load and performance SILK PERFORMER Segue Silk Load & performance testing testing Functional testing SILK TEST Segue Silk Automated functional test Both the tools are industry standard profiling tool and Coding SMALL WORLDS Quest Software, IBM Small world helps in Static Analysis of the code Application Compuware Performance Strobe Performance Monitoring Corporation Analysis Data Transfer data (allows filtering SYBASE REPLICATION synchronization Sybase and transformations) between SERVER and transfer heterogenous databases Remote Terminal Services Client Microsoft VPN connectivity connectivity Defect Tracking,Test Defect Tracking TEST DIRECTOR Mercury Management Test Defect Tracking,Test TEST DIRECTOR Mercury Management Management

Page 22 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

Area_of_usage Tool Name Vendor Functionality Rational Product for Testing Testing TEST MANAGER Rational User Interface Helios Software Editor TEXT PAD Source code editor solutions Interface to run SQLs, compile Database Access PL/SQL procedures, browse TOAD Quest Software tool data dictionary,Database Management Analysis & Design - Visual TOGETHER SOFT Borland Database Design Modeling Application Tomcat Apache Server Database UDB DB2 IBM Testing VBUnit vbunit.com VB Code Testing framework Testing Viasoft Viasoft Testing Project Deployment Enterprise platform,ORB for developing, Application VISIBROKER Borland deploying, and managing Integration distributed enterprise applications Development Visual Studio Microsoft Coding for .NET and C++ Environment Configuration VSS Microsoft Configuration Management Load testing Web Load RADVIEW Web application test Websphere Studio Development Application Developer JPMC Development Environment. Environment 5.0 WinRunner is an integrated, Functional testing WINRUNNER Mercury functional testing product File transfer WS_FTP IpSwitch Inc Remote connectivity Development X-Manager XML Browser Environment Development XML SPY XML and XSL Editing Environment Testing XPEDITOR IBM Testing Development Xselerator Marrowsoft Development of XSL Environment Code coverage JPROBE Quest Software Profiling and white-box testing

Page 23 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

References

Websites

‰ http://www.exforsys.com/forum/software-testing/97699-qtp-material.html ‰ http://72.14.235.104/search?q=cache:z33jrUcFseYJ:www.autotester.com/content/pdfs /BPG-pdf.PDF+automation+testing+guide&hl=en&ct=clnk&cd=1&gl=in ‰ http://www.spc.ca/products/Segue%20Products/silktest.pdf ‰ http://www.qualtech-int.com.au/filedb/uploads/LRUG.pdf

Page 24 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected Automation

STUDENT NOTES:

Page 25 ©Copyright 2007, Cognizant Technology Solutions, All Rights Reserved C3: Protected