Checklist of BVA ,Equivalence partitioning and GUI
Equivalence Partitioning
Black-box technique that divides the input domain into classes of data from which test cases can be derived. An ideal test case uncovers a class of errors that might require many arbitrary test cases to be executed before a general error is observed. It is based on an evaluation of equivalence classes for an input condition.
An equivalence class represents a set of valid or invalid states for input conditions.
Equivalence classes may be defined according to the following guidelines:
1) If an input condition specifies a range, one valid and two invalid equivalence classes are defined.
2) If an input condition requires a specific value, then one valid and two invalid equivalence classes are defined.
3) If an input condition specifies a member of a set, then one valid and one invalid equivalence class are defined.
4) If an input condition is Boolean, then one valid and one invalid equivalence class are defined.
Boundary Value Analysis
This method leads to a selection of test cases that exercise boundary values. It complements equivalence partitioning since it selects test cases at the edges of a class. Rather than focusing on input conditions solely, BVA derives test cases from the output domain also.
BVA guidelines include:
1) If input condition specifies a ranges bounded by a and b, test cases should include values a and b and just above and just below a and b respectively.
2) If an input condition specifies a number of values, test cases should be developed to exercise the minimum and maximum numbers and values just above and below these limits.
3) Apply guidelines 1 and 2 to the output.
4) If internal data structures have prescribed boundaries, a test case should be designed to exercise the data structure at its boundary.
GUI
The flexibility of GUI has led to difficulty in the design and execution of test cases. When the same look and feel design is used, a series of standard test cases are used.
For windows:
Will the window open properly based on related typed or menu-based commands?
Can the window be resized, moved, scrolled?
Is all data content contained within the window properly addressable with a mouse, function keys, directional arrows, and keyboard?
Does the window properly regenerate went it is overwritten and then recalled?
Are all functions that relate to the window available when needed?
Are all functions that related to the window operational?
Are all relevant pull-down menus, tool bars, scroll bars, dialog boxes and buttons, icons, and other controls available and properly displayed for the window?
When multiple windows are displayed, is the name of the window properly represented?
Is the active window properly highlighted?
If multitasking is used, are all windows updated at appropriate times?
Do multiple or incorrect mouse picks within the window cause unexpected side effects?
Are audio and/or color prompts within the window or as a consequence of window operations presented according to specification?
Does the window properly close?
For pull down menus and mouse operations:
Is the appropriate menu bar displayed in the appropriate context?
Does the application menu bar display system related features (e.g., a clock display)?
Do pull-down operations work properly?
Do break-away menus, palettes, and tool bars work properly?
Are all menu functions and pull down sub-functions properly listed?
Are all menu functions properly addressable by the mouse?
Are text typeface, size and format correct?
Is it possible to invoke each menu function using its alternative text-based command?
Are menu functions highlighted (or grayed-out) based on the context of current operations within a window?
Does each menu function perform as advertised?
Are the names of menu functions self explanatory?
Is help available for each menu item and is it context sensitive?
Are mouse operations properly recognized throughout the interactive context?
If multiple clicks are required, are they properly recognized in context?
If the mouse has multiple buttons, are they properly recognized in context?
Do the cursor, processing indicator (e.g., an hour glass or clock), and pointer properly change as different operations are invoked?
Data entry:
Is alphanumeric data entry properly echoed and input to the system?
Do graphical modes of data entry (e.g., a slide bar) work properly?
Is invalid data properly recognized?
Are data input messages intelligible?