| GUI(Graphical User Interface) provides a popular and convenient way for the user to freely interact with the systems which makes it widely used in various software applications; it has become an important part of today’s software. It provides a hierarchical, graphical and friendly software front ends for the users of the software. However, at the same time, it also brought huge amount of code to the developers and the corresponding test work to the testers. According to statistics, the code which the software developer contributed towards implementing the GUIs of the systems is up to 50% of all the code.How to ensure the quality of GUI-based applications has attracted the attention of software testers and then becomes the focus of attention. Essentially, GUI-based software is an event-driven application. Since GUI-based software has its own characteristics, the traditional testing techniques and methods have been unable to meet the needs of GUI testing. Modeling and testing of GUIs-based system is a difficult and challenging work. In GUIs, there exist not only the input events and output events, but also the internal events. Existing research works only considered the input and output events, but seldom taking the internal events which may have very important influence on the GUI states and behaviors into account. Therefore, in GUI testing, we should not only consider input events and output events, but also the internal events. In this paper, we propose an approach to modeling and testing of GUIs-based system using the IOLTS(Input-Output LTS), and we identify the three types of events: input events, output events and internal events. We consider the three types of events, especially internal event, which is usually invisible event but in some cases it can transform into visible events and case visible change of the GUI states and behaviors. In order to decrease the state space explosion, we provide events constrains. Our modeling and testing method consists of two parts: Firstly, modeling and testing for each GUI. Secondly, modeling and testing the interaction between the GUIs. The specific steps are as follows: Firstly, the IOLTS is employed to model each of the GUIs in the system, this step we focus on input and internal events, and then the corresponding test cases are produced based on the model. Secondly, the interactions between GUIs are triggered by the corresponding output events of GUIs can be used to connect all the GUIs, this step we focus on output events to model the GUIs-based system, and then the corresponding test cases which considered the dependence between different test paths are produced based on the model.Finally, we implement a prototype tool based on our research, this tool can automatically generate visual IOLTS model and test paths which meet the migration coverage criterion, according to IOLTS quadruple which entered by the users, then we use a motivating example to verify the availability and effectiveness of the tool. |