Vytautas Kasparavičius, IFM - 0/2 gr. Graphical user interface testing
What is it? graphical user interface (GUI) testing is the process of testing a product's graphical user interface to ensure it meets its written specifications
Problems Size Word. Pad – 325 possible GUI operations Sequence Opening a file in Word application Regression testing Significant changes in GUI
Problems 2 Error localization Complexity of GUI Custom application style Correctness of result Test coverage
Coverage GUI states tested Code functionallity covered
How to cover everything? Split application into test components (component = window) Test each component thoroughly Test integration of components Plan
Planning and AI Determining Operations Initial state Goal Plan (how to achieve goal from initial state)
Problems again. . . Expert users Path is pretty predictable and straight-forward Novice users Path is pretty much random How to simulate novice users?
Solution Genetic algorithms Novice paths are not random paths A novice user will learn over time and generally won’t make the same mistakes repeatedly A novice user is following a plan and probably has some domain or system knowledge.
Tools Selenium (Web UI) Robotium (Android OS) SWTBot (SWT applications) Auto. Hot. Key Tellurium White (SWT, WPF, Silverlight, win 32, win. Forms) And many others
Robotium example solo. click. On. Text("More"); solo. click. On. Text("Preferences"); solo. click. On. Text("Edit File Extensions"); Assert. assert. True(solo. search. Text("rtf"));
Questions
Questions for audience Why is GUI testing so hard? How to measure GUI test coverage? Name 2 -3 GUI testing tools What are the advantages/disadvantages of automated GUI testing?