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
