Documente Academic
Documente Profesional
Documente Cultură
testes
Apesar de muitas empresas ainda no utilizarem tcnicas de teste de software
para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o
custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia
de qualidade do software.
Vamos a outra realidade, imagine voc adquirindo um carro, que foi projetado,
montado, mas sem ser testado, pois os testes sairiam muito caro, e de repente
voc est andando e nota que na curva o carro no eficiente. Voc ficaria
contente com esta situao? O mesmo acontece com o cliente de um software
ao adquirir um produto que no funciona adequadamente. O Standishgroup,
no relatrio de chaos, apresenta constantemente o resultado da pesquisa e
demonstra que o percentual de software tido como completo e aceitvel
muito baixo. Alm disso, segundo Myers apud. Barti, quanto mais
tardiamente descobrirmos os erros, mais caros estes se tornam. Aplicando-se
assim a regra dos 10 ao custo da correo, ou seja, encontrar um erro durante
o requisito custa 1, por exemplo, durante a fase de anlise e modelagem, custa
10, durante a codificao custa 100, durante a fase de teste, ps
desenvolvimento, custa 1.000 e durante a produo, ou seja, quando j est na
mo do cliente, o processo custa 10.000. Desta forma, importante que a fase
de requisitos possua validaes, evitando-se assim problemas de entendimento
de requisito.
Os problemas de requisitos so reduzidos quando se utiliza de metodologias
geis, isto por que o cliente acompanha o processo e como os ciclos so
curtos, a velocidade da correo tambm o . Mas como muitas empresas
negligenciam o teste durante a fase de desenvolvimento, os erros s so
encontrados tardiamente, elevando os custos dos produtos e criando impactos
negativos aos processos e negcios.
Temos de lembrar que qualidade no uma etapa apenas, uma fase do
desenvolvimento, parte de todo o ciclo de vida de desenvolvimento do
software.
Mas o que qualidade no processo de desenvolvimento de software? Segundo
Barti Qualidade de software um processo sistemtico que focaliza todas as
O TDD
O TDD (Test Driven Development / Desenvolvimento orientado a teste)
parte da metodologia XP e tambm utilizado em diversas outras metodologias,
alm de poder ser utilizada livremente.
O que voc tem a perder utilizando o TDD?
Bem segundo Freeman at al, voc no tem nada a perder, a no ser os seus
bugs.
O TDD transforma o desenvolvimento, pois deve-se primeiro escrever os
testes, antes de implementar o sistema. Os testes so utilizados para facilitar
no entendimento do projeto, segundo Freeman os testes so usados para
clarear a ideia em relao ao que se deseja em relao ao cdigo. Segundo
Kent Beck apud Freeman Finalmente, consegui separar o projeto lgico do
fsico. Sempre me disseram para fazer isso, mas nunca ningum tinha
explicado como, o TDD a forma de se fazer isso. A criao de teste
unitrios ou de componentes parte crucial para o TDD. Segundo Presmann,
Os componentes individuais so testados para garantir que operem
corretamente. Cada componente testado independentemente, sem os outros
componentes de sistema. Os componentes podem ser entidades simples, tais
como funes ou classes de objetos, ou podem ser grupos coerentes dessas
entidades.
assim o TDD vai funcionar como deve, devendo fornecer uma cobertura
completa aos testes.
Alm disso, os testes devem seguir o modelo F.I.R.S.T.
F (Fast) - Rpidos: devem ser rpidos, pois testam
apenas uma unidade;
I (Isolated) - Testes unitrios so isolados, testando
individualmente as unidades e no sua integrao;
R (Repeateble) - Repetio nos testes, com resultados de
comportamento constante;
S (Self-verifying) - A auto verificao deve verificar se
passou ou se deu como falha o teste;
T (Timely) - O teste deve ser oportuno, sendo um teste
por unidade.
Atualmente, existem diversas ferramentas que analisam as coberturas de teste,
podendo ser baixadas gratuitamente da Internet.
Outra vantagem de possuir testes a chamada regresso. Imagine que criamos
os testes, fizemos o sistema e tudo foi entregue ao cliente, mas posteriormente
o cliente pediu pequenas modificaes no sistema, mas no nas regras de
negcio. Os testes j prontos serviro para validar se as modificaes no
criaram problemas nas regras de negcio que j estavam em funcionamento.
Este procedimento exige que testes unitrios estejam prontos, aguardando ser
reutilizados. Logo, segundo Silveira at al., Um teste de unidade deve garantir
que a execuo daquele trecho mnimo de cdigo esteja correta.
Concluso
Neste artigo vimos o TDD e sua importncia para a qualidade de software.
Foram apresentadas ainda algumas ferramentas que permitem a utilizao dos
testes. Este artigo tem como principal objetivo apresentar fundamentos do por
que utilizar testes na fase de codificao e sua importncia para a reduo de
falhas. Vimos que a utilizao de teste durante a fase de desenvolvimento
melhora a qualidade e reduz custos de manuteno.