http://tohtml.com/asp.vb/

On Wed, Aug 17, 2011 at 5:12 AM, dvpbandaru <[email protected]> wrote:

> Nice explanation by Thanigai Kumaran. Really great................
>
>
> On Wed, Aug 17, 2011 at 8:18 AM, Roman Zilber <[email protected]> wrote:
>
>> 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
>>
>
>  --
> 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