188,938 research outputs found

    Stateful Testing: Finding More Errors in Code and Contracts

    Full text link
    Automated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new test cases that improve an existing test suite. The generated test cases are designed to violate the dynamically inferred contracts (invariants) characterizing the existing test suite. As a consequence, they are in a good position to detect new errors, and also to improve the accuracy of the inferred contracts by discovering those that are unsound. Experiments on 13 data structure classes totalling over 28,000 lines of code demonstrate the effectiveness of stateful testing in improving over the results of long sessions of random testing: stateful testing found 68.4% new errors and improved the accuracy of automatically inferred contracts to over 99%, with just a 7% time overhead.Comment: 11 pages, 3 figure

    Creating information delivery specifications using linked data

    Get PDF
    The use of Building Information Management (BIM) has become mainstream in many countries. Exchanging data in open standards like the Industry Foundation Classes (IFC) is seen as the only workable solution for collaboration. To define information needs for collaboration, many organizations are now documenting what kind of data they need for their purposes. Currently practitioners define their requirements often a) in a format that cannot be read by a computer; b) by creating their own definitions that are not shared. This paper proposes a bottom up solution for the definition of new building concepts a property. The authors have created a prototype implementation and will elaborate on the capturing of information specifications in the future

    Efficient Identification of Equivalences in Dynamic Graphs and Pedigree Structures

    Full text link
    We propose a new framework for designing test and query functions for complex structures that vary across a given parameter such as genetic marker position. The operations we are interested in include equality testing, set operations, isolating unique states, duplication counting, or finding equivalence classes under identifiability constraints. A motivating application is locating equivalence classes in identity-by-descent (IBD) graphs, graph structures in pedigree analysis that change over genetic marker location. The nodes of these graphs are unlabeled and identified only by their connecting edges, a constraint easily handled by our approach. The general framework introduced is powerful enough to build a range of testing functions for IBD graphs, dynamic populations, and other structures using a minimal set of operations. The theoretical and algorithmic properties of our approach are analyzed and proved. Computational results on several simulations demonstrate the effectiveness of our approach.Comment: Code for paper available at http://www.stat.washington.edu/~hoytak/code/hashreduc

    LIBOPT - An environment for testing solvers on heterogeneous collections of problems - Version 1.0

    Get PDF
    The Libopt environment is both a methodology and a set of tools that can be used for testing, comparing, and profiling solvers on problems belonging to various collections. These collections can be heterogeneous in the sense that their problems can have common features that differ from one collection to the other. Libopt brings a unified view on this composite world by offering, for example, the possibility to run any solver on any problem compatible with it, using the same Unix/Linux command. The environment also provides tools for comparing the results obtained by solvers on a specified set of problems. Most of the scripts going with the Libopt environment have been written in Perl

    Implementing path coloring algorithms on planar graphs

    Get PDF
    Master's Project (M.S.) University of Alaska Fairbanks, 2017A path coloring of a graph partitions its vertex set into color classes such that each class induces a disjoint union of paths. In this project we implement several algorithms to compute path colorings of graphs embedded in the plane. We present two algorithms to path color plane graphs with 3 colors based on a proof by Poh in 1990. First we describe a naive algorithm that directly follows Poh's procedure, then we give a modified algorithm that runs in linear time. Independent results of Hartman and Skrekovski describe a procedure that takes a plane graph G and a list of 3 colors for each vertex, and computes a path coloring of G such that each vertex receives a color from its list. We present a linear time implementation based on Hartman and Skrekovski's proofs. A C++ implementation is provided for all three algorithms, utilizing the Boost Graph Library. Instructions are given on how to use the implementation to construct colorings for plane graphs represented by Boost data structures
    • …
    corecore