26 de fevereiro de 2010

Parasoft C++Test: um Salto de Qualidade de Software na MAV Tecnologia

É inegável o efeito que falhas de software têm no dia-a-dia das empresas. E a questão é simples: todo software falha! O que diferencia cada empresa e cada projeto é a frequencia com que as falhas ocorrem e o tempo de respostas a elas.

Na MAV nós temos rotinas de testes de software implantadas que buscam cercar toda a lógica do produto, principalmente nos módulos de baixo nível, que tem maior complexidade. Infelizmente todos os testes de unidade, testes de sistemas e testes de interface do mundo juntos não identificariam todos os erros de um software. A causa disso são os erros de implementação. A lógica estaria correta mas existe uma falha na utilização da memória ou um caso de erro não verificado no código. Por exemplo, há um mês identificamos e corrigimos um bug no MAV 5.0 que só acontecia quando o servidor de DNS da rede estava indisponível.

Para resolver este problema a MAV Tecnologia concluiu nesta semana o processo de compra do software C++Test Server Edition da empresa americana Parasoft. A funcionalidade de interesse, chamada BugDetective, é simplesmente fantástica. O BugDetective do C++Test analisa todo o código fonte de um software procurando por erros de implementação. O software analisa cada possível valor de variável, cada possibildade de resultado para cada if/while/for, cada alocação de memória, cada chamada de função chamada e cada possível retorno. O software trilha todos os caminhos possíveis que a execução do software pode ter procurando por condições que levam o software a falhar.

O resultado foi simplesmente incrível. Nós analisamos o código fonte do MAV 5.0 e foram encontradas um número muito grande de situações raras que levariam horas, se não dias, para depurar e identificar a causa. O software identificou situações que eu, com 13 anos de experiência com programação, fui surpreendido. Identificou casos que dependem de uma análise tão profunda e tão longa que é praticamente impossível que um revisor de código humano visualize.

Para mim esta aquisição representa um marco, um salto na nossa qualidade de software. A união de testes de unidade, testes de sistema e testes de interface com a análise estática de código fonte realizada pelo C++Test garantem o nível de qualidade que nós e nossos clientes esperam dos produtos da MAV.

Um abraço e tenham um bom dia.

Nenhum comentário: