LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Derivation and validation of software metrics
Derivation and validation of software metrics
An overview and comparative classification of program slicing techniques
Journal of Systems and Software
Property-Based Software Engineering Measurement
IEEE Transactions on Software Engineering
An experimental evaluation of data flow and mutation testing
Software—Practice & Experience
Specification-based testing of synchronous software
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Computation of Dynamic Program Slices for Unstructured Programs
IEEE Transactions on Software Engineering
Programmers use slices when debugging
Communications of the ACM
Software Metrics: A Rigorous Approach
Software Metrics: A Rigorous Approach
Computer
Impact of System Partitioning on Test Cost
IEEE Design & Test
Testability Measurements for Data Flow Designs
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Robustness and Diagnosability of OO Systems Designed by Contracts
METRICS '01 Proceedings of the 7th International Symposium on Software Metrics
ISSRE '98 Proceedings of the The Ninth International Symposium on Software Reliability Engineering
Analyzing Testability on Data Flow Designs
ISSRE '00 Proceedings of the 11th International Symposium on Software Reliability Engineering
Design by Contract to Improve Software Vigilance
IEEE Transactions on Software Engineering
Diagnosing errors in dbc programs using constraint programming
CAEPIA'05 Proceedings of the 11th Spanish association conference on Current Topics in Artificial Intelligence
Simplifying diagnosis using LSAT: a propositional approach to reasoning from first principles
CPAIOR'05 Proceedings of the Second international conference on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems
Hi-index | 0.00 |
Classical views on testing and their associated testing models are not dealing with the question of fault repairing but only focus on fault detection. Diagnosis consists of determining the nature of a detected fault, of locating it and hopefully repairing it. Correlatively, the only standardized quality factors implied in the detection/repair aspects of software engineering are testability and maintainability: those quality factors are misleading since they do not pinpoint this question of the location/repairing effort, that can be identified under the concept of diagnosability. This paper is thus concerned with diagnosability, its definition and the axiomatization of its expected behavior. The paper aims at: • introducing and analysing diagnosability as a significant and complementary dimension of software testability, • producing a high-level definition and axiomatization of a diagnosability measurement generic enough to be adapted to various software paradigms: this property-based approach serves as a measurement "specification", independent on the application context and thus reusable, • detailing a diagnosability measure dedicated to data-flow software and especially test strategies impact on diagnosis and testing effort (from measure implementation to case study), • illustrating the reuse of the high-level axiomatization to the specific question of measuring the impact of assertions (or contracts for a designed by contract OO system) on diagnosis effort and preciseness.Throughout the paper, the concepts are illustrated on a case study provided by an industrial partner. At last, the reusability of the axiomatization is illustrated by proposing a measure of the impact of assertions (or contracts in a design by contract approach) on global software diagnosability. Main lessons concern both the diagnosability significance as a quality factor and the interest of an axiomatization-based methodology for building trustable software measurement.