Levels of testing

Levels of testing We divide Testing In Four Level,Unit Testing,Integration Testing, System Testing and Acceptance Testing.
Unit testing:-
Generally the code which is generated is compiled. The unit test is white box oriented and the steps can be conducted in parallel for multiple components.
1. The module Interface is tested to ensure that information properly flows into and out of the program unit under test.
2. The local data structure is examined to ensure that data stored temporarily maintains its integrity during all steps in an algorithm’s execution.
3. Boundary conditions are tested to ensure that the module operates properly at boundaries established to limit and restrict processing.
4. All the statements are executed at least once and error handling paths are tested
Integration testing:-
Integration testing is a systematic technique for constructing the program structure .After Performing Unit Testing perform integration testing. you have like
Top down :-Top down integration testing with the main routine and one or two immediate subordinate routines in the system structure it is good to have modules are integrated as they are developed, top level interfaces are tested first.
Bottom up :-Bottom up integration testing is the traditional strategy used to integrate the components of a software system into a functioning whole
Regressive testing:- Retesting the already test modules and adding new modules .Regressive testing is an important strategy for reducing side effects.
System Level Testing :
System Testing is third level of Testing In this level we check Functionility of application.
Performance testing: - Performance testing is designed to test the run time performance of software or hardware.
Recovery testing :- is a system test forces the software to fail in a variety of ways and verifies that recovery is properly performed .if recovery is automatic, re initialization , check pointing ,data recovery and restart are evaluated for correctness.
Security Testing: - Security testing attempts to verify that protection mechanisms built into a system will in fact, protect it from improper penetration.
Acceptance Testing:- When customer software is built for one customer, a series of acceptance tests are conducted to enable the customer to validate all requirements. conducted by the end user rather than software engineers, an acceptance test can range from an informal test drive to a planned and systematically executed series of tests. If software is developed as a product to be used by many customers, it is impractical to perform acceptance tests with each one. Most software product builders use a process called alpha and beta testing to uncover errors that only the end user seems able to find .

Web Testing Challenges

  • Web Testing Challanges
  • Understanding the Web test process is essential for deciding how to proceed with the selection of a Web test process, automated test tools, and methodologies.

  • Following are several challenges that need to be considered when deciding on the Web process that is most applicable for your business:
  • The Web is in a state of constant change. The developer and tester need to understand how changes will affect their development and the Web sitetest process. As technology changes, testers will need to understand how this will affect them and how they will handle their testing responsibilities.

  • When setting up the test scenarios, the tester needs to understand how to implement different scenarios that will meet different types of business requirements. For example, is a tester testing a site with graphic user interface (GUI) buttons and text boxes or testing HyperText MarkupLanguage (HTML) code? Simulating response time by pressing buttons and inputting different values will verify if correct calculations are valid.
  • The test environment can be a difficult part of the setup for the tester.
  • You need to be aware of all of the different components that make up the environment; the networking piece can be especially difficult to simulate.
  • The following several considerations need to be addressed
  • Multiple server tiers
  • Firewalls
  • Databases
  • Database servers
  • In the test environment, it is important to know how the different components will interact with each other.
  • When setting up the Web testing environment, special consideration should be given to how credit card transactions are handled, carried out, and verified. Because testers are responsible for setting up the test scenarios, they will need to be able to simulate the quantity of transactions that are going to be processed on the Web site.
  • Security is a constant concern for business on the Internet as well as for developers and testers. There are hackers who enjoy breaking the secuiry on a Web site.
  • Web-based applications Present New Challanges ,Both For Developers and Testers .These challanges include .
  • 1. Short Release Cycle
  • 2. Constant Changing Technology
  • 3. Possible Huge Number Of Users during Initial Website Launch.
  • 4. Inability To control The Users Running Environment.
  • 5.Twenty Four -24 Hour avilability of web site.

Win Runner Related some Questions .

Win Runner Related some Questions .

  • Q: What is contained in the GUI map?
  • Ans: WinRunner stores information it learns about a window or object in a GUI Map. When WinRunner runs a test, it uses the GUI map to locate objects. It reads an object’s description in the GUI map and then looks for an object with the same properties in the application being tested. Each of these objects in the GUI Map file will be having a logical name and a physical description. There are 2 types of GUI Map files. Global GUI Map file: a single GUI Map file for the entire application. GUI Map File per Test: WinRunner automatically creates a GUI Map file for each test created.
  • Q: How Win Runner identifies the GUI objects?
  • Ans: Win Runner identifies the objects based on their Logical name & Physical properties.
  • Q: What browsers are supported by Win Runner 7.x?
  • Ans:Win Runner 7.x supports Internet Explorer 4.x-5.5, Netscape Navigator 4.0-6.1 (excluding versions 6.0 and 6.01) and AOL 5 and 6.
  • Q: What is GUI Spy?
  • Ans: GUI Spy is an integrated tool for spying on standard, ActiveX and Java controls. It displays the properties of standard controls and the properties and methods of ActiveX and Java controls. You can copy and paste functions for activating Java methods from the GUI Spy into your test script.
  • Q:What is the use of GUI Map File per Test mode? Ans: This mode automatically manages GUI map files., so we do not have to load or save GUI map files in your test. GUI map files per test can be combined into the Global GUI map file if needed.
  • Q:What add-ins are available for Win Runner 7.x?
  • Ans:Add-ins are available for Java, ActiveX, WebTest, Siebel, Terminal Emulator, Forte, Oracle and PowerBuilder.
  • Q:Can WR automatically back up test scripts?
  • Ans:Yes, Win Runner 7.x can automatically create a backup copy of your test script at intervals you specify.
  • Q: What are the different run modes?
  • Ans: Three modes for running test:
  • Verify (default): To check your application against expected results. Win Runner compares the current response of the application to its expected response. Any discrepancies between the current and expected response are captured and saved as verification results.
  • Debug: The debug mode helps you identify bugs in test scripts. Running a test in the debug mode is the same as running a test in the Verify mode, expect that debug results are always saved in the debug directory.
  • Update: The update mode to update the expected results a test.
  • Q: What is GUI checkpoint?
  • Ans: GUI Checkpoints allows to verify the current state or attributes of GUI objects. When we insert GUI checkpoint in script, Win Runner captures the current value of the object properties and saves them in the expected result directory (exp) of the test. When we run the test Win Runner compares the current state of the object in the application to the expected state and detects and reports any mismatches.
  • Q: When we need to update the GUI map?
  • Ans: We need to update the GUI map when objects in the application have changed. This usually happens when a new major version of the application is released.
  • Q:What is the need for Data Driven Tests?
  • Ans:‘Parameterizing’ the test allows to run the same test with different data each time. In addition the test is expandable and easier to maintain.
  • Q:What is the purpose of the set_window function?
  • Ans:The set_window function sets the focus of the window in the application as well as sets the scope of the window in the GUI map.
  • Q: What is the difference between call() and load() function?
  • Ans: Call functions invokes a test from within a test script but load is used for loading a compiled module into memory.
  • Q:What is compiled module? Why do you create a complied module?
  • Ans: 1 Compiled module is library of frequently used functions. We can save user defined functions in compiled module and then call them in the test scripts.
  • 2 Compiled module improves the organization and performance of the tests.
  • 3 Compiled modules are debugged before using; they will require less error checking.
  • 4 Calling a function whose is already compiled is significantly faster than interpreting a function in test script.
  • 5 Complied module does not support analog recoding and checkpoints.
  • Q: How do you create user-defined functions?
  • Ans:User Defined functions enhance the efficiency and reliability of test scripts. Easy way to create a function is
  • 1. Create the process by recording the TSL functions
  • 2. Enclose it into the function header
  • 3. Replace values with parameters
  • 4. Declare local variable
  • 5. Handle errors
  • Q: What is database checkpoint?
  • Ans:Database checkpoint is used to check the contents of database in different versions of the application.
  • Q:What do Runtime Database Record Checkpoints do?
  • Ans: Runtime Database Record Checkpoints enable you to check that your application inserts, deletes, updates or retrieves data in a database correctly. By mapping application controls to database fields, you can check that the values in your application are correctly read from or written to the matching database fields when you run your test.
  • Q:What is Startup script? What is role of Startup script?
  • Ans: A startup script is a test scripts that is automatically run each time we start WinRunner. We can create startup tests that load GUI map, compiled modules, configuring recording options and staring AUT.
  • Q: What is Function Generator and how it is used?
  • Ans: In Function Generator functions are grouped in categories according to the object class (list, button) or the type of function (input/output, system, file, etc).
  • In Function Generator we choose a function, then expand the dialog box (by pressing the Args>> button) to fill in the argument values and paste it to script.
  • Q:If you want to run the same script 100 times, what is the syntax? Ans: for(i=1;i<=100;i++) { TSL statements }
  • Q:What is a virtual object?How do you handle Virtual Objects in WinRunner?
  • Ans:Our applications may contain bitmaps that look and behave like GUI objects. WinRunner record operations on these objects using win_mouse_click statements. We can define these objects as virtual objects and instruct WinRunner to treat them as GUI objects when we record or run the tests. Using Virtual Object wizard we can assign a bitmap to a standard object class, define the coordinates of that object, and assign it a logical name.
  • Q:What are the different Checkpoints that you can insert in a WinRunner Script?
  • Ans: Four types of checkpoints can be added to any WinRunner script.
  • 1. GUI Checkpoint
  • 2. Bitmap Checkpoint
  • 3. Database Checkpoint
  • 4. Text Checkpoint (only for Web scripts)
  • Q:How do you check for the database table contents?
  • Ans:Using ‘Database checkpoint’
  • Q:How do you handle Web Exceptions?
  • Ans:We can instruct WinRunner to handle the appearance of specific dialog box in the web site during the test run. WinRunner contains a list of exceptions that it supports in the Web Exception Editor. We can modify the list and configure additional exceptions that we would like WinRunner to support.
  • Q:What is the difference between Main Test and a Compile Module file?
  • Ans:Main test contains the TSL script to test the AUT. Compiled module is library of frequently used functions. We can save user defined functions in compiled module and then call them in the main test scripts.
  • Q:How do you start client/server applications from the script?
  • Ans:Using following TSL function: invoke_application ( file, command_option, working_dir, show );
  • Q:When do you run a test in batch mode?
  • Ans:Batch testing is execution of a suite of test scripts towards an overall testing goal. We need to run a batch test when we want to test the overall AUT.
  • Win Runner Navigation
  • http://testingsolution.blogspot.com/2006/12/win-runner-navigation.html
  • Software Testing Books

Win Runner Navigation

    Win Runner Navigation

    Using Rapid Test Script wizard

    • Start->Program Files->Winrunner->winruner
    • Select the Rapid Test Script Wizard (or) create->Rapid Test Script wizard
    • Click Next button of welcome to script wizard
    • Select hand icon and click on Application window and Cilck Next button
    • Select the tests and click Next button
    • Select Navigation controls and Click Next button
    • Set the Learning Flow(Express or Comprehensive) and click Learn button
    • Select start application YES or NO, then click Next button
    • Save the Startup script and GUI map files, click Next button
    • Save the selected tests, click Next button
    • Click Ok button
    • Script will be generated.then run the scripts.
    • Run->Run from top Find results of each script and select tools->text report in Winrunner test results

    Using GUI-Map Configuration Tool:

    • Open an application.
    • Select Tools-GUI Map Configuration; Windows pops-up.
    • Click ADD button; Click on hand icon.
    • Click on the object, which is to be configured. A user-defined class for that object is added to list.
    • Select User-defined class you added and press ‘Configure’ button.
    • Mapped to Class;(Select a corresponding standard class from the combo box).
    • You can move the properties from available properties to Learned Properties. By selecting Insert button .
    • Select the Selector and recording methods.
    • Click Ok button
    • Now, you will observe Win runner identifying the configured objects.

    Using Record-ContextSensitive mode:

    • Create->Record context Sensitive
    • Select start->program files->Accessories->Calculator
    • Do some action on the application.
    • Stop recording
    • Run from Top; Press ‘OK’.

    Using Record-Analog Mode:

    • Create->Insert Function->from function generator
    • Function name:(select ‘invoke_application’ from combo box).
    • Click Args button; File: mspaint.
    • Click on ‘paste’ button; Click on ‘Execute’ button to open the application; Finally click on ‘Close’.
    • Create->Record-Analog .
    • Draw some picture in the paintbrush file.
    • Stop Recording
    • Run->Run from Top; Press ‘OK’.

    GUI CHECK POINTS-Single Property Check:

    • Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
    • Click on’paste’ and click on’execute’ & close the window.
    • Create->Record Context sensitive.
    • Do some operations & stop recording.
    • Create->GUI Check Point->For single Property.
    • Click on some button whose property to be checked.
    • Click on paste.
    • Now close the Flight1a application; Run->Run from top.
    • Press ‘OK’ it displays results window.
    • Double click on the result statement. It shows the expected value & actual value window.

    GUI CHECK POINTS-For Object/Window Property:

    • Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
    • Click on’paste’ and click on’execute’ & close the window.
    • Create->Record Context sensitive.
    • Do some operations & stop recording.
    • Create->GUI Check Point->Object/Window Property.
    • Click on some button whose property to be checked.
    • Click on paste.
    • 40Now close the Flight 1a application; Run->Run from top.
    • Press ‘OK’ it displays results window.
    • Double click on the result statement. It shows the expected value & actual value window.

    GUI CHECK POINTS-For Object/Window Property:

    • Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
    • Click on’paste’ and click on’execute’ & close the window.
    • Create->Record Context sensitive.
    • Do some operations & stop recording.
    • Create->GUI Check Point->For Multiple Object.
    • Click on some button whose property to be checked.
    • Click on Add button.
    • Click on few objects & Right click to quit.
    • Select each object & select corresponding properties to be checked for that object: click ‘OK’.
    • Run->Run from Top. It displys the results.

    BITMAP CHECK POINT:For object/window.

    • Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
    • Click on’paste’ and click on’execute’ & close the window.
    • Create->Record Context sensitive.
    • Enter the Username, Password & click ‘OK’ button
    • Open the Order in Flight Reservation Application
    • Select File->Fax Order& enter Fax Number, Signature
    • Press ‘Cancel’ button.
    • Create->Stop Recording.
    • Then open Fax Order in Flight Reservation Application
    • Create->Bitmap Check->For obj.window;
    • Run->run from top.
    • The test fails and you can see the difference.

    For Screen Area:

    • Open new Paint Brush file;
    • Create->Bitmapcheck point->from screen area.
    • Paint file pops up; select an image with cross hair pointer.
    • Do slight modification in the paint file(you can also run on the same paint file);
    • Run->Run from Top.
    • The test fails and you can see the difference of images.

    DATABASE CHECK POINTSUsing Default check(for MS-Access only)

    • Create->Database Check Point->Default check
    • Select the Specify SQL Statement check box
    • Click Next button
    • Click Create button
    • Type New DSN name and Click New button
    • Then select a driver for which you want to set up a database & double clcik that driver
    • Then select Browse button and retype same DSN name and Click save button.
    • Click Next button & click Finish button
    • Select database button & set path of the your database name
    • Click ‘OK’ button & then Click the your DSN window ‘OK’ button
    • Type the SQL query in SQL box
    • The click Finish button Note : same process will be Custom Check Point

    Runtime Record Check Point.

    • Repeat above 10 steps.
    • Type query of two related tables in SQL box Ex: select Orders.Order_Number, Flights.Flight_Number from Orders, Flights where Flight.Flight_Number=Orders.Flight_Number.
    • Select Finish Button
    • Select hand Icon button& select Order No in your Application
    • Click Next button.
    • Select hand Icon button& select Filght No in your Application
    • Click Next button
    • Select any one of the following check box 1. One match record 2. One or more match records. 3. No match record
    • select Finish button the script will be generated

    Synchronization PointFor Obj/Win Properties:

    • Open start->Programs->Win Runner->Sample applications->Flight1A.
    • Open winrunner window
    • Create->RecordContext Sensitive
    • Insert information for new Order &click on "insert Order" button
    • After inserting click on "delete" button
    • Stop recording& save the file.
    • Run->Run from top: Gives your results.

    Without Synchronization:

    • settings->General Options->Click on "Run" tab. "Timeout for checkpoints& Cs statements’ value:10000 follow 1 to 7->the test display on "Error Message" that "delete" button is disabled.

    With Synchronization:

    • Keep Timeout value:1000 only
    • Go to the Test Script file, insert pointed after "Insert Order" button, press statement.
    • Create->Synchronization->For Obj/Window Property
    • Click on"Delete Order" button & select enable property; click on "paste".
    • It inserts the Synch statement.

    For Obj/Win Bitmap:

    • Create-> Record Context Sensitive.
    • Insert information for new order & click on "Insert order" button
    • Stop recording & save the file.
    • Go to the TSL Script, just before inserting of data into "date of flight" insert pointer.
    • Create->Synchronization->For Obj/Win Bitmap is selected.
    • (Make sure Flight Reservation is empty) click on "data of flight" text box
    • Run->Run from Top; results are displayed. Note:(Keep "Timeout value" :1000)

    Get Text: From Screen Area: (Note: Checking whether Order no is increasing when ever Order is created)

    • Open Flight1A; Analysis->graphs(Keep it open)
    • Create->get text->from screen area
    • Capture the No of tickets sold; right clcik &close the graph
    • Now , insert new order, open the graph(Analysis->graphs)
    • Go to Winrunner window, create->get text->from screen area
    • Capture the No of tickets sold and right click; close the graph
    • Save the script file
    • Add the followinf script; If(text2==text1) tl_step("text comparision",0,"updateed"); else tl_step("text comparision",1,"update property");
    • Run->Run from top to see the results.

    Get Text: For Object/Window:

    • Open a "Calc" application in two windows (Assuming two are two versions)
    • Create->get text->for Obj/Window
    • Click on some button in one window
    • Stop recording
    • Repeat 1 to 4 for Capture the text of same object from another "Calc" application.
    • Add the following TSL(Note:Change "text" to text1 & text2 for each statement) if(text1==text2) report_msg("correct" text1); Else report_msg("incorrect" text2);
    • Run & see the results

    Using GUI-Spy:

    Using the GUI Spy, you can view and verify the properties of any GUI object on selected application

    • Tools->Gui Spy…
    • Select Spy On ( select Object or Window)
    • Select Hand icon Button
    • Point the Object or window & Press Ctrl_L + F3.
    • You can view and verify the properties.

    Using Virtual Object Wizard:

    Using the Virtual Object wizard, you can assign a bitmap to a standard object class, define the coordinates of that object, and assign it a logical name

    • Tools->Virtual Object Wizard.
    • Click Next Button
    • Select standard class object for the virtual object Ex: class:Push_button
    • Click Next button
    • Click Mark Object button
    • Drag the cursor to mark the area of the virtual object.
    • Click Next button
    • Assign the Logical Name, This name will appear in the test script when you record object.
    • Select Yes or No check box
    • Click Finish button
    • Go to winrunner window & Create->Start Recording.
    • Do some operations
    • Stop Recording

    Using Gui Map Editor:

    Using the GUI Map Editor, you can view and modify the properties of any GUI object on selected application. To modify an object’s logical name in a GUI map file

    • Tools->GUI Map Editor
    • Select Learn button
    • Select the Application A winrunner message box informs “do you want to learn all objects within the window” & select ‘yes’’ button.
    • Select perticular object and select Modify Button
    • Change the Logical Name& click ‘OK’ Button
    • Save the File

    To find an object in a GUI map file:

    • Choose Tools > GUI Map Editor.
    • Choose View > GUI Files.
    • Choose File > Open to load the GUI map file.
    • Click Find. The mouse pointer turns into a pointing hand.
    • Click the object in the application being tested. The object is highlighted in the GUI map file.

    To highlight an object in a Application:

    • Choose Tools > GUI Map Editor.
    • Choose View > GUI Files.
    • Choose File > Open to load the GUI map file.
    • Select the object in the GUI map file
    • Click Show. The object is highlighted in the Application.

    Data Driver Wizard

    • Start->Programs->Wirunner->Sample applications->Flight 1A
    • Open Flight Reservation Application
    • Go to Winrunner window
    • Create->Start recording
    • Select file->new order, insert the fields; Click the Insert Order
    • Tools->Data Table; Enter different Customer names in one row and Tickets in another row.
    • Default that two column names are Noname1 and Noname2.
    • Tools->Data Driver Wizard
    • Click Next button &select the Data Table
    • Select Parameterize the test; select Line by Line check box
    • Click Next Button
    • Parameterize each specific values with column names of tables;Repeat for all
    • Final Click finish button.
    • Run->Run from top;
    • View the results.

    Merge the GUI Files:

    Manual Merge

    • Tools->Merge GUI Map Files A WinRunner message box informs you that all open GUI maps will be closed and all unsaved changes will be discarded & click ‘OK’ button.
    • Select the Manual Merge. Manual Merge enables you to manually add GUI objects from the source to target files.
    • To specify the Target GUI map file click the browse button& select GUI map file
    • To specify the Source GUI map file. Click the add button& select source GUI map file.
    • Click ‘OK’ button
    • GUI Map File Manual Merge Tool Opens Select Objects and move Source File to Target File
    • Close the GUI Map File Manual Merge Tool

    Auto Merge

    • Tools->Merge GUI Map Files A WinRunner message box informs you that all open GUI maps will be closed and all unsaved changes will be discarded & click ‘OK’ button.
    • Select the Auto Merge in Merge Type. If you chose Auto Merge and the source GUI map files are merged successfully without conflicts,
    • To specify the Target GUI map file click the browse button& select GUI map file
    • To specify the Source GUI map file.
    • Click the add button& select source GUI map file.
    • Click ‘OK’ button A message confirms the merge.

    Manually Retrive the Records form Database

    • db_connect(query1,DSN=Flight32);
    • db_execute_query(query1,select * from Orders,rec);
    • db_get_field_value(query1,#0,#0);
    • db_get_headers(query1, field_num,headers);
    • db_get_row(query1,5,row_con);
    • db_write_records(query1,,c:\\str.txt,TRUE,10);