Structural Testing for Semaphore-Based Multithread Programs

  • Felipe S. Sarmanho
  • Paulo S. L. Souza
  • Simone R. S. Souza
  • Adenilso S. Simão
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5101)


This paper presents structural testing criteria for validation of semaphore-based multithread programs exploring control, data, communication and synchronization information. A post-mortem method based on timestamps is defined to determine the implicit communication among threads using shared variables. The applicability of the coverage testing criteria is illustrated by a case study.


software testing multithread programs testing criteria 


  1. 1.
    Yang, C.D., Pollock, L.L.: The challenges in automated testing of multithreaded programs. In: 14th Int. Conference on Testing Computer Software, pp. 157–166 (1997)Google Scholar
  2. 2.
    Dongarra, J.J., Walker, D.W.: The quest for petascale computing. Computing in Science and Engineering 03(3), 32–39 (2001)CrossRefGoogle Scholar
  3. 3.
    Rapps, S., Weyuker, E.: Selecting software test data using data flow information. IEEE Transactions on Software Engineering SE-11(4), 367–375 (1985)CrossRefGoogle Scholar
  4. 4.
    Taylor, R.N., Levine, D.L., Kelly, C.D.: Structural testing of concurrent programs. IEEE Trans. on Software Engineering 18(3), 206–215 (1992)CrossRefGoogle Scholar
  5. 5.
    Yang, C.S.D., Souter, A.L., Pollock, L.L.: All-du-path coverage for parallel programs. In: Young, M. (ed.) ISSTA 1998: Proc. of the ACM SIGSOFT Int. Symposium on Software Testing and Analysis, pp. 153–162 (1998)Google Scholar
  6. 6.
    Lei, Y., Carver, R.: Reachability testing of concurrent programs. IEEE Trans. on Software Engineering 32(6), 382–403 (2006)CrossRefGoogle Scholar
  7. 7.
    Vergilio, S.R., Souza, S.R.S., Souza, P.S.L.: Coverage testing criteria for message-passing parallel programs. In: 6th LATW, Salvador, Ba, pp. 161–166 (2005)Google Scholar
  8. 8.
    Edelstein, O., Farchi, E., Goldin, E., Nir, Y., Ratsaby, G., Ur, S.: Framework for testing multi-threaded Java programs. Concurrency and Computation: Practice and Experience 15(3–5), 485–499 (2003)MATHCrossRefGoogle Scholar
  9. 9.
    Lei, Y., Carver, R.H., Kacker, R., Kung, D.: A combinatorial testing strategy for concurrent programs. Softw. Test., Verif. Reliab. 17(4), 207–225 (2007)CrossRefGoogle Scholar
  10. 10.
    Yang, C.S.D., Pollock, L.L.: All-uses testing of shared memory parallel programs. Softw. Test, Verif. Reliab. 13(1), 3–24 (2003)CrossRefGoogle Scholar
  11. 11.
    Lamport, L.: The implementation of reliable distributed multiprocess systems. Computer Networks 2, 95–114 (1978)MathSciNetGoogle Scholar
  12. 12.
    Carver, R.H., Tai, K.C.: Replay and testing for concurrent programs. IEEE Softw. 8(2), 66–74 (1991)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Felipe S. Sarmanho
    • 1
  • Paulo S. L. Souza
    • 1
  • Simone R. S. Souza
    • 1
  • Adenilso S. Simão
    • 1
  1. 1.ICMCUniversidade de São PauloSão CarlosBrazil

Personalised recommendations