48
Keyword Driven Testing Using WRSAFS By John Crunk

Keyword Driven Testing

Embed Size (px)

DESCRIPTION

This document is very useful for testing guys

Citation preview

Page 1: Keyword Driven Testing

Keyword Driven TestingUsing WRSAFS

By

John Crunk

Page 2: Keyword Driven Testing

Agenda

• Some information about testing in general• Install Winrunner• Install Engine• Learn how to write scripts• Break• Write some scripts• Solve Problems and discover solutions• Questions

Page 3: Keyword Driven Testing

Keyword Driven Testing

• Action Word Testing• Data-Driven Testing• Keyword Driven

Testing

• It’s all the same thing, a specific set of actions happen for a given word.

Page 4: Keyword Driven Testing

Why use Keyword Testing

• Reusability!!!

• Common components handled by standard libraries

• The details of the scripts are hidden from the user.

• Users don’t have to learn the script language to write scripts.

Page 5: Keyword Driven Testing

Reusability

• Standard components are handled the same

• Common screens are handled with the same test tables.

• Test tables can be used in many different applications instead of creating one for each application.

Page 6: Keyword Driven Testing

What can I test with a Framework?

• Web based applications

• Java based applications

• Windows based applications

• C/C++/C# Applications

• VB Applications

• .NET Applications

• COM (with enhancements)

• Oracle (with enhancements)

• Delphi (with enhancements)

Page 7: Keyword Driven Testing

Looking… Beyond “The Project”

• Is your automated test effort really unique?• Do you really think your problems are novel?• Do you really want to do this all over again?

Generally, a finite set of common components make up our infinite set of unique applications.

We are all trying to solve the same problems!Carl Nagle SAS

Page 8: Keyword Driven Testing

I don’t have time to learn something new!!!

• There is to much to do• Time lines are fast

approaching• I can’t add to my

already cramped workload.

• Aren’t you telling me I am going to have to do more?

Page 9: Keyword Driven Testing

Advantages of a Framework

• Using a framework will actually give you more time.

• Shared test among projects that don’t seem to have anything to do with each other.

• Mundane task no longer need be manual.

• Computers don’t forget to do something once they are told once.

• Boring task are automated.• You look like a hero for

finishing on time!!!

Page 10: Keyword Driven Testing

How WRAFS Interfaces with your application

Page 11: Keyword Driven Testing

Installing WRAFS

1. Backup any prior installs and uninstall

2. Install Java Virtual Machine (JVM) from http://java.sun.com/j2se/

3. Run the WRSAFS Install

4. Install SAFS by running Setup.vbs

5. Scripts are installed to C:\WRSAFS

6. Test Tables are installed to C:\Datapool

7. Services are installed to C:\SAFS

8. STAF is installed to C:\STAF

9. Verify c:\staf; c:\safs;c:\staf\bin are added to the path

10. Verify Classpath additions have been made for STAF and SAFS jar files

11. Verify registry entries have been made and are pointed to the correct directories

Page 12: Keyword Driven Testing

Getting down to business with WRAFS!!!

• Cycle Driver– The main script calls Suite

Drivers– .CDD extension

• Suite Driver– Intermediate scripts, calls

Step Drivers– .STD Extension

• Step Driver– This is where all your

work happens.– .SDD Extension

Page 13: Keyword Driven Testing

Some File Structure Information

• Datapool– Bench

– Cycle

– Dif

– Logs

– Step

– Suite

– Taborder

– Test

Page 14: Keyword Driven Testing

Other Settings

Page 15: Keyword Driven Testing

Other Settings Continued…

• ;Note: the section name and the Key should not be changed• [STAF]• ENABLED = TRUE• [LOGMODE]• ConsoleLOg = TRUE• SQALog = TRUE• TextLog = TRUE• STAFLog = TRUE• [SAFSLOGS]• JarFile = C:\safs\lib\safslogs.jar• Machine = local• TextLog = TRUE• XMLLog = FALSE• ;Directory = S:\test\others\datapool\log• ;LogFacility = mylog• [SAFSVARS]• JarFile = C:\safs\lib\safsvars.jar• [SAFSMAPS]• JarFile = C:\safs\lib\safsmaps.jar• [DIFFER]• TOOL_EXE=C:\Documents and Settings\jcrunk\Desktop\UnxUtils\usr\local\wbin\DIFF.EXE• TOOL_OPTIONS="/t"• TOOL_BINARY_OPTIONS="--binary -s"• [DIFFVIEWER]• TOOL_EXE=C:\ExamDiff\ExamDiff.exe• TOOL_OPTIONS=" "

Page 16: Keyword Driven Testing

What does a command look like?

• T; Login; Login; Click

• T; Login; Username; SetTextValue; “jdoe”

• T; Login; Password; SetUnverifiedTestValue, “password”

Page 17: Keyword Driven Testing

Welcome to the Application Map File

[ApplicationConstants]

FlightApp="C:\Program Files\Mercury Interactive\WinRunner\samples\vb\app\fltvb41a.exe“

[Login]

Login={class: "window", label: "Login", MSW_class: "ThunderRT6FormDC"}

Help={class: "push_button", vb_name: "cmdHelp"}

Cancel={class: "push_button", vb_name: "cmdCancel"}

OK={class: "push_button", vb_name: "cmdOK"}

AgentsName={class: "edit", vb_name: "txtAgentsName"}

Password={class: "edit", vb_name: "txtPassword"}

[InvalidPassword]

InvalidPassword={class: "window", label: "Flight Reservation Message", MSW_class: "#32770"}

OK={class: "push_button", label: "OK"}

Page 18: Keyword Driven Testing

Creating an Application Map

1. Select Tools|GUI Map Editor in Winrunner

2. Open the Application to be tested3. Click on Learn in the Map Editor4. Select the Window of the

Application5. Answer Yes to the prompt6. Navigate to the next screen to learn7. Go to Step 3 until all application has

been learned8. Save the GUI Map File9. Open and run ProcessMapFile Script10. You Application Map file is saved at

the same place as your GUI Map File with a similar name.

Page 19: Keyword Driven Testing

A little about Variables

• Component Names• Window Names• Data Values• Others?

Page 20: Keyword Driven Testing

How to use Variables

• Can be in the Map File or the Test Tables

• In the test table variables are preceded by a ^ (carot sign)

• When assigning a value, simple type ^var=“value” or ^var1=^var2

• When using a variable just type in ^variable in the place you want to use it.

Page 21: Keyword Driven Testing

Where do all these commands come from?

• Coders that have something to add write generic code for the commands

• Documentation is updated and the commands are tested for all to use.

• Documentation is located at http://safsdev.sourceforge.net/sqabasic2000/RRAFSReference.htm

Page 22: Keyword Driven Testing

Start Scripting!!!Keep It Simple Silly (KISS)

T; LaunchAppT; Flights

Cycle Driver

Flight.CDD

Page 23: Keyword Driven Testing

Start Scripting!!!Keep It Simple Silly (KISS)

T; LaunchFlight

T; login

Suite Driver

LaunchApp.STD

Page 24: Keyword Driven Testing

Start Scripting!!!Keep It Simple Silly (KISS)

T AddFlight

Suite Driver

Flights.STD

Page 25: Keyword Driven Testing

Start Scripting!!!Keep It Simple Silly (KISS)

C; SetApplicationMap; “c:\Datapool\FlightReservation.gui”

C;LaunchApplication;TestApp;^FlightApp

Step Driver

LaunchApp.SDD

Page 26: Keyword Driven Testing

Start Scripting!!!Keep It Simple Silly (KISS)

C; SetApplicationMap; “C:\Datapool\FlightReservation.gui”T;Login; AgentsName; SetTextValue; “jdoe”T; Login; Password; SetUnverifiedTextValue; “mercury”T; Login; OK; Click

Step Driver

Login.SDD

Page 27: Keyword Driven Testing

Start Scripting!!!Keep It Simple Silly (KISS)

T; FlightReservation; NewFlight; ClickT; FlightReservation; Departures; SelectTextItem; "Los Angeles“T; FlightReservation; Destinations; SelectTextItem; "Portland"T; FlightReservation; Flights; ClickT; FlightsTable; OK; ClickT; FlightReservation; CustomerName; SetTextValue; "Sue Smith"T; FlightReservation; FirstClass; ClickT; FlightReservation; TicketsOrdered; SetTextValue; "2"T; FlightReservation; InsertOrder; Click

Step Driver

AddFlight.SDD

Page 28: Keyword Driven Testing

What did we just do???

• Started the Application.

• Verified the application started.

• Set the Text Value of Agent name.

• Verified we set the Text Value of Agent Name.

• Verified the value we set to Agent name is what we sent to it.

• Set the Text Value of Password.

• Verified that we set the text value of password.

• Clicked the Ok button.

• Verified we clicked the OK button.

Page 29: Keyword Driven Testing

What Next???

• Make it reusable so we can use the same script over and over

• Make the information generic

• Parameterize names or variables so they can change values

Page 30: Keyword Driven Testing

How do I do that?

T; LaunchAppT; Login; ^UserName=“jdoe”; Password=“mercury”T; ExitAppT; LogoffT; Login; ^UserName=“ssmith”; Password=“InvalidPassword”T; VerifyInvalidPasswordT; Login; ^UserName=“bjones”; Password = “Mercury”

C; SetApplicationMap; “C:\Datapool\FlightReservation.gui”T;Login; AgentsName; SetTextValue; ^UserNameT; Login; Password; SetUnverifiedTextValue; ^PasswordT; Login; OK; Click

StartApplication.STD

Login.SDD

Page 31: Keyword Driven Testing

ExitApp.SDD

C; SetApplicationMap; “C:\Datapool\FlightReservation.gui”

T, FlightReservation, FlightReservation, SELECTMENUITEM, “File;Exit”

Page 32: Keyword Driven Testing

VerifyInvalidPassword.SDD

C; SetApplicationMap; “C:\Datapool\FlightReservation.gui”

T; InvalidPassword; InvalidPassword; VerifyProperty; Visible; 1

T; InvalidPassword; OK; Click

Page 33: Keyword Driven Testing

What is different about this one?

• We do all of the things the first script did, but this time we do a lot more!

• Added test tables for Exit and invalid user

• Verify you can login with a valid user

• Verify you can exit the application

• Verify an invalid user can gain access to the system

• Make a login test table that works for most any application that has a login. Just make sure the name is the same, in the application map files.

Page 34: Keyword Driven Testing

Let’s Do some more…

• Launch Application• "C:\Program Files\Mercury Interactive\WinRunner\samples\vb\app\fltvb41b.exe“

• "C:\Program Files\Mercury Interactive\WinRunner\samples\vb\app"

• Create Reservation• Find Reservation• Update Reservation• Delete Reservation

Page 35: Keyword Driven Testing

Your Turn!!!

http://safsdev.sourceforge.net/sqabasic2000/RRAFSReference.htm

Page 36: Keyword Driven Testing

Flight.CDD Revisted

T; LaunchAppT; Flights

Page 37: Keyword Driven Testing

LaunchApp.STD

T; LaunchFlight

T; login; ^user.name="jcrunk“; ^user.password="mercury"

Page 38: Keyword Driven Testing

Flights.STDC; SetVariableValues; ^Class="FirstClass“; ^NbrTickets="2"T; AddFlight; ^Departure="Los Angeles“; ^Destinations="Portland“; ^Customer="Sue Smith"C; SetVariableValues; ^Class="BusinessClass“; ^NbrTickets="3“T; AddFlight; ^Departure="Denver“; ^Destinations="Los Angeles“; ^Customer="John Doe"C; SetVariableValues; ^Class="EconomyClass“; ^NbrTickets="1"T; AddFlight; ^Departure="Portland“; ^Destinations="Seattle“; ^Customer="Bob Jones"T; FindFlight; ^Customer="Sue Smith"T; UpdateFlight; ^NbrTickets="1“; ^Class="BusinessClass"T; FindFlight; ^Customer="John Doe"T; UpdateFlight; ^NbrTickets="2“; ^Class="EconomyClass"T; FindFlight; ^Customer="Bob Jones"T; UpdateFlight; ^NbrTickets="3“; ^Class="FirstClass"T; FindFlight; ^Customer="Sue Smith"T; DeleteFlightT; FindFlight; ^Customer="John Doe"T; DeleteFlightT; FindFlight; ^Customer="Bob Jones"T; DeleteFlight

Page 39: Keyword Driven Testing

AddFlight.SDD

T; FlightReservation; FlightReservation; SelectMenuItem; “File; New Order”T; FlightReservation; Departures; SelectTextItem; “Denver”T; FlightReservation; Destinations; SelectTextItem; “Portland”T; FlightReservation; Flights; ClickT; FlightsTable; AvailiableFlights; SetSelectedRow; 2T; FlightsTable; OK; ClickT; FlightReservation; CustomerName; SetTextValue; ^CustomerT; FlightReservation; ^Class; ClickT; FlightREservation; InsertOrder; Click

Page 40: Keyword Driven Testing

LaunchFlight.SDD

C; LaunchApplication; Flight; ^FlightApp; ^FlightPath

Page 41: Keyword Driven Testing

Login.SDD

T; Login; AgentsName; SetTextValue; ^user.name

T; Login; Password; SetUnverifiedTextValue; ^user.password

T; Login; OK; Click

Page 42: Keyword Driven Testing

AddFlight.SDD

T; FlightReservation; NewFlight; ClickT; FlightReservation; Departures; SelectTextItem; ^DepartureT; FlightReservation; Destinations; SelectTextItem; ^DestinationsT; FlightReservation; Flights; ClickT; FlightsTable; OK; ClickT; FlightReservation; CustomerName; SetTextValue; ^CustomerT; FlightReservation; ^Class; ClickT; FlightReservation; TicketsOrdered; SetTextValue; ^NbrTicketsT; FlightReservation; InsertOrder; Click

Page 43: Keyword Driven Testing

FindFlight.SDD

T; FlightReservation; FlightReservation; SelectMenuItem; "File;Open Order..."

T; FindOrder; ByCustName; Click

T; FindOrder; CustomerName; SetTextValue; ^Customer

T; FindOrder; OK; Click

Page 44: Keyword Driven Testing

UpdateFlight.SDD

T; FlightReservation; ^Class; Click

T; FlightReservation; TicketsOrdered; SetTextValue; ^NbrTickets

T; FlightReservation; UpdateOrder; Click

Page 45: Keyword Driven Testing

DeleteFlight.SDD

T; FlightReservation; DeleteOrder; Click

T; ConfirmationMessage; Yes; Click

Page 46: Keyword Driven Testing

Where to go from here?

• Start experimenting with other applications

• Read some of the documentation on http://safsdev.sourceforge.net

• Have Confidence…You can Do it!!!

Page 47: Keyword Driven Testing

References

• Nagle, C. Test automation frameworks; 1999

• Kit, E. & Prince, S. "A Roadmap for Automating Software Testing" Tutorial presented at STAR’99East Conference, Orlando, Florida, May 10, 1999.

• Hayes, L. "Establishing an Automated Testing Framework" Tutorial presented at STAR’99East Conference, Orlando, Florida, May 11, 1999.

• Kit, E. "The Third Generation--Integrated Test Design and Automation" Guest presentation at STAR’99East Conference, Orlando, Florida, May 12, 1999.

• Mosley, D. & Posey, B. Just Enough Software Test Automation New Jersey: Prentice Hall PTR, 2002.

• Wust, G. "A Model for Successful Software Testing Automation" Paper presented at STAR’99East Conference, Orlando, Florida, May 12, 1999.

• Dustin, E. Automated Software Testing: Introduction, Management, and Performance. New York: Addison Wesley, 1999.

• Fewster & Graham Software Test Automation: Effective use of test execution tools New York: Addison Wesley, 1999.

• Dustin, E. "Automated Testing Lifecycle Methodology (ATLM)" Paper presented at STAR EAST 2000 Conference, Orlando, Florida, May 3, 2000.

Page 48: Keyword Driven Testing

References

• Kit, E. & Buwalda, H. "Testing and Test Automation: Establishing Effective Architectures" Presentation at STAR EAST 2000 Conference, Orlando, Florida, May 4, 2000.

• Sweeney, M. "Automation Testing Using Visual Basic" Paper presented at STAR EAST 2000 Conference, Orlando, Florida, May 4, 2000.

• Buwalda, H. "Soap Opera Testing" Guest presentation at STAR EAST 2000 Conference, Orlando, Florida, May 5, 2000.

• Pollner, A. "Advanced Techniques in Test Automation" Paper presented at STAR EAST 2000 Conference, Orlando, Florida, May 5, 2000.

• Cem Kaner, http://www.kaner.com

• Zambelich, K. Totally Data-Driven Automated Testing 1998 http://www.sqa-test.com/w_paper1.html

• SQA Suite Users, Discussions and Archives, 1999-2000, http://www.dundee.net/sqa/

• Nagle, C. Data Driven Test Automation: For Rational Robot V2000 1999-2000DDE Doc Index