Tutorial 3:

 

Testing Graphical User Interfaces (GUI)

Professor Fevzi Belli


[ About the Speaker ]  [ Abstract ]  [ Outline

 

 

About the Speaker:

Dr. Belli is a Professor of Computer Science, over­seeing more than 25 years of experience in software development, quality assurance and testing. He was senior scientist with the German National Research Center for Information Tech­nology and, prior to this, systems engineer with a German computer manufacturer in Munich, where he headed several projects, devel­oping real-time information systems. 

 

 

Abstract:

Graphical User Interfaces (GUIs) are very popular and common designing computer-based systems. Testing GUIs is, on the other hand, a difficult and challenging task, because the input space possesses a great, potentially infinite number of combinations of inputs and events that act as system outputs, strongly interacting with the inputs. Considering possible external effects make the un­derstanding of the full range of the GUI even more difficult.

Nevertheless, most Human-Computer-Interfaces will be designed and implemented via GUI nowadays. The tutorial will summarize traditional methods and novel ones that we have also been using in real projects. The favored methods concentrate on finite-state machines, resulting in higher test process efficiency, also for test planning and management.  

 

 

Outline:

 

1.  What is This Tutorial About, and What is Not About?

1.1  Software is More than Computer Programs

1.2   With a Little Help of Friends – Configuration Management

1.3   Three Worlds will be Visible when Developing Software

1.4  What are Software Faults? What are Common Countermeasures?

1.5  Costs of Faults

1.6  Checks to Detect Software Faults

1.7  Summary of Software Test Methods

 

2.  What is User Interface (UI) – What is all about Graphical User Interface (GUI)?

2.1  Historical Background

2.2   Major Components of a GUI

2.3  How can Usability Engineering Help to Develop Better GUI?

2.4  Modelling is an Engineering Task

2.5  Some “Rules of Thumb” for Design and Inspection of GUI

2.6  What is a good GUI?

2.7  Is GUI Testing Really Different?

 

3.  Finite State Testing of GUI

3.1  Terminology, Test Characteristics

3.1.1  Complete Interaction Sequences (CIS)

3.1.2   Fault Model

3.2  Scalability

3.2.1  Generating Compatible Interaction Pairs (IP)

3.2.2   Minimal Set of CIS for Completely Covering All IP

3.2.3  Generating Incompatible Interaction Pairs (IIP)

3.2.4   Minimal Set of Prototypes for Completely Covering All IIP

3.2.5  Special Cases

3.3  Reduction of the Test Complexity through State Reduction

3.3.1  Abstraction of Strongly Connected Components

3.3.2  Merging Structural Symmetry Components

3.4  A Strategy for Efficient, Scalable Testing of GUI

3.5  Advantages of the Finite State Testing

 

4.  Event Algebra for Diagnosis, Localization, and Self-Correction of Faults

4.1  Analysis of Faulty IS (FIS)

4.2  Regular Expressions for Systematic Fault Detection

4.2.1  Indexing the Expression

4.2.2  Analysis of FIS

4.2.3  Constructing the Fault-Correction Areas

4.3  Enumerability through Expansion of Equivalent Regular Expressions

 

5.  Test Planning Methods of Knowledge Engineering

5.1  Elements of Planning

5.2  Model-Based vs. Goal-Driven Test Plan Generation

5.3  Predicate Logic for Test Plan Selection

 

6.   Tools for GUI Testing

 

7.  Further Reading, Working Groups, Relevant Links