Disponibilidade do aplicativo: testar também é preciso!

Author Photo
9:44 pm - 23 de maio de 2011

A não-disponibilidade e a não-utilização do aplicativo acontecem por várias razões. Podemos citar como exemplos: erros, cancelamentos, tempo de resposta que vira prazo de entrega, controles que engessam a utilização, informações não-solicitadas e falta de atendimento às expectativas do usuário final.

A software quality assurance busca garantir que o aplicativo desenvolvido atenda aos requisitos definidos para o sistema de informação. A sua ação mais concreta é a realização de testes. Afinal, após o aplicativo estar considerado concluído, é conveniente que um grupo independente do desenvolvimento de sistemas verifique se o que está sendo disponibilizado seja coerente com o que foi definido, antes de ser liberado para o ambiente de produção.

De uma maneira simples podemos dividir em quatro etapas a criação,desenvolvimento e implantação de um aplicativo:

a) Definição da necessidade de negócio

Para atender uma nova funcionalidade, a área de negócio deve definir o que necessita em termos de sistemas de informação.

b) Arquitetura da solução e especificação técnica

Considerando-se a necessidade de negócio, a área de tecnologia avalia a possibilidade de solução que atenda à necessidade do produto e elabora a especificação técnica da solução e outras informações complementares, como orçamento e nível de performance desejado.

c) Desenvolvimento do aplicativo

Baseando-se na especificação técnica, é desenvolvido o aplicativo ou o sistema de informação. Nesta fase devem ser realizados os testes de mesa e de cada programa independente. Essa responsabilidade de teste unitário é inerente à função de programação. Quem não estiver realizando esses testes iniciais, não é um bom profissional.

d) Qualidade de Software

Avalia, através de testes, o produto desenvolvido, considerando-se a especificação técnica e funcionalidades para atender a necessidade de negócio. Estando adequado, o aplicativo é liberado para o ambiente real de produção.

A partir de uma boa definição da necessidade de negócio, pode-se elaborar a arquitetura da solução e construir a especificação técnica. Essa última será um detalhamento de como será construído o aplicativo e como será o seu funcionamento. Com isto é possível os desenvolvedores, próprios ou parceiros, implementarem a codificação do aplicativo.

Após o aplicativo ser considerado concluído, a fase de testes (software quality assurance) deveria ser uma simples comprovação de que os requisitos foram seguidos, a implementação foi feita corretamente e que os testes indicarão apenas erros que não poderiam ser identificados isoladamente pelos programas/módulos. Infelizmente, na maioria das organizações, não é isso que ocorre. Requisitos de negócio não indicam o que realmente se deseja, a especificação técnica é incompleta e opções de tratamento da informação não definidas são decididas pelos desenvolvedores.

Tudo isso são ações incorretas que fazem com que erros “apareçam” na fase de teste. Erros que poderiam ser evitados. A pressa é a maior explicação, porém não pode ser uma justificativa adequada. Não adianta correr no início e ficar patinando no final buscando acertar a qualidade do aplicativo. Quantas reuniões são realizadas para definir o que já deveria ter sido definido ou questionado?

Evidentemente nem todos os aplicativos são desenvolvidos dessa forma. Até dentro da mesma organização temos aplicativos que foram desenvolvidos e implantados de forma adequada e temos também aplicativos que cometeram todos os erros citados anteriormente.

O importante de tudo isso é que a organização aprenda. E para isso a área de qualidade de software tem uma responsabilidade grande, desde que também exista vontade de aprender pelas outras áreas: ao acontecer problemas no teste do aplicativo, é necessário identificar as causas do porque esse erro aconteceu e não foi evitado. Nesse momento esclarecemos se existem problemas nos requisitos do negócio, na especificação técnica ou na programação do aplicativo. Se as pessoas da organização entenderem essa ação como algo que a organização aprende, será ótimo. Caso contrário, a organização vai ficar corrigindo erros (que gerarão outros erros) e gastando muito mais tempo para responder a um requisito de negócio. Ou pior: o aplicativo é implantado e os problemas vão acontecer em produção, afetando a disponibilidade da informação.

Software quality assurance pode e deve ser uma área independente que tem como objetivo garantir que o produto entregue está atendendo ao que foi especificado pela área de negócio. Mas também é um conceito que deve existir em todas as pessoas da organização que definem, especificam, desenvolvem e usam sistemas de informação.

Invista tempo na definição da necessidade do negócio e na especificação técnica: os testes encontrarão menos erros, a disponibilidade da informação não será afetada por erros e a organização agradecerá!

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.