Each web-based application or function comprises of different elements and phases visible to the web users.
Consequently, state transition based finite-state machines models is proper for this type of applications.
There are some basic components of finite-state machines:
- Every web page corresponds to a slate of infinite-state machines. Any page can be the initial state and any page can be the final state.
- The input and output associated with navigations are rather simple and straight forward: the input is the clicking of the embedded link demonstrated as highlighted content; and the corresponding output is the loading of the requested page or content with accompanying messages indicating the HTML status, error, or other messages.
- State transitions correspond to web navigations following hypertext links embedded in HTML documents and other web contents. One special case is that a user may choose to follow a previously saved link or to directly type a URL.
Link checking can be considered as part of finite-state machines based testing for transition coverage, but not based on formal models. The general finite-state machines can guide the general testing of the web navigations.
Actually, web robots used by various Internet search engines or index services generally “crawl” the web by systematically following the embedded hypertext links to create indexes or databases of the general web contents.
There is one evident obstacle to web testing using such finite-state machines: the number of web pages for even a moderate-sized web site can be thousands or much more. Therefore, there would be great numbers of states infinite-state machines, which makes any detailed testing beyond simple indexing unrealizable, even with some automated support.
Even such simple indexing by the most powerful robot for major web search engines only covers a small percentage of the total web. But the usage and problem dispensation among various software elements are highly rugged, which is also shown to be true among various web contents.
Therefore, some type of selective testing is needed to focus on highly-used and problematic areas to assure maximal web site reliability improvement.