DESENVOLVIMENTO DE TESTES UNITÁRIOS PARA UM SOFTWARE DA BIOMECÂNICA CARDÍACA BASEADO EM ELEMENTOS FINITOS

  • Gilmar Ferreira da Silva Filho
  • Joventino Oliveira Campos
  • Bernardo Martins Rocha

Resumo

O desenvolvimento de softwares científicos, como por exemplo para simulações computacionaisde biomecânica baseadas no método dos elementos finitos, se dá habitualmentecom o objetivo de atingir metas específicas de uma pesquisa de interesse. Com isso, práticaspertinentes de engenharia de software, como o teste unitário, são desconsideradas e o produtofinal é uma aplicação que provê a resposta esperada, porém é suscetível a falhas, erros e sobretudode pobre manutenibilidade. Este trabalho tem como objetivo aplicar e avaliar técnicasde teste unitário no desenvolvimento de um software que simula a atividade mecânica cardíacabaseado no método dos elementos finitos, de forma a garantir um software mais flexível, defácil manutenção, reuso e depuração, e que assegure resultados mais confiáveis. A bibliotecapara testes unitários automatizados CppTest foi utilizada em um software de elementos finitosdesenvolvido em C++ para solução de problemas de mecânica computacional. Problemas comsolução analítica e com soluções de referência do tipo benchmark foram utilizados como basepara o desenvolvimento de rotinas de teste. Além disso, outras rotinas de teste unitário dosmódulos fundamentais do software (módulos de álgebra linear, entrada e saída de dados, entreoutros) foram desenvolvidas. A aplicação de técnicas de teste unitário mostrou-se importantepara esse tipo de software permitindo gerar relatórios e identificar erros na etapa de desenvolvimentoe extensão do software. Verificou-se que esta abordagem de testes para o softwarecientífico apresenta desafios que não são encontrados em outras aplicações, dada a naturezados softwares científicos. Ainda assim, tais técnicas se mostraram pertinentes e justificáveis,visto que o seu emprego possibilitou a obtenção de um software de fácil extensibilidade e depuração,tornando possível, por exemplo, a inclusão de algoritmos mais eficientes ou novosmodelos matemáticos sem danificar o funcionamento do software.
Publicado
21-12-2018