The system under test (SUT) is a web application in the financial sector, the same application mentioned in a previous post.
The data presented below come from one month of work by our team, and derive from analysing the commits of the code base that includes the test cases themselves and the software test harness that supports their execution.
This test harness (testware based on JUnit and Cucumber) is automatically generated by a proprietary tool that compiles into Java source files the finite state automata models specifying the expected behavior of the SUT. In particular we use UML State Machines. Each state of the model represents a state of a widget of the UI, and each transition represents an action that a user can do.
Our tool transforms states and transitions into Java classes and methods that can simulate an execution of the automata against a sequence of events, each sequence representing a test case.
The test harness can “touch” the SUT in a number of touch points, which correspond to action points of the SUT (buttons, links, text edit fields, etc.) and observation points (other elements of the user interface, called oracles, that are used in test conditions). Both action and observation points need some way to identify the specific elements in the DOM of the user interface, which are called “locators“; they are XPath expressions involving unique ID, CSS classes, HTML tags and attributes.