Sound Test Case Generation for Concurrent Features Combining Test
Cases for Individual Features
Teste concorente; teste baseado em modelo; quiescência
No atual cenário de desenvolvimento de software, onde as aplicacões estão se tornando
cada vez mais complexas e projetadas para lidar com múltiplas tarefas, simultaneamente,
torna-se imperativo validar a confiabilidade em condicões concorrentes. Os sistemas po-
dem apresentar uma ampla variedade de interacões e comportamentos difíceis de serem
reproduzidos, dificultando a elaboracao de estratégias de teste eficazes. Adicionalmente, a
geracão de casos de teste para sistemas concorrentes é desafiadora devido à falta de descricões explícitas de seu comportamento concorrente nos requisitos tipicamente capturados em linguagem natural. Nossa principal contribuicão é uma abordagem para a geracão de testes consistentes baseados em requisitos escritos em linguagem natural, focando, particularmente, em aplicativos de dispositivos móveis. Essa abordagem é enriquecida com uma estratégia de análise de dependência que garante uma ordem de execucão consistente dos passos de teste, eliminando, assim, casos de teste com configuracões incompletas ou que não podem ser executados devido a pré-condicões não atendidas. Além disso, abordamos a consistência (soundness) da abordagem proposta a partir da definicão de uma nova relacão de conformidade, cspioq. Essa nova relacão lida efetivamente com a ausência de saídas (quiescência), visando garantir que o sistema possa lidar adequadamente com cenários em que não são esperadas mais saídas ou eventos (característica comum em sistemas concorrentes). Uma vez que os requisitos nem sempre estão disponíveis, um processo de engenharia reversa pode ser necessário para gerar requisitos a partir de casos de teste existentes, tornando o processo oneroso. Como alternativa, propomos uma estratégia de geracão de testes otimizada por meio da combinacão de passos de teste, denominados de átomos. Esta estratégia visa simplificar o processo, extraindo diretamente informacões relevantes sem a necessidade de uma engenharia reversa que tende a ser complexa. Também abordamos a consistência (soundness) da abordagem otimizada mostrando a conexão com a abordagem formal. Fornecemos suporte ferramental para todas as fases da abordagem proposta e conduzimos uma avaliacão empírica da eficácia dos testes gerados. Analisamos
a cobertura dos testes e o número de falhas durante a execucão dos testes criados pelos
engenheiros de nosso parceiro industrial, Motorola Mobility (uma empresa da Lenovo).
As métricas adotadas foram então comparadas com aquelas obtidas dos testes gerados
usando a abordagem proposta. Os resultados revelam que o conjunto de testes produzido
por nossa abordagem apresenta uma cobertura significativamente maior e tem o poten-
cial de identificar mais bugs em comparacão com o conjunto criado pelos engenheiros da
Motorola.