Tests Creation Tests Creation Using the following QuickTest components Designing Tests Keyword View Test Objects Active Screen Checkpoints Object Property Values Tables, Text, Bitmaps, Databases Configuring Values Actions Data Tables Designing Tests You can create a test by recording the operations you perform on your application or using the keyword-driven methodology. After you create your test, you can enhance it using checkpoints and other special testing options. In some cases, you may want to let QuickTest generate test steps by recording the typical processes that you perform on your application. As you navigate through your application, QuickTest graphically displays each step you perform as a row in the Keyword View. While creating your test, you can insert checkpoints into your test. When you test your application or site, you may want to check how it performs the same operations with different data. This is called parameterizing your test. Keyword View The Keyword View enables us to create and view the steps of our test in a modular, table format. Working in the Keyword View does not require any programming knowledge. The programming required to actually perform each test step is done automatically behind the scenes by QuickTest. Keyword View QuickTest Recorded Object Hierarchy Keyword View Actions are the highest level of the test hierarchy. They contain all the steps that are part of that action. In the Keyword View, you can view either the flow of all the action calls in the test, or the content of a specific reusable action, using the options in the Action toolbar. The Action toolbar is available only if at least one of the actions in your test is reusable. Each action is comprised of steps. During a recording session, each step is recorded as a row in the Keyword View. For example, the Keyword View could contain these rows. For every step in the Keyword View, QuickTest displays a corresponding line of script in the Expert View. If you select a specific row in the Keyword View and switch to the Expert View, the cursor is located in the corresponding line of the script. These rows show the following three steps that are all performed on the Welcome: Mercury Tours page of the Mercury Tours sample web site: mercury is entered in the userName edit box. •The encrypted string 3ee35 is entered in the password edit box. •The Sign-In image is clicked. •The Documentation column translates each of the steps into understandable sentences. QTP Recorded Object Hierarchy The recorded object hierarchy comprises one or more levels of test objects. The top level is the object that represents a window, dialog, or browser type object, depending on the environment. Depending on the actual object on which you performed an operation, that object may be recorded as a top level object or a second level object, for example, Window > WinToolbar or a third level object, for example, Browser > Page > WebButton. Even though the object on which you record may be embedded in several levels of objects, the recorded hierarchy does not include these objects. For example, even if the WebButton object on which you record is actually contained in several nested WebTable objects, which are all contained within a Browser and Page, the recorded hierarchy is only Browser > Page > WebButton. An object that can potentially contain a lower-level object is called a container object. All top-level objects in the recorded hierarchy are container objects. If a second-level object contains third-level objects according to the QuickTest recorded object hierarchy, then that object is also considered a container object. For example, in the step Browser > Page > Edit > Set "David", Browser and Page are both container objects. If the selected step is at the lowest level of the recorded hierarchy, the new step is inserted as a sibling step immediately after the selected step. If the selected step is a container object, the new step is inserted as the first sub-step of the container object. Test Objects Object Repository Types Object Repository Window Test Object Properties Locating Objects Object Repository Types QTP has to learn the interface of an application to be able to work with it. It does by learning the application's objects and their corresponding property values and storing these object descriptions in an object repository. local object repository - stores objects in a file that is associated with one specific action, so that only that action can access the stored objects. shared object repository - stores test objects in a file that can be accessed by multiple tests (in read-only mode). Why we have to modify OR - If one or more of the property values of an object in your application differ from the property values QuickTest uses to identify the object, your test may fail. Therefore, when the property values of objects in your application change, you should modify the corresponding test object property values in the corresponding object repository so that you can continue to use your existing tests. Object Repository window - To modify test objects stored in a local object repository. Object Repository Manager - To modify test objects in a shared object repository. If an object with the same name is located in both the local object repository and in a shared object repository associated with the Note:same action, the action uses the local object definition. If an object with the same name is located in more than one shared object repository associated with the same action, the object definition is used from the first occurrence of the object, according to the order in which the shared object repositories are associated with the action. Selection between Local or Shared Object Repositories To choose where to save objects, we need to understand the differences between local and shared object repositories. In general, the local object repository is easiest to use when you are creating simple record and run tests, especially under the following conditions: You have only one, or very few, tests that correspond to a given application, interface, or set of objects. You do not expect to frequently modify test object properties. You generally create single-action tests. Conversely, the shared object repository is generally the preferred option when: You are creating tests using keyword-driven methodologies (not using record). You have several tests that test elements of the same application, interface, or set of objects. You expect the object properties in your application to change from time to time and/or you regularly need to update or modify test object properties. You often work with multi-action tests and regularly use the Insert Copy of Action and Insert Call to Action options. Object Repository Window Open the Object Repository window for a specific action or component by choosing Resources > Object Repository or clicking the Object Repository button . The Object Repository window displays a tree of all objects in the current component or in the selected action (including all local objects and all objects in any shared object repositories associated with the selected action or component). Local objects are editable (black); shared objects are in readonly format (gray). Active Screen The Active Screen provides a snapshot of your application in a recording session and enables you to insert additional steps on the test objects captured in that screen after the recording session. To view the Active Screen pane, click the Active Screen button or choose View > Active Screen. We can decide if and how much information you want to capture and save in the Active Screen. The more information you capture, the easier it is to add steps to your test using the many Active Screen options. Checkpoints A checkpoint is a verification point that compares a current value for a specified property with the expected value for that property. This enables you to identify whether your Web site or application is functioning correctly. When we add a checkpoint, QuickTest adds a checkpoint to the current row in the Keyword View and adds a Check CheckPoint statement in the Expert View. By default, the checkpoint name receives the name of the test object on which the checkpoint is being performed. Types of Checkpoints Standard Checkpoint checks the property value of an object in your application or Web page. The standard checkpoint checks a variety of objects such as buttons, radio buttons, combo boxes, lists, and so forth. Image Checkpoint checks the value of an image in your application or Web page. For example, you can check that a selected image's source file is correct. Bitmap Checkpoint checks an area of your Web page or application as a bitmap. For example, suppose you have a Web site that can display a map of a city the user specifies. Table Checkpoint checks information within a table. For example, suppose your application or Web site contains a table listing all available flights from New York to San Francisco. You can add a table checkpoint to check that the time of the first flight in the table is correct. Continued… Text Checkpoint checks that a text string is displayed in the appropriate place on a Web page or application. Text Area Checkpoint checks that a text string is displayed within a defined area in a Windows application, according to specified criteria. Accessibility Checkpoint identifies areas of your Web site that may not conform to the World Wide Web Consortium (W3C) Web Content Accessibility Guidelines. For example, guideline 1.1 of the W3C Web Content Accessibility Guidelines requires you to provide a text equivalent for every non-text element. Page Checkpoint checks the characteristics of a Web page. For example, you can check how long a Web page takes to load or whether a Web page contains broken links. Database Checkpoint checks the contents of a database accessed by your application. XML Checkpoint checks the data content of XML documents in XML files or XML documents in Web pages and frames. Supported Checkpoints The table shows the types of checkpoints supported for each add-in environment that is supported by default with the QuickTest Professional Image Checkpoint Properties Dialog Box Modifying Checkpoints You can modify the settings of existing checkpoints. For example, you can choose to use parameters, or you can use filters to specify which image sources and links to check. To modify a checkpoint: In the Keyword View or Expert View, right-click the checkpoint that you want to modify and select Checkpoint Properties. Alternatively, select the step containing the checkpoint and choose Edit > Step Properties > Checkpoint Properties. The relevant checkpoint dialog box opens. Modify the properties and click OK. Planning and Preparing to Create a Test Before you start creating your test, you should plan it and prepare the required infrastructure. Determine the functionality you want to test. Decide which information you want to check during the test. Consider changing the way that QuickTest identifies specific objects. Decide how you want to organize your object repositories. Find out whether an object repository containing the objects you are testing already exists. Determine whether you need to create any new user-defined functions or whether you should associate any existing function libraries with your test. If you are recording steps, evaluate the types of events you need to record. Consider increasing the power and flexibility of your test by replacing fixed values with parameters. Consider using actions to streamline the testing process. Configuring Values QuickTest enables you to configure the values for properties and other items by defining a value as a constant or a parameter. Constant. A value that is defined directly in the step and remains unchanged for the duration of the test. Parameter. A value that is defined or generated separately from the step and is retrieved when the specific step runs. For example, a parameter value may be defined in an external file or generated by QuickTest. Setting Values in the Configure Value Area select an item in a dialog box containing a Configure value area, such as the Checkpoint Properties dialog box, you can select Constant or Parameter to set the value. The default is Constant. select Parameter for a value that is already parameterized, the Parameter box displays the current parameter definition for the value. Actions You can divide your test into actions to streamline the process of testing your application or Web site. A test comprises calls to actions. When you create a new test, it contains a call to a single action. An action consists of its own test script, including all of the steps recorded in that action, and any objects in its local object repository. Each action is stored together with the test in which you created it. You can insert a call to an action that is stored with the test and, depending on the properties of the action, you may also be able to call an action stored with another test. Using Multiple Actions in a Test When you create a test, it includes one action. All the steps you record and all the modifications you make while editing your test are part of a single action. You can divide your test into multiple actions by creating new actions and inserting calls to them, or by inserting calls to existing actions. There are three kinds of actions: non-reusable action. an action that can be called only in the test with which it is stored. reusable action. an action that can be called multiple times by the test with which it is stored (the local test), as well as by other tests. external action. a reusable action stored with another test. External actions are read-only in the calling test, but you can choose to use a local, editable copy of the Data Table information for the external action. Creating New Actions We can create new actions and add calls to them during a recording session or while designing or editing your test. To create a new action in your test: If you want to insert a call to the new action from an existing action in your test, click the step after which you want to insert the new action. To insert a call to the new action from the test flow as a toplevel action, click any step. Choose Insert > Call to New Action or click the Insert Call to New Action button. The Insert Call to New Action dialog box opens. Nesting Actions To call an action from within an action. This is called nesting. By nesting actions, you can: Maintain the modularity of your test. Run one or more actions based on the results of a conditional statement. Continued… In the Expert View, the test might look something like this: Browser("Membership Preference").Page("Membership Preference").WebRadioGroup("MemType").Select DataTable("memtype", dtGlobalSheet) Mem_Type=Browser("Membership Preference").Page("Membership Preference").WebRadioGroup("MemType").GetROProperty ("value") If Mem_Type="paid" Then RunAction "Paid_Mem", oneIteration ElseIf Mem_Type = "free" Then RunAction "Free_Mem", oneIteration Else RunAction "Preferred", oneIteration End If Data Tables QuickTest enables you to insert and run steps that are driven by data stored in the Data Table. The Data Table has the characteristics of a Microsoft Excel spreadsheet, meaning that you can store and use data in its cells and you can also perform mathematical formulas within the cells. During the run session, QuickTest creates a runtime Data Table—a live version of the Data Table associated with your test. During the run session, QuickTest displays the run-time data in the Data Table pane so that you can see any changes to the Data Table as they occur. Thank You!