37 research outputs found

    Theories in Practice: Easy-to-Write Specifications that Catch Bugs

    Get PDF
    Automated testing during development helps ensure that software works according to the test suite. Traditional test suites verify a few well-picked scenarios or example inputs. However, such example-based testing does not uncover errors in legal inputs that the test writer overlooked. We propose theory-based testing as an adjunct to example-based testing. A theory generalizes a (possibly infinite) set of example-based tests. A theory is an assertion that should be true for any data, and it can be exercised by human-chosen data or by automatic data generation. A theory is expressed in an ordinary programming language, it is easy for developers to use (often even easier than example-based testing), and it serves as a lightweight form of specification. Six case studies demonstrate the utility of theories that generalize existing tests to prevent bugs, clarify intentions, and reveal design problems

    Automatic continuous testing to speed software development

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004.Includes bibliographical references (p. 147-152).Continuous testing is a new feature for software development environments that uses excess cycles on a developer's workstation to continuously run regression tests in the background, providing rapid feedback about test failures as source code is edited. It is intended to reduce the time and energy required to keep code well-tested, and to prevent regression errors from persisting uncaught for long periods of time. The longer that regression errors are allowed to linger during development, the more time is wasted debugging and fixing them once they are discovered. By monitoring and measuring software projects, we estimate that the wasted time, consisting of this preventable extra fixing cost added to the time spent running tests and waiting for them to complete, accounts for 10-15% of total development time. We present a model of developer behavior that uses data from past projects to infer developer beliefs and predict behavior in new environments -in particular, when changing testing methodologies or tools to reduce wasted time. This model predicts that continuous testing would reduce wasted time by 92-98%, a substantial improvement over other approaches we evaluated, such as automatic test prioritization and changing manual test frequencies. A controlled human experiment indicates that student developers using continuous testing were three times more likely to complete a task before the deadline than those without, with no significant effect on time worked.(cont.) Most participants found continuous testing to be useful and believed that it helped them write better code faster. 90% would recommend the tool to others. We show the first empirical evidence of a benefit from continuous compilation, a popular related feature. Continuous testing has been integrated into Emacs and Eclipse. We detail the functional and technical design of the Eclipse plug-in, which is publicly beta-released.by David Saff.S.M

    EUPHORIA: End-User Construction of Direct Manipulation User Interfaces for Distributed Applications

    Get PDF
    The Programmers\u27 Playground is a software library and run-time system for creating distributed multimedia applications from collections of reusable software moduels. This paper presents the design and implementation of EUPHORIA, Playground\u27s user interface management system. Implemented as a Playground module, EUPHORIA allows end-users to create direct manipulation graphical user interfaces (GUIs) exclusively through the use of a graphics editor. No programming is required. At run-time, attributes of the GUI state can be exposed and connected to external Playground modules, allowing the user to vosualize and directly manipulate state information in remote Playground modules. Features of EUPHORIA include real-time direct manipulation graphics, constraint-based editing and visualization, imaginary alignment objects, user-definable types, and user-definable widgets with alternative representations

    Three routes to the exact asymptotics for the one-dimensional quantum walk

    Full text link
    We demonstrate an alternative method for calculating the asymptotic behaviour of the discrete one-coin quantum walk on the infinite line, via the Jacobi polynomials that arise in the path integral representation. This is significantly easier to use than the Darboux method. It also provides a single integral representation for the wavefunction that works over the full range of positions, n,n, including throughout the transitional range where the behaviour changes from oscillatory to exponential. Previous analyses of this system have run into difficulties in the transitional range, because the approximations on which they were based break down here. The fact that there are two different kinds of approach to this problem (Path Integral vs. Schr\"{o}dinger wave mechanics) is ultimately a manifestation of the equivalence between the path-integral formulation of quantum mechanics and the original formulation developed in the 1920s. We discuss how and why our approach is related to the two methods that have already been used to analyse these systems.Comment: 25 pages, AMS preprint format, 4 figures as encapsulated postscript. Replaced because there were sign errors in equations (80) & (85) and Lemma 2 of the journal version (v3

    Towards a Pharmacophore for Amyloid

    Get PDF
    Diagnosing and treating Alzheimer's and other diseases associated with amyloid fibers remains a great challenge despite intensive research. To aid in this effort, we present atomic structures of fiber-forming segments of proteins involved in Alzheimer's disease in complex with small molecule binders, determined by X-ray microcrystallography. The fiber-like complexes consist of pairs of β-sheets, with small molecules binding between the sheets, roughly parallel to the fiber axis. The structures suggest that apolar molecules drift along the fiber, consistent with the observation of nonspecific binding to a variety of amyloid proteins. In contrast, negatively charged orange-G binds specifically to lysine side chains of adjacent sheets. These structures provide molecular frameworks for the design of diagnostics and drugs for protein aggregation diseases