Information Processing Letters
The infeasibility of experimental quantification of life-critical software reliability
SIGSOFT '91 Proceedings of the conference on Software for citical systems
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
Faults on its sleeve: amplifying software reliability testing
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
Software testability: an experiment in measuring simulation reusability
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Predicting dependability by testing
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
On the Use of Testability Measures for Dependability Assessment
IEEE Transactions on Software Engineering
On testable object-oriented programming
ACM SIGSOFT Software Engineering Notes
A Critique of Software Defect Prediction Models
IEEE Transactions on Software Engineering
Testability, fault size and the domain-to-range ratio: An eternal triangle
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
On built-in test reuse in object-oriented framework design
ACM Computing Surveys (CSUR)
On coping with real-time software dynamic inconsistency by built-in tests
Annals of Software Engineering
Embedding built-in tests in hot spots of an object-oriented framework
ACM SIGPLAN Notices
Critical Analysis of the PIE Testability Technique
Software Quality Control
Predicting How Badly "Good" Software Can Behave
IEEE Software
On Building Testable Software Components
ICCBSS '02 Proceedings of the First International Conference on COTS-Based Software Systems
Constructing Self-Testable Software Components
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
Increasing the Testability of Object-Oriented Frameworks with Built-in Tests
AISA '02 Proceedings of the First International Workshop on Advanced Internet Services and Applications
Reliability and Risk Analysis for Software that Must be Safe
METRICS '96 Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results
Reducing Uncertainty About Common-Mode Failures
ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
Analyzing Testability on Data Flow Designs
ISSRE '00 Proceedings of the 11th International Symposium on Software Reliability Engineering
IEEE Transactions on Software Engineering
Evolutionary testing in the presence of loop-assigned flags: a testability transformation approach
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Journal of Systems and Software - Special issue: Applications of statistics in software engineering
Empirical Software Engineering
The species per path approach to SearchBased test data generation
Proceedings of the 2006 international symposium on Software testing and analysis
Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis
An empirical study into class testability
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
The Strangest Thing About Software
Computer
Composition and tradeoff of non-functional attributes in software systems: research directions
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Composition and tradeoff of non-functional attributes in software systems: research directions
The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
An empirical, path-oriented approach to software analysis and testing
Journal of Systems and Software
Integrating testability into the development process of reactive systems
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
An optimization framework for "build-or-buy" decisions in software architecture
Computers and Operations Research
Class-component testability analysis
SEPADS'06 Proceedings of the 5th WSEAS International Conference on Software Engineering, Parallel and Distributed Systems
Bytecode fault injection for Java software
Journal of Systems and Software
Metric based testability model for object oriented design (MTMOOD)
ACM SIGSOFT Software Engineering Notes
Generating MDA's platform independent model using URDAD
Knowledge-Based Systems
Technology Neutral Business Process Design using URDAD
Proceedings of the 2007 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the sixth SoMeT_07
Dependence clusters in source code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Improving the testability of object oriented software through software contracts
ACM SIGSOFT Software Engineering Notes
A probability-based approach for measuring external attributes of software artifacts
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Applying Testability Transformations to Achieve Structural Coverage of Erlang Programs
TESTCOM '09/FATES '09 Proceedings of the 21st IFIP WG 6.1 International Conference on Testing of Software and Communication Systems and 9th International FATES Workshop
Testability Analysis of Data-Flow Software
Electronic Notes in Theoretical Computer Science (ENTCS)
Measuring design testability of a UML class diagram
Information and Software Technology
A measurement framework for object-oriented software testability
Information and Software Technology
Using program data-state scarcity to guide automatic test data generation
Software Quality Control
Software testing research and practice
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
On the application of the concept of dependability for design and analysis of vision systems
ICVS'03 Proceedings of the 3rd international conference on Computer vision systems
Defect prediction from static code features: current results, limitations, new approaches
Automated Software Engineering
On the value of learning from defect dense components for software defect prediction
Proceedings of the 6th International Conference on Predictive Models in Software Engineering
A new approach for software testability
TAIC PART'10 Proceedings of the 5th international academic and industrial conference on Testing - practice and research techniques
A component testability model for verification and measurement
COMPSAC-W'05 Proceedings of the 29th annual international conference on Computer software and applications conference
How good is your blind spot sampling policy
HASE'04 Proceedings of the Eighth IEEE international conference on High assurance systems engineering
An empirical study on the usage of testability information to fault localization in software
Proceedings of the 2011 ACM Symposium on Applied Computing
An empirical analysis of a testability model for object-oriented programs
ACM SIGSOFT Software Engineering Notes
Finding bugs by isolating unit tests
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
A diagnostic reasoning approach to defect prediction
IEA/AIE'11 Proceedings of the 24th international conference on Industrial engineering and other applications of applied intelligent systems conference on Modern approaches in applied intelligence - Volume Part II
Automated selection of software components based on cost/reliability tradeoff
EWSA'06 Proceedings of the Third European conference on Software Architecture
Prediction of testability using the design metrics for object-oriented software
International Journal of Computer Applications in Technology
Evaluating the effect of control flow on the unit testing effort of classes: an empirical analysis
Advances in Software Engineering
A mapping study to investigate component-based software system metrics
Journal of Systems and Software
Coverage-directed observability-based validation for embedded software
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Adaptation space exploration for service-oriented applications
Science of Computer Programming
A reliability model for Service Component Architectures
Journal of Systems and Software
Hi-index | 0.01 |
Software verification is often the last defense against disasters caused by faulty software development. When lives and fortunes depend on software, software quality and its verification demand increased attention. As software begins to replace human decision-makers, a fundamental concern is whether a machine will be able to perform the tasks with the same level of precision as a skilled person. If not, a catastrophe may be caused by an automated system that is less reliable than a manual one. How do you assess that critical automated systems are acceptably safe and reliable? In this article, we present a new view of verification and offer techniques that will help developers make this assessment. Our view, which we label software testability, is somewhat more inclusive than traditional verification and testability views Every system has a true (or fixed) reliability that is generally unknown. Software testability, software testing, and formal verification are three pieces of the reliability puzzle, which developers must complete to get a picture of the software's true reliability. Each of the three puzzle pieces offers a unique bit of information about software quality. The goal is to get all three. Testability information cannot replace testing and formal verification; but neither should developers rely exclusively on testing and formal verification. To have highly reliable software, the software must have high testability, undergone enormous amounts of successful testing, and experienced formal verification.Our focus here is on one part of the puzzle, testability - how to design for it and how to measure the degree to which you have achieved it. To better illustrate what we mean by software testability, consider a simple analogy that shows how testability can enhance testing. Suppose software faults were gold. Software testing would be the actual mining process,. and software testability would be the geologist's survey before mining begins. The geologist does not actually dig for the gold, but rather establishes the likelihood that digging at a particular spot would be rewarding. At one location, the geologist might say, "This valley may or may not have gold, but if it does, it will be in the top 50 feet and all over the valley." At another location, the geologist might say, "If you don't find gold in the first 10 feet on this plateau, there is no gold. However, on the next plateau you will have to dig 100 feet before you can be sure there is no gold." We are particularly interested in designing software to increase its testability. Although the existence of an upper bound on testability is solely our conjecture, our research using sensitivity analysis and studying software's tendency to not reveal faults during testing suggests that such exists. We challenge software testing researchers to consider this it. A given piece of software will or will not hide a given fault from testing. We have found that it is possible to examine this code characteristic - software testability - without knowing if a particular fault exists in that software, and without reference to correctness. Because it does not rely on correctness, software testability gives a new perspective on code development.