Collecting and categorizing software error data in an industrial environment
Journal of Systems and Software - Special issue on the fifth Minnowbrook workshop on software performance evaluation
Concurrent runtime checking of annotated Ada programs
Proc. of the sixth conference on Foundations of software technology and theoretical computer science
ANNA: a language for annotating Ada programs
ANNA: a language for annotating Ada programs
The Turing programming language
Communications of the ACM
The Z notation: a reference manual
The Z notation: a reference manual
ICSE '89 Proceedings of the 11th international conference on Software engineering
The Use of Self Checks and Voting in Software Error Detection: An Empirical Study
IEEE Transactions on Software Engineering
Software—Practice & Experience - Unix tools
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
The C programming language
An event-based model of software configuration management
SCM '91 Proceedings of the 3rd international workshop on Software configuration management
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Run-time consistency checking of algebraic specifications
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Extensions to the C programming language for enhanced fault detection
Software—Practice & Experience
Efficient detection of all pointer and array access errors
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
SIGAda '85 Proceedings of the 1985 annual ACM SIGAda international conference on Ada
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Object-Oriented Software Construction
Object-Oriented Software Construction
Computer
New assertion concepts for self-metric software validation
Proceedings of the international conference on Reliable software
Some experience with automated aids to the design of large-scale reliable software
Proceedings of the international conference on Reliable software
Design of self-checking software
Proceedings of the international conference on Reliable software
The complete transformation methodology for sequential runtime checking of an ANNA subset
The complete transformation methodology for sequential runtime checking of an ANNA subset
Stanford Pascal Verifier user manual
Stanford Pascal Verifier user manual
Automatic runtime consistency checking and debugging of formally specified programs
Automatic runtime consistency checking and debugging of formally specified programs
Dynamic Verification of C++ Generic Algorithms
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Using Test Oracles Generated from Program Documentation
IEEE Transactions on Software Engineering
A language and environment for architecture-based software development and evolution
Proceedings of the 21st international conference on Software engineering
Highly reliable upgrading of components
Proceedings of the 21st international conference on Software engineering
Residual test coverage monitoring
Proceedings of the 21st international conference on Software engineering
Adding more “DL” to IDL: towards more knowledgeable component inter-operability
Proceedings of the 21st international conference on Software engineering
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Increasing client-side confidence in remote component implementations
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Behavioral contracts and behavioral subtyping
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Contract Soundness for object-oriented languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Requirements-Based Monitors for Real-Time Systems
IEEE Transactions on Software Engineering
On systematic design of globally consistent executable assertions in embedded software
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
Investigating the use of analysis contracts to support fault isolation in object oriented code
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Embedding built-in tests in hot spots of an object-oriented framework
ACM SIGPLAN Notices
An Architecture-Based Approach to Self-Adaptive Software
IEEE Intelligent Systems
Designing a resourceful fault-tolerance system
Journal of Systems and Software
Harnessing curiosity to increase correctness in end-user programming
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Aspect Composition Applying the Design by Contract Principle
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Enhancing the Pre- and Postcondition Technique for More Expressive Specifications
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II
Interface Compatibility Checking for Software Modules
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Component Metadata for Software Engineering Tasks
EDO '00 Revised Papers from the Second International Workshop on Engineering Distributed Objects
End-user software engineering with assertions in the spreadsheet paradigm
Proceedings of the 25th International Conference on Software Engineering
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
A Framework for Detecting Interface Violations in Component-Based Software
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Method for designing and placing check sets based on control flow analysis of programs
ISSRE '96 Proceedings of the The Seventh International Symposium on Software Reliability Engineering
Investigating the use of analysis contracts to improve the testability of object-oriented code
Software—Practice & Experience
General Test Result Checking with Log File Analysis
IEEE Transactions on Software Engineering
CONSIT: a fully automated conditioned program slicer
Software—Practice & Experience
Contract-Checking Wrappers for C++ Classes
IEEE Transactions on Software Engineering
Smart monitors for composed services
Proceedings of the 2nd international conference on Service oriented computing
A Taxonomy and Catalog of Runtime Software-Fault Monitoring Tools
IEEE Transactions on Software Engineering
Early estimation of software quality using in-process testing metrics: a controlled case study
3-WoSQ Proceedings of the third workshop on Software quality
Invariants and state in testing and formal methods
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
A historical perspective on runtime assertion checking in software development
ACM SIGSOFT Software Engineering Notes
Automated generation of monitors for pattern contracts
Proceedings of the 2006 ACM symposium on Applied computing
An Integrated Development Of A Dynamic Software-Fault Monitoring System
Journal of Integrated Design & Process Science
Design by Contract to Improve Software Vigilance
IEEE Transactions on Software Engineering
Adaptive Online Program Analysis
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Assertions for the Tcl language
TCLTK'97 Proceedings of the 5th conference on Annual Tcl/Tk Workshop 1997 - Volume 5
Relationally-parametric polymorphic contracts
Proceedings of the 2007 symposium on Dynamic languages
A Comparative Study of Industrial Static Analysis Tools
Electronic Notes in Theoretical Computer Science (ENTCS)
Automatically repairing event sequence-based GUI test suites for regression testing
ACM Transactions on Software Engineering and Methodology (TOSEM)
Lazy Contract Checking for Immutable Data Structures
Implementation and Application of Functional Languages
Using assertions to help end-user programmers create dependable web macros
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Validation of contracts using enabledness preserving finite state abstractions
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatic Generation of Runtime Failure Detectors from Property Templates
Software Engineering for Self-Adaptive Systems
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Toward Translating Design Constraints to Run-Time Assertions
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards Testing and Analysis of Systems that Use Serialization
Electronic Notes in Theoretical Computer Science (ENTCS)
Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP
Electronic Notes in Theoretical Computer Science (ENTCS)
Lowering the barriers to website testing with CoTester
Proceedings of the 15th international conference on Intelligent user interfaces
A pattern logic for prompt lazy assertions in Haskell
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
UML extension for ASAM-GDI device capability description
UML'00 Proceedings of the 3rd international conference on The unified modeling language: advancing the standard
Modular aspect-oriented design with XPIs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Empirical Software Engineering
Monitor optimization via stutter-equivalent loop transformation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A semantics for lazy assertions
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Temporal higher-order contracts
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
On contract satisfaction in a higher-order world
ACM Transactions on Programming Languages and Systems (TOPLAS)
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Contracts as pairs of projections
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Supporting tools for designing-by-contract in component-based applications
MIS'04 Proceedings of the 2004 international conference on Metainformatics
Designing a domain-specific contract language: a metamodelling approach
ECMDA-FA'05 Proceedings of the First European conference on Model Driven Architecture: foundations and Applications
Amplifying the benefits of design patterns: from specification through implementation
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
State coverage: software validation metrics beyond code coverage
SOFSEM'12 Proceedings of the 38th international conference on Current Trends in Theory and Practice of Computer Science
SP 800-142. Practical Combinatorial Testing
SP 800-142. Practical Combinatorial Testing
ICFP 2002: Contracts for higher-order functions
ACM SIGPLAN Notices - Supplemental issue
Notions of aliasing and ownership
Aliasing in Object-Oriented Programming
Supporting incremental behaviour model elaboration
Computer Science - Research and Development
Supporting incremental behaviour model elaboration
Computer Science - Research and Development
Hi-index | 0.00 |
Embedded assertions have been recognized as a potentially powerful tool for automatic runtime detection of software faults during debugging, testing, maintenance and even production versions of software systems. Yet despite the richness of the notations and the maturity of the techniques and tools that have been developed for programming with assertions, assertions are a development tool that has seen little widespread use in practice. The main reasons seem to be that (1) previous assertion processing tools did not integrate easily with existing programming environments, and (2) it is not well understood what kinds of assertions are most effective at detecting software faults. This paper describes experience using an assertion processing tool that was built to address the concerns of ease-of-use and effectiveness. The tool is called APP, an Annotation PreProcessor for C programs developed in UNIX-based development environments, APP has been used in the development of a variety of software systems over the past five years. Based-on this experience, the paper presents a classification of the assertions that were most effective at detecting faults. While the assertions that are described guard against many common kinds of faults and errors, the very commonness of such faults demonstrates the need for an explicit, high-level, automatically checkable specification of required behavior. It is hoped that the classification presented in this paper will prove to be a useful first step in developing a method of programming with assertions