Debugging Meets Testing in Erlang

  • Salvador Tamarit
  • Adrián Riesco
  • Enrique Martin-Martin
  • Rafael Caballero
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9762)

Abstract

We propose a bidirectional collaboration between declarative debugging and testing for detecting errors in the sequential subset of the programming language Erlang. In our proposal, the information obtained from the user during a debugging session is stored in form of unit tests. These test cases can be employed afterwards to check, through testing, if the bug has been actually corrected. Moreover, the debugger employs already existing tests to determine the correctness of some subcomputations, helping the user to locate the error readily. The process, contrarily to usual debugger frameworks is cumulative: if later we find a new bug we have more information from the previous debugging and testing iterations that can contribute to find the error readily.

References

  1. 1.
    Alexander, I.F., Maiden, N.: Scenarios, Stories, Use Cases: Through the Systems Development Life-cycle. Wiley, New York (2005)Google Scholar
  2. 2.
    Barr, E., Harman, M., McMinn, P., Shahbaz, M., Yoo, S.: The oracle problem in software testing: a survey. IEEE Trans. Softw. Eng. 41(5), 507–525 (2015)CrossRefGoogle Scholar
  3. 3.
    Caballero, R., Martin-Martin, E., Riesco, A., Tamarit, S.: EDD: a declarative debugger for sequential erlang programs. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014 (ETAPS). LNCS, vol. 8413, pp. 581–586. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  4. 4.
    Caballero, R., Martin-Martin, E., Riesco, A., Tamarit, S.: A zoom-declarative debugger for sequential Erlang programs. Sci. Comput. Program. 110, 104–118 (2015)CrossRefGoogle Scholar
  5. 5.
    Carlsson, R., Rémond, M.: EUnit: a lightweight unit testing framework for Erlang. In: Proceedings of the 2006 ACM SIGPLAN Workshop on Erlang, ERLANG 2006, p. 1. ACM, New York (2006)Google Scholar
  6. 6.
    Cesarini, F., Thompson, S.: Programming Erlang: A Concurrent Approach to Software Development. O’Reilly Media Inc., Beijing (2009)MATHGoogle Scholar
  7. 7.
    Hebert, F.: Learn You Some Erlang for Great Good!: A Beginner’s Guide. No Starch Press (2013). http://learnyousomeerlang.com
  8. 8.
    Papadakis, M., Sagonas, K.: A PropEr integration of types and function specifications with property-based testing. In: Proceedings of the 2011 ACM SIGPLAN Erlang Workshop, pp. 39–50. ACM Press (2011)Google Scholar
  9. 9.
    Shapiro, E.Y.: Algorithmic Program Debugging. ACM Distinguished Dissertation. MIT Press, Cambridge (1983)Google Scholar
  10. 10.
    Silva, J.: A survey on algorithmic debugging strategies. Adv. Eng. Softw. 42(11), 976–991 (2011)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Salvador Tamarit
    • 1
  • Adrián Riesco
    • 2
  • Enrique Martin-Martin
    • 2
  • Rafael Caballero
    • 2
  1. 1.Babel Research GroupUniversidad Politécnica de MadridMadridSpain
  2. 2.Universidad Complutense de MadridMadridSpain

Personalised recommendations