muita atencao e cuidado.5 - TestesO teste de software e a maneira deverificar a qualidade do fotware em relacao ao contexto em que eledeve operar. Isso inclui o processo de utilizar oproduto para encontrar seus defeitos.Oteste e um processo realizado pelo testador de software, que abrangeoutros processos da engenharia de software, e que envolve acoes quevao do levantamento de requisitos ate a execucao do testepropriamente dito.Segundo a DEVMEDIA:Testede software e o processo de execucao de um produto para determinarse ele atingiu suas especificacoes e funcionou corretamente noambiente p$paymentFormara o qual foi projetado. O seu objetivo erevelar falhas em um produto, para que as causas dessas falhas sejamidentificadas e possam ser corrigidas pela equipe de desenvolvimentoantes da entrega final. Por conta dessa caracteristica dasatividades de teste, dizemos que sua natureza e destrutiva, enao construtiva, pois visa ao aumento da confianca de umproduto atraves da exposicao de seus problemas, porem antes desua entrega ao usuario final Existemalguns conceitos basicos associados ao teste de software que sao:defeito, erro e falha.Afigura 1 expressaa diferenca entre esses conceitos. Defeitosfazem parte do universo fisico (a aplicacao propriamente dita) esao causados por pessoas, por exemplo, atraves do mal uso de umatecnologia. Defeitospodem ocasionar a manifestacao de errosem um produto, ou seja, a construcao de um software de formadiferente ao que foi especificado (universo de informacao). Porfim, os errosgeram falhas,que sao comportamentos inesperados em um software que afetamdiretamente o usuario final da aplicacao (universo do usuario) epode inviabilizar a utilizacao de um software.Existem alguns conceitos bem conhecidos de teste que sao;A - Caixa BrancaTambem chamada de teste estrutural ou orientado a logica, a tecnica de caixa-branca avalia o comportamento interno do componente de software. Essa tecnica trabalha diretamente sobre o codigo fonte do componente de software para avaliar aspectos tais como: teste de condicao, teste de fluxo de dados, teste de ciclos, teste de caminhos logicos, codigos nunca executados.Os aspectos avaliados nesta tecnica de teste dependerao da complexidade e da tecnologia que determinarem a construcao do componente de software, cabendo portanto avaliacao de mais aspectos que os citados anteriormente. O testador tem acesso ao codigo fonte da aplicacao e pode construir codigos para efetuar a ligacao de bibliotecas e componentes. Este tipo de teste e desenvolvido analisando o codigo fonte e elaborando casos de teste que cubram todas as possibilidades do componente de software. Dessa maneira, todas as variacoes relevantes originadas por estruturas de condicoes sao testadas.Um exemplo bem pratico desta tecnica de teste e o uso da ferramenta livre JUnit para desenvolvimento de classes de teste para testar classes ou metodos desenvolvidos em Java. Tambem se enquadram nessa tecnica testes manuais ou testes efetuados com apoio de ferramentas para verificacao de aderencia a boas praticas de codificacao reconhecidas pelo mercado de software. A aderencia a padroes e boas praticas visa principalmente a diminuicao da possibilidade de erros de codificacao e a busca de utilizacao de comandos que gerem o melhor desempenho de execucao possivel. Apesar de muitos desenvolvedores alegarem que nao ha ganhos perceptiveis com essa tecnica de teste aplicada sobre unidades de software, devemos lembrar que, no ambiente