Logotipo do Site Inovação Tecnológica





Informática

Programa detecta bugs inferindo a intenção do programador

Redação do Site Inovação Tecnológica - 13/07/2006

Programa detecta bugs inferindo a intenção do programador

Uma equipe de cientistas da computação da Universidade de Illinois, Estados Unidos, liderados pela professora Yuanyuan Zhou, construiu um conjunto de ferramentas que consegue achar erros em programas - os famosos "bugs" - inferindo as intenções do programador. O programa localizador de erros analisa a forma como o programador escreve o código-fonte.

"A maioria das ferramentas de detecção de bugs exige a reprodução dos erros durante a execução," diz Zhou. "O programa roda significativamente mais lento enquanto é monitorado por essas ferramentas, que observam a existência de certos tipos de comportamento anormal. A maioria de nossos programas, entretanto, funciona examinando apenas o código-fonte, exigindo muito pouco esforço dos programadores."

A ferramenta CP-Miner, por exemplo, encontrou vários bugs nas últimas versões dos mais populares programas de código aberto do mercado. O programa é também extremamente rápido - ele consegue analisar de 3 a 4 milhões de linhas de código para os chamados bugs do "copiar e colar" em apenas meia-hora. Além de examinar, ele corrige o código, fazendo modificações consistentes com o programa como um todo.

Bugs do "copiar e colar" referem-se a erros derivados do reaproveitamento de código, que geralmente aparecem em programas muito grandes. Embora economizem muito tempo dos programadores, copiar e colar rotinas pode ser uma fonte de uma infinidade de bugs, devido à inconsistências entre o código colado e o programa receptor.

Já o programa PR-Miner procura por regras de programação implícitas no código. Detectadas as regras, ele verifica se elas foram seguidas em todo o código.

Programas com alergia

A ferramenta Rx é diferente: ela trata os erros de programa não como "doenças fatais" - que causam o travamento da máquina - mas como alergias - permitindo que o programa "sobreviva".

"Se você é alérgico a gatos, você tenta evitar os gatos," explica a professora. "De forma muito parecida, o Rx é uma terapia que tenta evitar as falhas do software. Se ele falha, o Rx traz o programa de volta para um ponto de checagem recente, e reexecuta o programa em um ambiente modificado."

Seguir Site Inovação Tecnológica no Google Notícias





Outras notícias sobre:
  • Software e Programação
  • Software Livre
  • Simuladores

Mais tópicos