ACM SIGSOFT Software Engineering Notes · 2002 · 137 citations · 43 references
ComputingComputer EngineeringComputer ScienceFormal MethodsProgramming LanguagesSoftware EngineeringSoftware TestingStatic AnalysisStatic Code AnalysisType CheckingVerificationDynamic Analysis For TestingDynamic Program AnalysisExecutable SpecificationsProgram CorrectnessRuntime AnalysisSemantic InformationStatic Type CheckingStatic Verification
Producing specifications by dynamic (runtime) analysis of program executions is potentially unsound, because the analyzed executions may not fully characterize all possible executions of the program. In practice, how accurate are the results of a dynamic analysis? This paper describes the results of an investigation into this question, determining how much specifications generalized from program runs must be changed in order to be verified by a static checker. Surprisingly, small test suites captured nearly all program behavior required by a specific type of static checking; the static checker guaranteed that the implementations satisfy the generated specifications, and ensured the absence of runtime exceptions. Measured against this verification task, the generated specifications scored over 90% on precision, a measure of soundness, and on recall, a measure of completeness.This is a positive result for testing, because it suggests that dynamic analyses can capture all semantic information of interest for certain applications. The experimental results demonstrate that a specific technique, dynamic invariant detection, is effective at generating consistent, sufficient specifications for use by a static checker. Finally, the research shows that combining static and dynamic analyses over program specifications has benefits for users of each technique, guaranteeing soundness of the dynamic analysis and lessening the annotation burden for users of the static analysis.
43
Learning Logical Definitions from Relations
J. R. Quinlan · Machine Learning · 1990 · 1.4K citations · Full text
James C. Corbett, Matthew B. Dwyer, John Hatcliff et al. · 2000 · 1.1K citations · Full text
An Introduction to Input/Output Automata
Nancy Lynch, Mark R. Tuttle · Formal Aspects of Computing · 2026 · 1K citations · Full text