- Software applications are tested through the use of other software, which simulates human input or otherwise exercises program and verifies the software under test remains healthy.
- The authorship of these tests is a laborious process, error-prone, and only good for finding certain kinds of software bugs.
- Software can be modeled as a state graph, that is, a set of nodes representing states (in a webmail system: home page, inbox, compose new mail, sent mail page, settings, etc) with edges representing actions one can take from a state which may cause the system to transition to a new state. (for more on graphs, see Dijkstra)
- Many common software bugs emerge as behaviors in the system under test which do not match the expected behavior generated by such a model. These types of bugs are hard to write new tests to detect due to their obscure nature. (For instance, in a phone system, placing 21 calls on hold will crash a phone exchange. Nobody would write a test of 21 lines being on hold, but you can bet it'll happen catastrophically in a busy 911 call center eventually.)
- Though current test design practices do not explicitly build software models based on these state models, test authors naturally design tests in a way that is respectful of this modelability and in fact is easily adaptable to such a venture.
- The first novel contribution of this thesis is a software library, named Yeager, which permits test authors to explicitly annotate that certain pieces of test code cause the transition of the software under test from one state to another. The library also provides tools for the analysis of the resultant state model and the automatic generation of arbitrarily long but theoretically valid test sequences which should be helpful in revealing inconsistencies between the model and the system under test (viz. bugs).
- The concept of computer-generating long sequences of tests to automatically detect bugs in software is part of a family of testing strategies called High Volume Automated Testing. HiVAT is simultaneously young and old. It's a relatively new concept in academia but has roots in many industrial groups, including HP, Xerox, and others. I have found in my literature review six different purported inventors.
- The second novel contribution of this thesis is a structured literature review of the HiVAT family tree, and an attempt to reconcile the varying histories of the field.
elementc / thesis Goto Github PK
View Code? Open in Web Editor NEWcasey's MS thesis
License: Other