Monday, October 3, 2011

Business Process Testing : QTP

This topic will guide you about BPT and how to work with BPT.
BPT Methodology
1)      BPT is Business Process Testing
2)      Additional module in QC and is known as Business Component
3)      Test Scripts are associated with components.
4)      Components are easily maintained, reusable units that perform a specific task.

QTP provides two types of components:

1) Business component
Business components (also known as keyword-driven components) are fully integrated with both QuickTest and Quality Center.

2) Scripted component
Scripted components are more complex components containing programming logic.

Pre-requisite for BPT:

1) Install BPT Add-Ins.
2) Check the Allow the Mercury Products to run test and components
checkbox in Options>Run tab.

BPT Strategy / Approach
1)      Initially start with creating the scripted components from Business Component tab in QC.
2)      Pull the respective components to the Test Plan from Component Folder in QC as per manual test case.
3)      Pull the Test scripts to Test Lab for regressions.
4)      Execute and Analyze the results and log the defects if any failure occurs.

Scripted Component:
Two ways to create a component
1)  From QC> Go to Business Component tab> Click on New >Enter the component name > OK
2) From QTP> Connect to QC> New> Select Scripted Component>Enter the component name> OK.
Once after create the component in QC, we can find some tabs at right side pane in QC. Like Details, Snap shot, Design steps, Automation. We need to fill the information in these areas.
Details tab: Provides a general summary of the components purpose or
goals, and the condition of the application before and after a component is
run (its pre-conditions and post-conditions).

Snap shot tab: Displays an image that provides a visual cue or description of the components purpose or operations.

 Parameter tab: Specifies the input and output component parameter values for the business component. Implementing and using parameters enables a component to receive data from an external source and to pass data to other components in the business process test flow.
 Design Steps: Enables you to create or view the manual steps of your business component, and to automate it if required.
Automation tab: Provides access to automated component by choosing it to scripted component.


The component has 4 status:

1. Error: When Component is error for some reason like May be Test case is incorrect or May be made a mistake or May be created a wrong component, in such cases you set to Error
status and provide with meaningful comment, displayed in Red color.
2. Ready: Once the component is completed include debugging and enhancement then the component is Ready status, displayed in Green.
3. Under Development: When a new Component is to be created then the component is Under Development, displayed in Grey.
4. Maintenance: When the requirements changed then component is under Maintenance, displayed in Yellow

Parameterization:
Process to replace the constant values with variables is known as Parameterization.
There are 2 parameters:
1. Input Parameter:
With this parameter, you can input the data to the application.
This Input Parameter is also called Component Parameter
Its another one more parameter especially for BPT apart from other parameters.
We can find this as Component Parameter from the list in Keyword View
Syntax is Parameter(<name of parameter>)

2. Output Parameter:
With this parameter, you can retrieve the data from the application. Parameterization can be done in 2 ways for Input Parameters.

Application Area:
An application area, provides a single point of maintenance for all elements
associated with the testing of application. These include function libraries, shared
object repositories, keywords, testing preferences, and recovery scenarios.
From QTP>New > Application Area
Creation of Test Script
1)      From Test Plan> Click New Test> Select BPT> Enter the name of
the script> OK
The icon will be created at left side panel.
2)      Once created the script, List the all manual test cases, one which are related to this script under Details tab.

3)      From Test Plan, pull the respective components under Test Script
Arrange the components in a work flow by moving the components up and down.
4)      If the components have any parameters then displayed as link.
5)      Click on this link, Component Iteration window will pop up. It just resembles the excel, where you enter the test data or import/export from external resource.

Regression Suite:
1)      All the Test scripts are pulled to Test Lab for the regression testing.
2)      Set to run the suite from one or more systems remotely.
3)      Analyze the results.

Benefits of BPT Process
1)      Each component is by default a reusable.
2)      There is no concept of multiple actions. It means each component is single action.
3)      Business process tests are created and implemented more quickly than other automated tests.
4)      Reduces maintenance compared to traditional automation.
5)      Data-driven testing can be performed effectively.

Scripting ADODB:QTP

ADODB - Microsoft ActiveX Data Object 1. ADO is a Microsoft technology.
2. ADO stands for ActiveX Data Objects.
3. ADO is a Microsoft Active-X component
4. ADO is automatically installed with Microsoft IIS
5. ADO is a programming interface to access data in a database

ADO-ActiveX Data Objects
Microsoft® ActiveX® Data Objects (ADO) enable your client applications to access and manipulate data from a variety of sources through an OLE DB provider. Its primary benefits are ease of use, high speed, low memory overhead, and a small disk footprint. ADO supports key features for building client/server and Web-based applications.

RDS
Remote Data Service (RDS) is a feature of ADO, with which you can move data from a server to a client application or Web page, manipulate the data on the client, and return updates to the server in a single round trip.

OLEDB
OLEDB (sometimes written as OLEDB or OLE-DB) is an API designed by Microsoft for accessing different types of data stores in a uniform manner. It is a set of interfaces implemented using the Component Object Model (COM); it is otherwise unrelated to OLE. It was designed as a higher-level replacement for, and successor to, ODBC, extending its feature set to support a wider variety of non-relational databases, such as object databases and spreadsheets that do not
necessarily implement SQL. OLE DB separates the data store from the application that needs access to it through a set of abstractions, such as connections, record sets and attributes. This
was done because different applications need access to different types and sources of data and do not necessarily want to know how to access functionality with technology-specific methods. OLE DB is conceptually divided into consumers and providers. The consumers are the applications that need access to the data, and the provider is the software component that implements the interface. OLE DB is part of the Microsoft Data Access Components (MDAC) stack and is the database access interface technology. MDAC is a group of Microsoft
technologies that interact together as a framework that allows programmers a uniform and comprehensive way of developing applications for accessing almost any data store. OLE DB providers can be created to access such simple data stores as a text file or spreadsheet, through to such complex databases as Oracle, SQL Server and Sybase. However, because different data store technology can have different capabilities, OLE DB providers may not implement every possible interface available to OLEDB. The capabilities that are available are implemented through the use of COM objects - an OLE DB provider will map the data store technologies functionality to a particular COM interface. Microsoft calls the availability of an interface to be
"provider-specific" as it may not be applicable depending on the database technology involved. Additionally, however, providers may also augment the capabilities of a data store - these capabilities are known as services in Microsoft parlance.

ODBCThe Microsoft Open Database Connectivity (ODBC) interface is a C programming
language interface that makes it possible for applications to access data from a
variety of database management systems (DBMSs). The ODBC interface permits
maximum interoperability — an application can access data in diverse DBMSs
through a single interface. Furthermore, that application will be independent of any
DBMS from which it accesses data. Users of the application can add software
components called drivers, which interface between an application and a specific
DBMS.

The functions in the ODBC API are implemented by developers of DBMS-specific
drivers. Applications call the functions in these drivers to access data in a DBMSindependent
manner. A Driver Manager manages communication between
applications and drivers.

Applications that use ODBC are responsible for any cross-database functionality.
For example, ODBC is not a heterogeneous join engine, nor is it a distributed
transaction processor. However, because it is DBMS-independent, it can be used
to build such cross-database tools.

Connection.Open Method:
Syntax: object.Open (ConnectionString, UserID, Password, Options)

Connection.OpenSchema Method

Syntax: object.OpenSchema (QueryType, Criteria, SchemaID)

Example:
***************************************************************************

Option Explicit
Const adSchemaTables = &H14
Const adSchemaColumns = 4
Const adStateOpen = 1
Dim oConn, oRst, oRstSchema
Dim nRow
Dim sColumn
Set oConn = CreateObject("ADODB.Connection")
'--- Opening Database via DNS
oConn.Open "QT_Flight32"
'--- Open schema Tables
Set oRst = oConn.OpenSchema(adSchemaTables)
Do Until oRst.EOF
'--- Skip system tables
If StrComp(oRst("TABLE_TYPE").Value, "SYSTEM TABLE") <> 0 Then
sColumn = DataTable.LocalSheet.AddParameter( _
oRst("TABLE_NAME").Value, "").Name
'--- Querying Schema table columns
Set oRstSchema = oConn.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, "" & oRst("TABLE_NAME").Value))
nRow = 1
DataTable.LocalSheet.SetCurrentRow nRow
Do While Not oRstSchema.EOF
DataTable(sColumn, dtLocalSheet) = _
oRstSchema("COLUMN_NAME").Value
oRstSchema.MoveNext
nRow = nRow + 1
DataTable.LocalSheet.SetCurrentRow nRow
Loop
End If
oRst.MoveNext
Loop
'--- Close the recordset schema if opened.
If oRstSchema.State = adStateOpen Then oRstSchema.Close
'--- Close the recordset if opened.
If oRst.State = adStateOpen Then oRst.Close
'--- Close the connection if opened.
If oConn.State = adStateOpen Then oConn.Close
Set oRst = Nothing : Set oConn = Nothing : Set oRstSchema = Nothing
***************************************************************************
OutPut:


OutPut: