Git Product home page Git Product logo

thesis's Introduction

In Summary...

  • 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.

thesis's People

Contributors

elementc avatar

Watchers

James Cloos avatar  avatar

thesis's Issues

Format approval from Office of Graduate Programs

Bring several pages of your printed thesis to the Office of Graduate Programs early in the writing phase to confirm that your preferred format meets all Graduate School formatting requirements. (e.g. Sample Title Page; Signature Page; Table of Contents; pages with tables, figures, photos etc.; References; Appendices).

I should complete this with deliberate haste, though I don't anticipate any action items to arise from this task.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.