Minimização de casos/passos de teste para linguagens de programação visual - Paulo Nolberto dos Santos Alarcón (2017)
Linguagens de Programação Visual têm sido amplamente utilizadas no contexto de Desenvolvimento/Projeto Baseado em Modelos, e as mesmas encontram um apelo particular para o desenvolvimento de subsistemas de satélites e outras aplicações espaciais, tais como o Subsistema de Controle de Órbita e Atitude (SCOA) e o Subsistema de Controle de Atitude (SCA). A modelagem de um SCA é complexa, e assegurar a qualidade desse tipo de modelagem é algo muito desafiador. Por sua vez, a comunidade de teste de software vem colocando esforços para garantir que produtos tenham alta qualidade, possuindo o menor número possível de defeitos. Dado que a geração e execução exaustivas de casos de teste para software é inviável na prática, uma das iniciativas é reduzir os conjuntos de casos de testes necessários para se testar um Software/Sistema Sob Teste, mas que ainda tenha uma efetividade (habilidade de encontrar defeitos no produto, cobertura de código) significativa. Essa dissertação de mestrado apresenta um novo método para gerar casos de teste para modelos de Linguagem de Programação Visual, objetivando minimizar o conjunto de casos/passos de teste requeridos e, ao mesmo tempo, aumentando a efetividade do mesmo. A abordagem, denominada specification Patterns, modified Condition/Decision coverage, and formal Verification to support Testing (PCDVT), combina o critério de Cobertura de Decisões/Condições Modificadas (MC/DC), Verificação Formal (Model Checking), padrões de especificação, e abordagem de minimização por identificação de testes insubstituíveis em um único método, tirando proveito dos diversos benefícios de todos esses esforços em uma abordagem unificada. Duas avaliações experimentais foram conduzidas, considerando como estudos de caso modelos de Linguagens de Programação Visual para SCA similar ao do satélite Lattes-1 do Instituto Nacional de Pesquisas Espaciais (INPE). Em uma primeira avaliação experimental, que considerou um modelo SCA de complexidade intermediária, resultados demonstraram que duas instâncias do PCDVT, uma baseada no padrão de ausência e outra baseada no padrão de resposta encadeada, tiveram custo (quantidade de passos de teste) similar, mas uma efetividade (cobertura do modelo) significativamente maior se comparadas a uma abordagem manual e ad hoc. Dessa forma, pôde ser verificado um melhor desempenho do método PCDVT comparado a uma abordagem manual. Em uma segunda avaliação experimental, onde o modelo SCA completo foi considerado, percebeu-se um custo (quantidade de passos de teste) consideravelmente melhor se for comparada a geração de casos de teste via PCDVT com e sem a aplicação do algoritmo de minimização proposto no método.