terça-feira, 28 de agosto de 2012

A Importância do Teste de Software


Hoje em dia é praticamente impossível realizar qualquer tarefa do nosso dia a dia sem que de alguma maneira tenhamos algum tipo de sistema baseado em computador envolvido. Nem mesmo as coisas mais simples, como pegar o leite da geladeira para tomar o nosso café da manhã escapam dessa influência. Todo o processo pelo qual o leite passou até chegar à nossa geladeira teve sem dúvida participação de vários tipos de sistemas baseados em computador. Mesmo o simples fato de a geladeira estar ligada envolve esses sistemas, a transmissão da energia elétrica é controlada por sistemas baseados em computador, o processo de cobrança é controlado por sistemas baseados em computador. É, portanto, justificada a preocupação com o funcionamento adequado desses sistemas. Quando eles falham grandes prejuízos podem ser gerados. Prejuízos tanto financeiros quanto envolvendo riscos à vida humana.

Os sistemas baseados em computador são, em geral, divididos em componentes de hardware – equipamentos necessários para que o sistema funcione, e os componentes de software. Com a evolução do hardware tivemos uma redução substancial do preço desses equipamentos nas últimas décadas, levando à disponibilização de equipamentos cada vez mais confiáveis e poderosos a preços cada vez mais acessíveis. Nesse contexto a preocupação com a confiabilidade e principalmente com os custos de desenvolvimento passou a ser o software.

A engenharia de software é uma disciplina que vem se desenvolvendo em resposta a essa necessidade. Aplicando técnicas, métodos e ferramentas, muitas delas com origem em outras disciplinas de engenharia, ao desenvolvimento de software. Um processo de desenvolvimento de software genérico envolve as fases de definição, construção e manutenção de um software. A atividade de teste está relacionada à fase de construção, sendo responsável inclusive pela validação final antes de se colocar o software em operação.

Apesar dessa importância ela é uma das atividades mais negligenciadas nas empresas hoje em dia. Em geral falta planejamento para se realizar a atividade de maneira apropriada e muitas vezes por falta de uma organização do processo de desenvolvimento não se tem tempo para que a execução dos testes tenha o mínimo de eficácia.

A falta de experiência com a atividade de teste leva os gestores do processo de desenvolvimento de software a até mesmo definir de maneira inadequada os objetivos da atividade. É comum se definir o objetivo da atividade de teste como sendo o de mostrar que o software em desenvolvimento está correto. Ou seja, o testador teria o objetivo de mostrar que o software está correto, não havendo defeitos a serem corrigidos. Mas se a tarefa do testador for a de mostrar que o software está correto, e eles tentarem realizar bem a sua tarefa, a presença de defeitos não será descoberta e o software será entregue ao cliente cheio de problemas não revelados durante o teste! Um absurdo...

Portanto o objetivo da atividade de teste deve ser o de mostrar que o software sendo testado tem defeitos, desta forma permitindo que os desenvolvedores encontrem e removam esses defeitos deixando o software mais confiável antes de ser entregue ao cliente.
Não deixe de considerar os aspectos relacionados ao teste de software quando estiver fazendo o planejamento do desenvolvimento de algum sistema baseado em computador dentro da sua empresa, essa preocupação lhe trará muitos benefícios no futuro.

Prof. Dr. Plínio Vilela
http://pliniovilela.blogspot.com

Nenhum comentário: