44 research outputs found

    Quantitative Analysis of Fault and Failure Using Software Metrics

    Get PDF
    It is very complex to write programs that behave accurately in the program verification tools. Automatic mining techniques suffer from 902013;99% false positive rates, because manual specification writing is not easy. Because they can help with program testing, optimization, refactoring, documentation, and most importantly, debugging and repair. To concentrate on this problem, we propose to augment a temporal-property miner by incorporating code quality metrics. We measure code quality by extracting additional information from the software engineering process, and using information from code that is more probable to be correct as well as code that is less probable to be correct. When used as a preprocessing step for an existing specification miner, our technique identifies which input is most suggestive of correct program behaviour, which allows off-the-shelf techniques to learn the same number of specifications using only 45% of their original input

    Project Initium and the Minimal Configuration Problem

    Get PDF
    We are given a fully-quali ed class name that contains amainmethod for launching an application,in addition to a directory containing all the source les and a list of Jar les used in the larger project. We seekto nd, isolate and minimize a set of Java source and Jar les that are necessary and sufficient for compilation,execution and dissemination of a Java system. Large projects are hard to compile and take a lot of computer andhuman resources. The minimal dissemination system is important for teaching, packaging and deployment. Thispaper describes a new feature of Project Initium. Initium is a Latin word that means:at the start

    Finding the needles in the haystack: Generating legal test inputs for object-oriented programs

    Get PDF
    A test input for an object-oriented program typically consists of asequence of method calls that use the API defined by the programunder test. Generating legal test inputs can be challenging because,for some programs, the set of legal method sequences is much smallerthan the set of all possible sequences; without a formalspecification of legal sequences, an input generator is bound toproduce mostly illegal sequences.We propose a scalable technique that combines dynamic analysis withrandom testing to help an input generator create legal test inputswithout a formal specification, even for programs in whichmost sequences are illegal. The technique uses an example executionof the program to infer a model of legal call sequences, and usesthe model to guide a random input generator towards legal butbehaviorally-diverse sequences.We have implemented our technique for Java, in a tool calledPalulu, and evaluated its effectiveness in creating legal inputsfor real programs. Our experimental results indicate that thetechnique is effective and scalable. Our preliminary evaluationindicates that the technique can quickly generate legal sequencesfor complex inputs: in a case study, Palulu created legal testinputs in seconds for a set of complex classes, for which it took anexpert thirty minutes to generate a single legal input

    Toasters, Seat Belts, and Inferring Program Properties

    Full text link

    Toasters, Seat Belts, and Inferring Program Properties

    Get PDF
    Abstract. Today's software does not come with meaningful guarantees. This position paper explores why this is the case, suggests societal and technical impediments to more dependable software, and considers what realistic, meaningful guarantees for software would be like and how to achieve them. If you want a guarantee, buy a toaster. Clint Eastwood (The Rookie, 1990
    corecore