Structural testing criteria for concurrent programs considering loop executions - Diaz, Silvia; Souza, Paulo Sérgio (Anais Estendidos do Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD), 2019)
A programação paralela é imperativa para melhorar o desempenho e a resolução eficiente deproblemas, tendo uma demanda crescente na implementação de técnicas de programação paralela.Isso implica novos desafios no teste de software para garantir a qualidade e confiabilidade. Oteste estrutural é uma técnica que permite a identificação de defeitos de concorrência, analisandoa estrutura interna do programa. No entanto, os programas concorrentes são não determinísticos,com desafios na atividade de teste, exigindo o uso de métodos estruturados para revelar defeitos.Os critérios de teste suportam a seleção de casos de teste de forma sistemática, analisandoestaticamente elementos de programas concorrentes. Foi encontrado que atualmente existemlacunas na definição de critérios de teste contemplando cenários com elementos dinâmicos, comoa execução de primitivas de comunicação dentro de loops. O objetivo deste projeto é definircritérios estruturais para orientar a seleção de casos de teste, revelando erros relacionados aonão-determinismo e melhorando a confiabilidade de programas concorrentes. Foi desenvolvidauma Taxonomia de Defeitos Concorrentes, identificando e classificando os tipos de defeitosde concorrência encontrados na literatura relacionada. A análise de tais defeitos, a seleção decaminhos de loop, o número de iterações de loop e loops aninhados permitem modelar os critériosde testes estruturais propostos. Foram definidos novos conjuntos e associações relacionadas aosfluxos de comunicação e sincronização de programas de passagem de mensagens, estabelecendoum modelo para os critérios de teste. O modelo de teste proposto foi implementado no protótipode ferramenta de teste chamada ValiMPI, considerando as associações definidas para os critériospropostos, gerando elementos necessários e cobertura de avaliação após a identificação dos nósde loop. Para a avaliação da aplicação dos critérios, foi realizado um estudo empírico com testesestatísticos, indicando os resultados para custo, efetividade estrength. A avaliação experimentaldemonstrou que os critérios de teste propostos geram elementos necessários que suportam aidentificação de defeitos presentes em diferentes iterações dos loops, quando existem eventos decomunicação com comportamento nãodeterminístico.