GUI Tetsing
-
Upload
softwarecentral -
Category
Documents
-
view
498 -
download
3
Transcript of GUI Tetsing
Csci 565Spring 2009H.Reza
Event-based systemsGUI Testing
Concepts, strategies, etcThe Currency Conversion Program
To show unit testing for GUI To show integration testing for GUI To show system testing for GUI
What is GUI? Universal client alternative to traditional
forms/commands based user interfaces that accepts as input user-generated and/or system-generated events from a set of finite events and produces predicable graphical outputs
GUIs are organized in hierarchical fashion and Composed of objects: Objects has a set of fixed properties having discrete
values▪ Menu
▪ provide almost continuous availability of the various features of the systems;
▪ Buttons /keyboard shortcuts ▪ enable the user to navigate and access the various functions of their
application. ▪ User interacts and manipulate with objects using events (or
sequence of events)▪ Windows allow multiple windows to be displayed at the same
time ▪ Windows provides functionality using fields in which text or numeric
data can be entered ▪ Windows operate in two mode:
Modal (restrict the user's foucs and interactions to one window) Modalless ( does not restrict monopolozes the GUI interactions)
The GUI events can be classified as Restricted-focus events: open modal windows
▪ E.g. Set Language
Unrestricted-focus events open modeless windows▪ E.g., Replace in MS World
Termination Events : close modal windows▪ E.g., OK and Cancel
System- interaction events: interact with underlying software to perform some action▪ E.g., Copy event used for coping objects to the clipboard
GUI testing issues The event-driven nature of GUIs
▪ presents the first serious testing difficulty because users can click on any pixel on the screen and there so many of them
Unsolicited events▪ E.g., when the printer is out of papers
The infinite sequence of events (or permutations of events) GUI can be represented by Object oriented paradigm Hidden synchronization and dependencies (objects in the same
windows and different windows)▪ E.g., if a check box is set to true, a text box intended to accept a
numeric value elsewhere in the window may be made inactive or invisible.
Many events in/Many events out Testability (difficulty to specify, to execute and to analyze test cases)
▪ event-based system +hidden interactions▪ Coverage criteria??? (memon et al uses events, and events
sequences) Suffers from some of problems related to COTs (or precompiled
components)
There are serious legal issues related to both design and testing of GUI Legal issues
▪ Privacy/security ▪ E.g., access to the privileged/stored data
▪ Safety/ reliability▪ E.g., GUI for Safety critical systems can affect life-or-
death decisions (functionality and ease of use)
▪ Accessibility▪ Equal access for disabled users
Focus on errors to reduce the scope of tests
Separation of concerns (divide and conquer)
Use Test design techniques when it is applicable (e.g., blackbox)
GUI errors include Data validation Incorrect field defaults Mishandling of server process failures Mandatory fields, not mandatory Wrong fields retrieved by queries Incorrect search criteria Field order Multiple database rows returned, single row expected Currency of data on screens Window object/DB field correspondence Correct window modality? Window system commands not available/don’t work Control state alignment with state of data in window? Focus on objects needing it? Menu options align with state of data or application mode? Action of menu commands aligns with state of data in window Synchronization of window object content State of controls aligns with state of data in window?
Testing Strategies include Functionality
Unit testing (Buttons) Integrations Testing (synchronizations) System Testing (functional behaviors according
to requirements or functional testing) Non-Functionality(Quality)
Usability testing Security testing …
Model-Based Approach to test GUI requires: Identify components and Events Select a hierarchal formal model (e.g., EFSM)
to represent GUI elements (components) Intra vs. inter components Use model to generate threats or event
sequences of various lengths corresponding to visible & observable system outputs▪ Total number of events sequences increases when
the length increase▪ It might impractical to test for ALL possible event
sequences▪ be selective?
Unit and Integration testing minimally needed
Main focus is on System Testing Model?
▪ Event-driven Petri nets (EDPNs)▪ Testing threads
Event drivenUnit “button level” testingNot much integration testingSystem level testing: Models
UML Behavioral models StateCharts Finite State Machines
Starts testing (functional and structural) of user-supplied code for buttons Compute
▪ Valid and invalid data (e.g., non-numerical, etc) Clear Quit
Two approaches Using Drivers (good) Using GUI (system level for input/output
events)
Not too much of Integration testing Three possible options:
Focus on all logic in one place and use the value of the option buttons as conditions in IF tests
Use OO approach using methods invocation to exchange the rate value
Use visual Basic▪ Event procedures for each option button uses constant
value for specific exchange rate▪ (e.g. Private Sub OptEU_click () exchange =1.35 End
sub)
Heavily usage of System testingNeed event-driven model
Event-Driven PN (EDPN) to specify and to generate scenarios/threads
Tables 19.1 and Table 19.2
The process to generate threads (positive/negative scenarios) include Map the elements of CCP to EDPN
▪ Map input/out events to input /output events of EDPN▪ Map Data to EDPN data places▪ Map each Action to the transition in EDPN
Create EDPN for each ASF (tasks) Compose the EDPNs
▪ Use ASF graph
Generate a subset (or suitable?) of threads
How many threads are needed? Coverage criteria?
Reasonable coverage includes Test ALL port inputs Test All port outputs Test All ASF (tasks or requirements)
▪ Difficult to test each ASF Test Threats
▪ There are too many▪ Need to be selective
Definition: EDPN is tripartite-directed graph (P, D, S, In, Out) P: a set of port events D: a set of data places S: a set of transitions In: a set of ordered Paris from (P D) S Out: a set of ordered pairs from S (P D)
P, D, S correspond to Data, Input/output Events, Action,
Tuple (p4, d2, p12, p17,p21)
description
m1 (1,0,0,0,0) S4 enabled; s4 fired
m2 (0,1,1,1,1) Nothing enabled
m3
..
mn
Represent the snap shot of the simulating EDPN
Port Input Events P1: Enter US Dollar Amount P2: Click on Brazil P3: Click on Canada P4: Click on European Union P5: Click on Japan P6: Click on Compute Button P7: Click on Clear Button P8: Click on Quit Button
Output Events P9: Display U.S. dollar amount P10: Display Brazilian Reals P11: Display Canadian dollars P12 :Display European Community Euros P13: Display Japanese Yen P14: Display ellipsis P15: Indicate Brazil P16: Indicate Canada P17: Indicate European Community P18: Indicate Japan
Output Event P19: Reset selected country P20: Reset Brazil P21: Reset Canada P22: Reset European Community P23: Reset Japan P24: Reset equivalent currency amount P25: End application
Atomic System Functions (or actions) maps to transition S1: Store US Dollar amount S2: Sense Click on Brazil S3: Sense click on Canada S4: Sense click on EU S5: Sense click on Japan S6: Sense click on clear button S7: sense click on the Clear button S8: Sense click on Quit button
D1: US dollar amount enteredD2: country selected
The composition is not defined Place fusions?
▪ Looks like it Transition fusions?
Consider a set of threads T = {T1, T2, T3, T4} Scenario 1: 1) enter US amount, 2) select EU, 3) press
compute button, 4) press quit T1 = {s1, s4, s6, s8}
Scenerio2: 1) User enters US$, 2) Click on Brazil, 3) Clicks on Compute, Clicks on Clear button) T2 = {s1, s2, s6, s7}
Scenario 3: T3 = {s3, s1, s6, s7}
Scenario 4: T4 = {s5, s1, s7, s8}
In general the set of T covers (minim set of usages for CCP) Every action (or S) Every port input (every input data and input event) Every port output (every output data and output event)
Next-level user behaviorCommon usage scenario
Converts amount to all 4 currencies, clears and quits
T5 = [s1, s2, s6, s3, s6, s4, s6, s5, s6, s7, s8]
Unexpected user behavior (negative scenario) Neg-Sencario1: User changes his/her mind
about currency T6 = [s1, s2, s3, s4, s5, s6, s7, s8]
unexpected behavior (negative scenario) Neg-Scenario2:User toggles between 2
countries, then quits T7 = [s1, s2, s3, s2, s3, s2, s3, s8]
…
Unit testing & integration testing not important
System testing most complicated test.
ASFs and EDPNs can help identify and validate test cases Valid usages (positive scenarios) Invalid usages (negative scenarios)
How to use MBT to test GUI? How to measure the benefit and cost of using MBT
in GUI? Usability testing/evaluation: requires specified
requirements or formal models of GUI Expert reviews
▪ Heuristic evaluation▪ Guidelines review▪ Consistency inspection▪ Cognitive walkthrough▪ Formal usability inspection
Usability Testing and Laboratories Surveys Instruments Acceptance tests Evaluation during Active Use
Software Testing by P. JorgensenModel-Based Testing by Utting