Automation Implementation in QA Project
Project Name:
Automation Tool: QTP 9.0
Framework Used: Hybrid Framework (Data Driven + Flow Driven)
Need of Automation
  • Speed
  • Coverage
  • Consistency
  • Rigorous Functional Testing
Framework Implementation
  • Support libraries – General purpose routines and utilities that allow the framework to perform it is supposed to do. These libraries are the combination of modules, procedures and/or functions for the procedures and/or functions for the application that can be used for removing redundancy and ease of maintenance. These generic and reusable functions we have placed in a separate library so that these could also be used later on in other projects without doing any modification
  • Functions – Various flows for different-2 products and scenarios have been divided in VBScript functions. Common functions such as string handling, date conversions and numeric conversions can be scripted upfront and be part of the above libraries in order to reduce redundancy
  • Exception handling – For handling exceptions we have created different – 2 functions and a log file that contains all the error messages and error numbers. When ever an exception occurs our framework takes a snapshot for that error and moves this snap shot in log file
  • Programming Approach – For our frame work we have used descriptive programming. So in this phase we have analyzed which approach of DP we have to use the first one that is property name:= value or second one that is Description.Create
  •  Data tables – These data tables we have used to supply data from outside. These are excel and .txt file from which we are supplying data
  • Nomenclature of scripts – Came up with a standard name for the scripts and modules, mapping each function/ library / object identified above with a name that is logical
  • Coding Standards – What is the de facto coding standard? These activities help us to define the name of the variables and other standards. If the project is being implemented using a programming language already in use, then we can use the standards already in place
  • Strategy for configuration Management – This activity answers the following queries:
             
§         How would the versioning be done? The scripts will conform to the version of software they were developed for. In case there are changes to the software a new version would have to be created
§         Deciding on the application to be used for configuration management
§         Deciding the labels and the versioning strategy for multiple releases / applications
  • Scope Document for QTP This activity aims to list out the limitations of QTP encountered during the   Framework design and analysis phase. This would be an ongoing activity throughout the project.      Identifying the same at this stage helped us get a head start in resolving issues with Mercury and   decide what is and is not “Automatable” within QTP and what needs special handling
  • Checklist for Automation – The checklist that needs to be followed for each script
§         Are the naming/coding standards followed?
§         Are there interfaces present and have they been identified appropriately?
§         Are there comments that would enable re use / maintenance appropriately?
  • Environmental Needs – There must be a stable and restricted environment identified only for automation with strict code control. The database used for Automation scripts will have to same as database for QA Environment
Benefits achieved out of Automation
  • Speed
  • Coverage
  • Consistency
Challenges faced
In this application flow is something like - Front Office user will book a product/trade and Front Office user can only perform Front Office related operations while Middle Office user will authorize or reject or delete this trade and application uses users NT ID and Password as credentials. If one has booked a product or trade using Front Office user, then he or she cannot perform middle office operation on same trade/product. So for this, earlier we were doing RDC, then we have used a free tool (PSExec) for connecting two machines. Now the problem was if we were doing this then QTP was not recognizing object and most of the objects in QTP was taking in the form of WinObject.

0 comments