Effectiveness evaluation of the synchronization sequence testing in Java concurrent program

  • Rodolfo Adamshuk Silva UTFPR
  • Simone do Rocio Senger de Souza ICMC

Resumo


As atividades de teste para programas concorrentes são complexas devido ao não-determinismo no qual diferentes sequências de sincronização podem ocorrer e produzir saídas diferentes para uma única entrada. Testar todas as sequências é impraticável devido ao alto número delas que um programa concorrente pode executar. Este artigo apresenta um estudo de caso para avaliar a eficácia de diferentes sequências de sincronização para um dado caso de teste. A eficácia foi medida usando o número de defeitos encontrados por cada sequência de sincronização em um conjunto de 9 programas Java multithread. Os resultados demonstram que diferentes sequências desincronização têm eficácia diferente para alguns casos de teste. As evidências encontradas demonstram a importância de testar diferentes sequências de sincronização durante o teste de programas concorrentes.

Referências

Almasi, G. S. and Gottlieb, A. (1989). Highly parallel computing. Benjamin-Cummings Publishing Co., Inc., Redwood City, CA, USA.

Delamaro, M. E. (2004). Using instrumentation to reproduce the execution of Java con- current programs. In Simp´osio Brasileiro de Qualidade de Software.

DeMillo, R. A. and Offutt, A. J. (1991). Constraint-based automatic test data generation. IEEE Transactions on Software Engineering, 17(9):900–910.

Gligoric, M., Jagannath, V., and Marinov, D. (2010). Mutmut: Efficient exploration for mutationtestingofmultithreadedcode.InSoftwareTesting,VerificationandValidation (ICST), 2010 Third International Conference on, pages 55–64.

Gligoric, M., Zhang, L., Pereira, C., and Pokam, G. (2013). Selective mutation testing for concurrent code. In Proceedings of the 2013 International Symposium on Software Testing and Analysis, pages 224–234, Lugano, Switzerland.

Hong, S., Ahn, J., Park, S., Kim, M., and Harrold, M. J. (2012). Testing concurrent programs to achieve high synchronization coverage. In Proceedings of the 2012 Inter- national Symposium on Software Testing and Analysis, ISSTA 2012, pages 210–220, New York, NY, USA.

HuoYanChen,YuXiaSun,andTHTse(2003). A strategy for selecting synchronization sequences to test concurrent object-oriented software. In Proceedings 27th Annual InternationalComputerSoftwareandApplicationsConference.COMPAC2003,pages 198–203.

Jagannath,V.,Gligoric,M.,Jin,D.,Luo,Q.,Rosu,G.,andMarinov,D.(2011). Improved multi threaded unit testing. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, ESEC/FSE ’11, pages 223–233. ACM.

Lei, J. and Carver, R. H. (2010). A stateful approach to testing monitors in multithreaded programs. 9th IEEE International Symposium on High-Assurance Systems Engineer- ing, 00:54–63.

Myers, G. J., Sandler, C., and Badgett, T. (2011). The Art of Software Testing. Wiley Publishing, 3rd edition.

Runeson, P., Host, M., Rainer, A., and Regnell, B. (2012). Case Study Research in Soft- ware Engineering: Guidelines and Examples. Wiley Publishing, 1st edition.

Tai, K., Carver, R., and Obaid, E. (1989). Deterministic execution debugging of con- current Ada programs. In Proceedings of the Computer Software and Applications Conference, pages 102–109.

Tanenbaum, A. S. (2007). Organizac¸˜ao Estruturada de Computadores. Prentice Hall, Sao Paulo, Brazil, 5. edition.
Publicado
22/10/2019
SILVA, Rodolfo Adamshuk; SOUZA, Simone do Rocio Senger de. Effectiveness evaluation of the synchronization sequence testing in Java concurrent program. In: ESCOLA REGIONAL DE ENGENHARIA DE SOFTWARE (ERES), 3. , 2019, Rio do Sul. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 157-166.