Contribuindo para a avaliação do teste de programas concorrentes: uma abordagem usando benchmarks - Dourado, George Gabriel Mendes (2015)
O teste de programas concorrentes é uma atividade que envolve diferentes perspectivas. Uma das mais conhecidas refere-se ao desenvolvimento de novos conhecimentos sobre critérios, modelos e ferramentas de teste que auxiliem o testador nessa atividade. Outra perspectiva, igualmente importante, porém, ainda incipiente, é a avaliação da atividade de teste de programas concorrentes com relação à sua eficiência e eficácia para revelar defeitos de difícil detecção. O projeto TestPar em desenvolvimento no ICMC/USP tem abordado essas duas perspectivas ao longo dos últimos anos, onde novas tecnologias de teste vêm sendo desenvolvidas e avaliadas sistematicamente. Este trabalho inseriu-se no contexto do projeto TestPar e teve por objetivo principal contribuir para melhorar a avaliação da atividade de teste de programas concorrentes, através do desenvolvimento de benchmarks específicos para este contexto. Essa avaliação representa um desafio para a área de teste, sendo essencial a existência de benchmarks simples o bastante para serem validados manualmente, se necessário, e complexos o bastante para exercitar aspectos não triviais de comunicação e sincronização, encontrados de fato nos programas concorrentes. Assim, neste trabalho de mestrado foram desenvolvidos benchmarks livres de defeitos conhecidos e algumas versões de benchmarks com defeitos intencionalmente inseridos, baseados em taxonomias de defeitos. Esses benchmarks seguiram uma série de características bem definidas, contando ainda com uma documentação padronizada e completa. Os benchmarks foram validados através da condução de estudos experimentais, do uso em diferentes projetos de pesquisa e também com a verificação da sua aplicabilidade para fins educacionais. Os resultados obtidos demonstram que os benchmarks atingiram os objetivos para os quais foram propostos, gerando uma demanda controlada e qualificada sobre modelo, critérios e a ferramenta de teste desenvolvidos no projeto TestPar. Os experimentos realizados permitiram destacar pontos positivos e limitações desses artefatos. Outra aplicação dos benchmarks foi como recurso educacional para o ensino em disciplinas como programação concorrente.