11 de janeiro de 2007
Tudo pronto? Vamos testar!
Saiba mais sobre a etapa de testes na produção de aplicativos – e entenda por que as empresas estão cada vez mais interessadas nela
Por Aline Brandão
Se uma fábrica de pneus não submetesse seus produtos a uma bateria de testes, imagine como aumentaria o número de acidentes de carro. Os automóveis também passam por várias verificações antes de chegarem ao comprador. Textos acadêmicos e literários precisam passar pelas mãos de um revisor antes de serem publicados. Por que seria diferente com softwares? Para o Gerente de Desenvolvimento da 3Elos Segurança de Informação, Luiz Marques, isso é uma característica (ruim) da TI.
“Tradicionalmente os testes são deixados pra segundo plano, feitos de maneira insuficiente – diz.
A 3Elos é uma empresa relativamente jovem, especializada em serviços de segurança de software. Há cerca de 2 anos, a companhia passou a adotar um esquema formal de testes. Os resultados não demoraram a aparecer: os problemas foram descobertos mais rapidamente, a incidência de erros baixou e a qualidade dos produtos finais melhorou muito.
As várias etapas
Avaliações fazem parte de todo o ciclo de desenvolvimento de um software. Antes mesmo da produção do código, existe uma série de testes – chamada de Testes de Verificação – que envolve, entre outras responsabilidades, estudar os requisitos e a modelagem do aplicativo.
Após (ou mesmo durante) a codificação, vem a etapa da revisão de código. É um teste estático: avalia se o código está dentro das normas e padrões estabelecidos pela empresa, se usa as melhores práticas propostas para aquela linguagem e também a complexidade com que foi construído. “A verificação de código serve para ver se o trabalho foi produzido dentro dos padrões, não tem a obrigação de ver se ele realiza o que deveria realizar – explica o sócio-Diretor da RSI, Roberto Murillo.
A revisão de código é a última parte dos testes de verificação. Para realizá-la, os profissionais da área de testes contam com a ajuda de ferramentas específicas, muitas vezes voltadas para uma só linguagem. O processo funciona esclarecendo quais são as estratégias, normas e padrões da instalação, e com isso definindo parâmetros em softwares de teste. Nos resultados, essas ferramentas indicam se o código foi construído de forma ideal.
“Isso vai determinar se a manutenção desse programa será tranqüila, qual será a possibilidade de ele dar problemas e quantos outros testes nós teremos que fazer em cima desse código – diz Murillo.
Validação até o “test-drive”
Outros testes? Nas palavras de Murillo, “você pode ter um código construído da melhor maneira possível, mas que simplesmente não faz o que você quer.” Para isso existe a segunda fase da rotina de testes, a Validação. A esta fase pertencem os testes de unidade, de sistema e a validação funcional.
Testes de unidade podem ser aplicados ao longo do processo de codificação. Estes testes avaliam classes ou módulos do código, “quebrando” o trabalho em partes menores e facilitando a vida de quem está procurando erros. Segundo Luiz Marques, o conceito é bastante popular entre os adeptos do eXtreme Programming e também tem a ver com desenvolvimento orientado a objetos. “Se eu testo cada pedacinho de diversas formas, eu praticamente garanto que aquela parte vai funcionar. Quando você roda o teste em todo o código, a chance de erro diminui, porque você garantiu que aquele terreno estava firme – afirma.
Os testes de sistema servem para avaliar as configurações de sistema exigidas pelo aplicativo e os níveis de stress a que ele é resistente. O produto é testado em diferentes máquinas e sistemas operacionais. Quando o programa está tecnicamente perfeito, ainda há a validação funcional, para garantir que ele cumpre com todas as funções determinadas na verificação de requisitos – ou seja, se ele serve para o que deveria servir. Depois de tudo isso, a última etapa é o teste de “Aceite”: esse é o “test-drive” do programa, quando o cliente confere a homologação (simulação do ambiente de produção do aplicativo).