There is one thing, which bothers me in all standard QTP/Winrunner
frameworks. All of them somehow doesn't follow standard frameworks used in
programming.
There are different terminology, technique  and standards.

for example googling: "Keyword driven programming" gives links to QTP forums
(I expected links to Lisp, but I found it only, when removed 'driven')

'data/table-driven programming' gives some interesting links:
http://en.wikipedia.org/wiki/Data-driven_programming

> *Data-driven programming has been argued to lead to bad object-oriented
>> design <http://en.wikipedia.org/wiki/Object-oriented_design>, with 
>> responsibility-driven
>> design <http://en.wikipedia.org/wiki/Responsibility-driven_design>promoted 
>> as a better approach.
>> *
>>
> http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=31
http://www.toofishes.net/blog/applying-data-driven-programming/

but looks like that not a mainstream.

Also the standard *-driven QTP Excels looks like:

object, action, parameter
'home page' navigate 'http:www.google.com'
input['q'] fill 'framefork qtp'
'Search' click btnLeft

And here we see data separated from code, but there is no functional
decomposition (not talking about encapsulation, responsibility, etc)

comapare:

function search(engine, search_string){
    returns staus;
}

or
Function search(site, str)
   select site:
                  case 'google':
oPage.navigate(href)
oPage.edit(name).set(str)
oPage.button(name).click()
....
   search = status
End Function

Roman

On Fri, Aug 12, 2011 at 4:23 AM, Mohan Gowda <[email protected]>wrote:

> thanks for patience and time.........
>
>
>
> On Mon, Aug 8, 2011 at 11:32 AM, Thanigai kumaran <[email protected]>wrote:
>
>> Instead of providing a bookish definition of a framework, lets consider an
>> example.
>>
>> I am sure you have attended a seminar / lecture / conference where the
>> participants was asked to observe the following guidelines -
>>
>>
>> Participants should occupy their seat 5 minutes before start of lecture
>> Bring along a notebook and pen for note taking.
>> Read the abstract so you have an idea of what the presentation will be
>> about.
>> Mobile Phones should be set on silent
>> Use the exit gates at opposite end to the speaker should you require to
>> leave in middle of the lecture.
>> Questions will be taken at the end of the session
>>
>>
>>
>>
>>
>>
>> Do you think you can conduct a seminar WITHOUT observing these
>> guidelines????
>>
>> The answer is a big YES! Certainly you can conduct a seminar / lecture /
>> conference / demonstration without above guidelines (in fact some of us will
>> not follow them even though there are laid ... )
>>
>>
>>
>> But if the guidelines are followed it will result in beneficial outcome
>> like reduced audience distraction during lecture and increased participant
>> retention and understanding of the subject matter.
>>
>> Based on above, a Framework can be defined as a set of guidelines which
>> when followed produce beneficial results.
>>
>>
>>
>> Now what is a TEST Automation Framework ?
>>
>> A set of guidelines like coding standards , test-data handling , object
>> repository treatment etc... which when followed during automation scripting
>> produce beneficial outcomes like increase code re-usage , higher portability
>> , reduced script maintenance cost etc. Mind you these are just guidelines
>> and not rules; they are not mandatory and you can still script without
>> following the guidelines. But you will miss out on the advantages of having
>> a Framework.
>>
>>
>>
>> What are the various Automation Frameworks available?
>>
>> 1) Linear Scripting
>> 2)The Test Library Architecture Framework.
>> 3)The Data-Driven Testing Framework.
>> 4)The Keyword-Driven or Table-Driven Testing Framework.
>> 5)The Hybrid Test Automation Framework.
>>
>>
>> Lets look at them in detail -
>>
>> 1) Linear Scripting - Record & Playback
>>
>> It is the simplest of all Frameworks and also know as "Record &
>> Playback".In this Framework , Tester manually records each step ( Navigation
>> and User Inputs), Inserts Checkpoints ( Validation Steps) in the first round
>> . He then , Plays back the recorded script in the subsequent rounds.
>>
>>
>>
>> Ex : Consider logging into Flight Reservation Application and checking
>> wether the application has loaded on successful log-on. Here , the tester
>> will simply record the steps and add validation steps.
>>
>>
>> SystemUtil.Run "flight4a.exe","","","open"
>>
>> Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
>>
>> Dialog("Login").WinEdit("Password:").Set "Mercury"
>>
>> Dialog("Login").WinButton("OK").Click
>>
>> 'Check Flight Reservation Window has loaded after successful log-on
>>
>>
>> Window("Flight Reservation").Check CheckPoint("Flight Reservation")
>>
>>
>>
>> Advantages
>>
>> Fastest way to generate script
>> Automation expertise not required
>> Easiest way to learn the features of the Testing Tool
>>
>>
>> Disadvantages
>>
>> Little reuse of scripts
>> Test data is hard coded into the script
>> Maintenance Nightmare
>>
>>
>>
>>
>> 2)The Test Library Architecture Framework.
>>
>>
>>
>> It is also know as "Structured Scripting" or "Functional Decomposition".
>>
>> In this Framework , test scripts are initially recorded by “Record &
>> Playback” method. Later, common tasks inside the scripts are identified and
>> grouped into Functions. These Functions are called by main test script
>> called Driver in different ways to create test cases.
>>
>> Ex: Using the same example as above, the function for logging in to Flight
>> Reservation will look like .
>>
>>
>> Function Login()
>>
>> SystemUtil.Run "flight4a.exe","","","open"
>>
>> Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
>>
>> Dialog("Login").WinEdit("Password:").Set "Mercury"
>>
>> Dialog("Login").WinButton("OK").Click
>>
>> End Function
>>
>>
>> Now, you will call this function in the main script as follows
>>
>> 'Driver Script
>>
>>
>> Call Login()
>>
>> ---------------------------
>>
>> Other Function calls / Test Steps.
>>
>> ---------------------------
>>
>>
>>
>>
>> Advantages
>>
>> Higher level of code reuse is achieved in Structured Scripting as compared
>> to “Record & Playback”
>> The automation scripts are less costly to develop due to higher code
>> re-use
>> Easier Script Maintenance
>>
>>
>> Disadvantages
>>
>> Technical expertise is necessary to write Scripts using Test Library
>> Framework.
>> More time is needed to plan and prepare test scripts.
>> Test Data is hard coded within the scripts
>>
>>
>>
>>
>> 3)The Data-Driven Testing Framework.
>>
>> In this Framework , while Test case logic resides in Test Scripts, the
>> Test Data is separated and kept outside the Test Scripts.Test Data is read
>> from the external files (Excel Files, Text Files, CSV Files, ODBC Sources,
>> DAO Objects, ADO Objects) and are loaded into the variables inside the Test
>> Script. Variables are used both for Input values and for Verification
>> values. Test Scripts themselves are prepared either using Linear Scripting
>> or Test Library Framework.
>>
>>
>>
>> Ex: Developing the Flight Reservation Login script using this method will
>> involve two steps.
>>
>>
>>
>> Step 1) Create a Test - Data file which could be Excel , CSV , or any
>> other database source.
>>
>>
>>
>> AgentName
>> Password
>>
>> Jimmy
>> Mercury
>>
>> Tina
>> MERCURY
>>
>> Bill
>> MerCURY
>>
>>
>>
>>
>> Step 2) Develop Test Script and make references to your Test- Data source.
>>
>>
>>
>> SystemUtil.Run "flight4a.exe","","","open"
>>
>> Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName",
>> dtGlobalSheet)
>>
>> Dialog("Login").WinEdit("Password:").Set DataTable("Password",
>> dtGlobalSheet)
>>
>> Dialog("Login").WinButton("OK").Click
>>
>> 'Check Flight Reservation Window has loaded
>>
>> Window("Flight Reservation").Check CheckPoint("Flight Reservation")
>>
>> **Note “dtGlobalSheet” is the default excel sheet provided by QTP.
>>
>>
>>
>> Advantages
>>
>> Changes to the Test Scripts do not affect the Test Data
>> Test Cases can be executed with multiple Sets of Data
>> A Variety of Test Scenarios can be executed by just varying the Test Data
>> in the External Data File
>>
>>
>> DisAdvantages
>>
>> More time is needed to plan and prepare both Test Scripts and Test Data
>>
>>
>> 4)The Keyword-Driven or Table-Driven Testing Framework.
>>
>> The Keyword-Driven or Table-Driven framework requires the development of
>> data tables and keywords, independent of the test automation tool used to
>> execute them . Tests can be designed with or without the Application. In a
>> keyword-driven test, the functionality of the application-under-test is
>> documented in a table as well as in step-by-step instructions for each test.
>>
>> There are 3 basis components of a Keyword Driven Framework viz. Keyword ,
>> Application Map , Component Function.
>>
>>
>>
>> What is a Keyword ?
>>
>> Keyword is an Action that can be performed on a GUI Component. Ex . For
>> GUI Component Textbox some Keywords ( Action) would be InputText,
>> VerifyValue, VerifyProperty and so on.
>>
>>
>>
>> What is Application Map?
>>
>> An Application Map Provides Named References for GUI Components.
>> Application Maps are nothing but “Object Repositry’
>>
>>
>>
>> What is Component Function?
>>
>> Component Functions are those functions that actively manipulate or
>> interrogate GUI component. An example of a function would be click on web
>> button with all error handling , enter data in a Web Edit with all error
>> handling. Component functions could be application dependent or independent.
>>
>>
>>
>> Ex: To understand Keyword View lets take the same example. It invovles 2
>> steps
>>
>>
>>
>> Step 1: Creating Data Table (Different from Test-Data Table created in
>> Data Driven Framework). This Data Table contains Action to be performed on
>> GUI Objects and correspoding arguments if any. Each row respresents one Test
>> Step.
>>
>>
>> Object
>>
>> (Application MAP)
>>
>> Action
>>
>> (KEYWORDS)
>>
>> Argument
>>
>> WinEdit(Agent Name)
>> Set
>> Guru99
>>
>> WinEdit(Password)
>> Set
>> Mercury
>>
>> WinButton(OK)
>> Click
>>
>> Window(Flight Reservation)
>> Verify
>> Exists
>>
>>
>>
>>
>>
>>
>> Step 2: Writing Code in the form of Component Functions.
>>
>> Once you've created your data table(s), you simply write a program or a
>> set of scripts that reads in each step, executes the step based on the
>> keyword contained the Action field, performs error checking, and logs any
>> relevant information. This program or set of scripts would look similar to
>> the pseudo code below:
>>
>>
>>
>> Function main()
>>
>> {
>>
>> Call ConnectTable(Name of the Table) { //Calling Function for connecting
>> to the table.
>>
>> while (Call TableParser() != -1) //Calling function for Parsing and
>> extracting values from the table.
>>
>> {
>>
>> Pass values to appropriate COMPONENT functions. Like Set(Object Name ,
>> Argument) ex. Set( Agent Name , Guru99).
>>
>> }
>>
>> }
>>
>>
>> Call CloseConnection() //Function for Closing connection after all the
>> operation has been performed.
>>
>> } //End of main
>>
>>
>>
>> Thats all to Keyword Driven Framework.
>>
>>
>>
>> The advantage of Keyword Driven Framework is that the Keywords are
>> re-usable. To understand this consider you want to verify login operation
>> for a Website say YAHOO MAIL. The table will look like this -
>>
>>
>>
>> Object
>>
>> (APPLICATION MAP)
>>
>> Action
>>
>> (KEYWORD)
>>
>> Argument
>>
>> WebEdit(UserName)
>> Set
>> [email protected] This e-mail address is being protected from spambots. You
>> need JavaScript enabled to view it
>>
>> WebEdit(Password)
>> Set
>> xxxxx
>>
>> WebButton(OK)
>> Click
>>
>> Window(Yahoo Mail)
>> Verify
>> Loads
>>
>>
>>
>>
>> If you observe in this case the Keywords Set , Click , Verify remain the
>> same for which corresponding component functions are already developed. All
>> you need to do is change the Application Mapping (Object Repository) from
>> earlier Flight Reservation to Yahoo Mail , with change in argument values
>> and the same script will work!
>>
>>
>>
>> Advantages
>>
>> Provides high code re-usability
>> Test Tool Independent
>> Independent of Application Under Test, same script works for AUT (with
>> some limitations)
>> Tests can be designed with or without AUT
>>
>>
>> Disadvantages
>>
>> Initial investment being pretty high, the benefits of this can only be
>> realized if the application is considerably big and the test scripts are to
>> be maintained for quite a few years.
>> High Automation expertise is required to create the Keyword Driven
>> Framework.
>>
>>
>>
>>
>> NOTE : Even though QTP advertises itself as KeyWord Driven Framework, you
>> can not achieve complete test tool and application idependence using QTP.
>>
>>
>>
>> 5)The Hybrid Test Automation Framework.
>>
>> As the name suggests this framework is the combination of one or more
>> frameworks discussed above pulling from their strengths and trying to
>> mitigate their weaknesses. This hybrid test automation framework is what
>> most frameworks evolve into over time and multiple projects. Maximum
>> industry uses Keyword Framework in combination of Function decomposition
>> method.
>>
>>
>>
>> PS: Other Frameworks worth a mention are
>>
>>
>>
>>
>> 1) Test Modularity Framework
>>
>> In this framework common task in test script are grouped together as
>> Modules.
>>
>> Ex:Using Actions in QTP use can create a Modualr Scripts
>>
>> ‘Sample Script for Login
>> SystemUtil.Run "flight4a.exe","","","open"
>>
>> Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
>>
>> Dialog("Login").WinEdit("Password:").Set "Mercury"
>>
>> Dialog("Login").WinButton("OK").Click
>>
>> ‘End of Script
>>
>>
>>
>> Now you can call this Action in the main script as follows -
>>
>> RunAction ("Login[Argument]", oneIteration)
>>
>> ==========================================
>>
>> --
>> *
>> Thanks & Regards
>> **Thanigai Kumaran*
>>
>>
>>
>>
>>
>> On Mon, Aug 8, 2011 at 10:58 AM, saravanan u <[email protected]> wrote:
>>
>>> Hai All,
>>>            Can anyone tell me "What is Framework and how to create it in
>>> qtp..
>>>
>>> Thanks
>>> Saravanan U
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> "QTP - HP Quick Test Professional - Automated Software Testing"
>>> group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/MercuryQTP?hl=en
>>
>>
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> "QTP - HP Quick Test Professional - Automated Software Testing"
>> group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/MercuryQTP?hl=en
>>
>
>
>
> --
>
> kind Regards
> Mohan
>
>  --
> You received this message because you are subscribed to the Google
> "QTP - HP Quick Test Professional - Automated Software Testing"
> group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/MercuryQTP?hl=en
>

-- 
You received this message because you are subscribed to the Google
"QTP - HP Quick Test Professional - Automated Software Testing"
group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/MercuryQTP?hl=en

Reply via email to