Information-flow and data-flow analysis of while-programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
Program construction and verification
Program construction and verification
An algorithm for the derivation of codefinitions in computer programs
Information Processing Letters
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Information Processing Letters
Information Processing Letters
Journal of Systems and Software
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
A Theory of Fault-Based Testing
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Approximate Reasoning About the Semantic Effects of Program Changes
IEEE Transactions on Software Engineering
Dynamic slicing of computer programs
Journal of Systems and Software
Constraint-Based Automatic Test Data Generation
IEEE Transactions on Software Engineering
Estimating the Probability of Failure When Testing Reveals No Failures
IEEE Transactions on Software Engineering
PIE: A Dynamic Failure-Based Technique
IEEE Transactions on Software Engineering
The Diclique Representation and Decomposition of Binary Relations
Journal of the ACM (JACM)
The Science of Programming
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Hi-index | 0.00 |
Programming faults are defined in the framework of the program verification schema (proof outline). Component S in program P is faulty if P cannot be proved correct with the current implementation of S but it can be proved using the implementation specification for S. A programming error is a state that violates that specification. Conditions for error propagation and masking are expressed in terms of the relationships between the implementation and design specification of S, which defines the role of S in the overall design of P. Errors propagate due to the dependencies between program entities. It is shown that “classical” static dependencies, developed for the purpose of code optimization, are inadequate for the analysis of error propagation since they do not capture events that occur on individual paths through the program. A novel path analysis method is proposed to identify variables potentially corrupted on a same path due the existence of the fault. The method is based upon error propagation axioms. The axioms are used to define path relations for structured programming constructs. The relations provide a conservative structural approximation to the semantical theory of error creation and propagation and are shown useful in testing, debugging and static analysis.