[[TracNav(TOC|nocollapse)]] = Usability Analysis = AutoQUEST provides support for analysing the usability of a software. For this, it can be provided with recorded or manually created usage sessions. AutoQUEST transforms them into task trees and analyses them for known usability problems. As an example, a user may click three buttons of a user interface always in the same order. As she has to click three buttons, this is less efficient than clicking only one button that comprises the functionality of clicking the three buttons. AutoQUEST detects this and proposes to combine the three buttons to one. The following sections provide more details. == Generating Usage Models == The first step of AutoQUESTs usability analysis is the creation of usage models. Usage models can describe the interactions of a user performed on a GUI as well as calls to an API. The simplest usage model is a sequence of elementary actions. An action is, e.g., clicking with a mouse or pressing a key on the keyboard. A combination of several actions form a task. As an example, the task of entering a word into a textfield is a combination of actions, such as clicking on the textfield and pressing and releasing keys. Tasks and actions can be combined to form a higher level task. For example, the task of filling out a form presented by a software is made up of several tasks for entering values into textfields and a final click on a confirmation button. Furthermore, the task of filling out the form can be part of another higher level task. Therefore, we organize the tasks in task trees. A task tree is a structure for a task that a user or another system performs with a software. It decomposes a task into subtasks, which can be further subdivided. Each task and its subtasks are represented as nodes in the task tree. The leaf nodes of a task tree represent the actions a user must perform to fulfill the overall task. The subtasks of a parent task are set into temporal relationship. This defines the order in which they must be executed to fulfill the parent task. The input for generating task trees in AutoQUEST are sequences of elementary actions. Those can be manually defined or recorded using the monitors provided by AutoQUEST. AutoQUEST then combines actions that logically belong together into tasks. For example, it creates a task for all actions that took place in the same panel of a GUI. In a next step, AutoQUEST identifies iterations of tasks. Finally, AutoQUEST identifies selections between different tasks that a user can choose from at a specific point of using a software. The result is a condensed task tree, that shows all possible action combinations. The task tree model is not fully correct, as the analysed sequences do not contain all possible actions. However, it provides sufficient information to perform a usability analysis for the concrete action sequence that was analysed. == Generating Interface Models == For its subsequent usability analysis, AutoQUEST requires a model of the user interface. This is determined based for the action sequences. The action sequences contain the actions that took place as well as the interface elements that were used. The latter one are extracted and combined to an interface model. == Analysing Usability == To assess the usability of a software, AutoQUEST first analyses the generated task trees. Those show initial usability issues. As an example, a task tree should not contain too many iterations, as users should not be forced to iterate something. Furthermore, a task should not be split up into too many subtasks that have to be executed in exactly one sequence. Users usually have problems in performing more than 7 steps in a specific order to achieve a goal. In a next step, the usability analysis also includes the interface model. As an example, AutoQUEST may detect, that most actions of the user are done on text fields. This may be OK for very specific applications, but usually, it is much more easy for users to enter data using GUI elements like date choosers, combo boxes, etc. Therefore, AutoQUEST also identifies potential of improving the interaction design of a user interface. Finally, AutoQUEST analyses task and interface element combinations. It searches for repetitions of similar or equal action and task sequences that are executed using the same interface elements. If it finds one, it proposes to combine the action or task sequence into one action or task by providing an interface element that when being used executes the sequence internally. This can be combined with the automatic detection and recording of macros.