130 likes | 305 Views
Software testing techniques Graphical user interface testing. Presentation on the seminar Kaunas University of Technology. 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.
E N D
Software testing techniquesGraphical user interface testing Presentation on the seminar Kaunas University of Technology
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 • WordPad – 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 functionality 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) AutoHotKey Tellurium White (SWT, WPF, Silverlight, win32, winForms) And many many others
Robotium example solo.clickOnText("More");solo.clickOnText("Preferences");solo.clickOnText("Edit File Extensions");Assert.assertTrue(solo.searchText("rtf"));
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?