Abstract
In order to effectively deal with increased complexity and production pressures for the development of safety-critical systems, organizations need automated assistance in program analysis and testing. This need is intensified for systems that make heavy use of floating-point computations. Challenges related to the use of floating-point computations exist in the fields of testing, formal verification and debugging. While testing and formal verification provide mechanisms to identify possible failures within safety-critical systems, debugging techniques are employed to automatically isolate the cause of the failure. Recent advances in predicate-level statistical debugging have addressed localizing faults due to floating-point computations. Here, we present a methodology to modify the composition of a test suite to enable predicate-level statistical debuggers to more effectively isolate the causes of failures in safety-critical systems. Our methodology makes test suites significantly more effective for a class of debuggers, including those built to address faults due to floating-point computations.
Keywords
- causal model
- matching
- debugging
- safety-critical systems
This is a preview of subscription content, access via your institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Swenson, H., Barhydt, R., Landis, M.: Next Generation Air Transportation System Air Traffic Management, Technical report, NASA Ames Research Center (2006)
Stanton, N.A., Marsden, P.: From Fly-by-Wire to Drive-by-Wire: Safety Implications of Automation in Vehicles. Safety Sci. 24(1), 35–49 (1996)
Monniaux, D.: The Pitfalls of Verifying Floating-point Computations. ACM Trans. Program. Lang. Syst. 30(3), 1–41 (2008)
Hallam, P.: What do programmers really do anyway? In: Microsoft Developer Network (MSDN) C# Compiler (2006)
Pigoski, T.M.: Practical Software Maintenance: Best Practices for Managing Your Software Investments. John Wiley & Sons, New York (1996)
Liblit, B., Naik, M., Zheng, A.X., Aiken, A., Jordan, M.I.: Scalable Statistical Bug Isolation. In: Conf. on Programming Language Design and Implementation, pp. 15–26. ACM Press, New York (2005)
Baah, G.K., Podgurski, A., Harrold, M.J.: Mitigating the Confounding Effects of Program Dependences for Effective Fault Localization. In: Symp. on Foundations of Software Engineering, pp. 146–156. ACM Press, New York (2011)
Gore, R., Reynolds, P.F., Kamensky, D.: Statistical Debugging with Elastic Predicates. In: Conf. on Automated Software Engineering, pp. 492–495. ACM Press, New York (2011)
Gore, R., Reynolds, P.F.: Reducing Confounding Bias in Predicate-level Statistical Debuggers. Submitted to: Conf. on Software Engineering. ACM Press, New York (2012)
Renieris, M., Reiss, S.: Fault Localization with Nearest Neighbor Queries. In: Conf. on Automated Software Engineering, pp. 30–39. ACM Press, New York (2003)
Jeffery, D., Gupta, N., Gupta, R.: Fault Localization using Value Replacement. In: Symp. on Software Testing and Analysis, pp. 167–177. ACM Press, New York (2008)
Pearl, J.: Causality: Models, Reasoning, and Inference. Cambridge University Press, San Francisco (2000)
Pearl, J., Verma, T.: A Theory of Inferred Causation. In: Conf. on Principles of Knowledge Representation and Reasoning, pp. 441–452. AAAI Press, Palo Alto (1991)
Morgan, S.L., Winship, C.: Counterfactuals and Causal Inference: Methods and Principles of Social Research. Cambridge University Press, Cambridge (2007)
Ferrante, J., Ottenstein, K.J., Warren, J.D.: The Program dependence graph and its use in optimization. ACM Trans. on Program Lang. Sys. 9(30), 319–349 (1987)
Harman, W.H.: TCAS: A System for Preventing Midair Collisions. Lincoln Laboratory Journal 2, 437–458 (1989)
SIR: Software-artifact Infrastructure Repository, http://sir.unl.edu/portal/index.html
Diamond, A., Sekhon, J.S.: Genetic Matching for Estimating Causal Effects: A General Multivariate Matching Method for Achieving Balance in Observational Studies. Technical report (2006)
Bate, I., Burns, A.: An Integrated Approach to Scheduling in Safety-critical Embedded Control Systems. Real-Time Syst. 25(1), 5–37 (2003)
R Development Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria (2008)
Sekhon, J.S.: Multivariate and Propensity Score Matching Software with Automated Balance Optimization: The Matching package for R. J. Stats. Soft. 42(7), 1–52 (2011)
D’Silva, V., Kroening, D., Weissenbacher, G.: A Survey of Automated Techniques for Formal Software Verification. IEEE Trans. Comp. Aided Design 27(7), 1165–1178 (2008)
Cleve, H., Zeller, A.: Locating Causes of Program Failures. In: Conf. on Software Engineering, pp. 342–351. ACM Press, New York (2005)
Gupta, N., He, H., Zhang, X., Gupta, R.: Locating Faulty Code Using Failure-inducing Chops. In: Conf. on Automated Software Engineering, pp. 263–272. ACM Press, New York (2005)
Tip, F.: A Survey of Program Slicing Techniques. J. Program. Lang. 3, 121–189 (1995)
Weiser, M.: Program Slicing. In: Conf. on Software Engineering, pp. 439–449. ACM Press, New York (1981)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gore, R., Reynolds, P.F. (2012). Modifying Test Suite Composition to Enable Effective Predicate-Level Statistical Debugging. In: Goodloe, A.E., Person, S. (eds) NASA Formal Methods. NFM 2012. Lecture Notes in Computer Science, vol 7226. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-28891-3_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-28891-3_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-28890-6
Online ISBN: 978-3-642-28891-3
eBook Packages: Computer ScienceComputer Science (R0)
