Modelo e critérios de teste estrutural para programas CUDA - Luz, Helder Jefferson Ferreira da (2023)
As GPUs têm sido amplamente utilizadas na computação de propósito geral para resolver problemas em diversas áreas. Para utilizar esses processadores, é necessário adotar modelos de programação paralela, como o CUDA, que visam simplificar o desenvolvimento de aplicações de propósito geral para serem executadas em GPUs. A despeito das facilidades trazidas por esse modelo, desenvolver aplicações com CUDA não é trivial. Além disso, os desenvolvedores possuem pouca experiência na programação de aplicações paralelas, ocasionando diversos tipos de defeitos. Apesar da necessidade de mitigar defeitos em aplicações CUDA, há poucos critérios de teste estrutural para revelar defeitos desse modelo de programação. Buscando melhorar a qualidade de programas concorrentes CUDA, foi definido um modelo e critérios de teste estrutural para apoiar a atividade de teste, auxiliando na seleção de casos de teste e propiciando a revelação de defeitos. Para validar o modelo e critérios de teste propostos, foi desenvolvido a ferramenta ValiCUDA, que realiza a instrumentação e análise do programa, gerando os elementos requeridos para cada critério de teste. A ferramenta permite executar os programas e avaliar a cobertura alcançada para cada critério. Para avaliar a aplicação dos critérios de teste, foi realizado um experimento com validação estatística, buscando averiguar as métricas de custo, eficácia e strength. No experimento foram inseridos defeitos com base em uma taxonomia de defeitos para avaliar a eficácia dos critérios. Os resultados demonstraram que os critérios de teste propostos são capazes de revelar defeitos em aplicações CUDA e podem auxiliar o testador na atividade de teste deste tipo de aplicação.