Skip to main content

Debugging Model-Transformation Failures Using Dynamic Tainting

  • Conference paper
ECOOP 2010 – Object-Oriented Programming (ECOOP 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6183))

Included in the following conference series:

Abstract

Model-to-text (M2T) transforms are a class of software applications that translate a structured input into text output. The input models to such transforms are complex, and faults in the models that cause an M2T transform to generate an incorrect or incomplete output can be hard to debug. We present an approach based on dynamic tainting to assist transform users in debugging input models. The approach instruments the transform code to associate taint marks with the input-model elements, and propagate the marks to the output text. The taint marks identify the input-model elements that either contribute to an output string, or cause potentially incorrect paths to be executed through the transform, which results in an incorrect or a missing string in the output. We implemented our approach for XSL-based transforms and conducted empirical studies. Our results illustrate that the approach can significantly reduce the fault search space and, in many cases, precisely identify the input-model faults. The main benefit of our approach is that it automates, with a high degree of accuracy, a debugging task that can be tedious to perform manually.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agrawal, H., DeMillo, R.A., Spafford, E.H.: Debugging with dynamic slicing and backtracking. Software—Practice and Experience 23(6), 589–616 (1993)

    Article  Google Scholar 

  2. Agrawal, H., Horgan, J.R., London, S., Wong, W.E.: Fault localization using execution slices and dataflow tests. In: Proc. of the Intl. Symp. on Softw. Reliability Eng., pp. 143–151 (1995)

    Google Scholar 

  3. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers, Principles, Techniques, and Tools. Addison-Wesley Publishing Company, Reading (1986)

    Google Scholar 

  4. Baxter, I.D.: Design maintenance systems. ACM Commun. 35(4), 73–89 (1992)

    Article  Google Scholar 

  5. Clause, J., Li, W., Orso, A.: Dytan: A generic dynamic taint analysis framework. In: Proc. of the Intl. Symp. on Softw. Testing and Analysis, pp. 196–206 (2007)

    Google Scholar 

  6. Clause, J., Orso, A.: Penumbra: Automatically identifying failure-relevant inputs using dynamic tainting. In: Proc. of the Intl. Symp. on Softw. Testing and Analysis, pp. 249–259 (2009)

    Google Scholar 

  7. Czarnecki, K., Helsen, S.: Classification of model transformation approaches. In: Proc. of the OOPSLA 2003 Workshop on Generative Techniques in the Context of Model-Driven Architecture (2003)

    Google Scholar 

  8. DeMillo, R.A., Pan, H., Spafford, E.H.: Critical slicing for software fault localization. In: Proc. of the Intl. Symp. on Softw. Testing and Analysis, pp. 121–134 (1996)

    Google Scholar 

  9. Dinh-Trong, T., Ghosh, S., France, R., Baudry, B., Fleury, F.: A taxonomy of faults for UML models. In: Proc. of the 2nd Workshop on Model Design and Validation (2005)

    Google Scholar 

  10. Drivalos, N., Kolovos, D., Paige, R., Fernandes, K.: Engineering a DSL for software traceability. Software Language Engineering, 151–167 (2009)

    Google Scholar 

  11. Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Trans. Progr. Lang. Syst. 9(3), 319–349 (1987)

    Article  MATH  Google Scholar 

  12. Halfond, W., Orso, A., Manolios, P.: Using positive tainting and syntax-aware evaluation to counter SQL injection attacks. In: Proc. of the ACM SIGSOFT Symp. on the Foundations of Softw. Eng., pp. 175–185 (November 2006)

    Google Scholar 

  13. Jones, J.A., Harrold, M.J., Stasko, J.: Visualization of test information to assist fault localization. In: Proc. of the 24th Intl. Conf. on Softw. Eng., pp. 467–477 (May 2002)

    Google Scholar 

  14. Kolovos, D.: Establishing correspondences between models with the epsilon comparison language. In: Model Driven Architecture-Foundations and Applications, pp. 146–157

    Google Scholar 

  15. Korel, B., Laski, J.: Dynamic program slicing. Information Processing Letters 29(3), 155–163 (1988)

    Article  MATH  Google Scholar 

  16. Masri, W., Podgurski, A., Leon, D.: Detecting and debugging insecure information flows. In: Proc. of the Intl. Symp. on Softw. Reliability Eng., pp. 198–209 (2004)

    Google Scholar 

  17. Newsome, J., Song, D.X.: Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In: Proc. of the Network and Distributed System Security Symp. (2005)

    Google Scholar 

  18. Offutt, J., Xu, W.: Generating test cases for web services using data perturbation. Softw. Eng. Notes 29(5), 1–10 (2004)

    Google Scholar 

  19. Renieres, M., Reiss, S.P.: Fault localization with nearest neighbor queries. In: Proc. of the 18th Intl. Conf. on Automated Softw. Eng., pp. 30–39 (2003)

    Google Scholar 

  20. Schmidt, D.C.: Model-driven engineering. IEEE Computer 39(2), 25–31 (2006)

    Google Scholar 

  21. Sterling, C.D., Olsson, R.A.: Automated bug isolation via program chipping. Software—Practice and Experience 37(10), 1061–1086 (2007)

    Article  Google Scholar 

  22. Van Gorp, P., Keller, A., Janssens, D.: Transformation language integration based on profiles and higher order transformations. In: Gašević, D., Lämmel, R., Van Wyk, E. (eds.) SLE 2008. LNCS, vol. 5452, pp. 208–226. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  23. Zeller, A., Hildebrandt, R.: Simplifying and isolating failure-inducing input. IEEE Trans. Software Eng. 28(2), 183–200 (2002)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dhoolia, P., Mani, S., Sinha, V.S., Sinha, S. (2010). Debugging Model-Transformation Failures Using Dynamic Tainting. In: D’Hondt, T. (eds) ECOOP 2010 – Object-Oriented Programming. ECOOP 2010. Lecture Notes in Computer Science, vol 6183. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14107-2_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-14107-2_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-14106-5

  • Online ISBN: 978-3-642-14107-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics