Teste de software
Por que fazer testes? Segundo a lei de Murphy, se algo pode dar errado, vai dar. Se tudo parece estar indo bem é por que você não está prestando atenção... e a natureza sempre fica do lado do erro escondido. Ou seja, ninguém é infalível e um erro é sempre muito mais evidente que centenas de acertos.
Parte 2: Técnicas
Existem algumas técnicas de teste, as mais famosas são:
Caixa-branca
Testa o código fonte, códigos e algorítimos. Esse teste garante que TODAS as linhas de código sejam executadas ao menos uma vez. Garante também que todas as possibilidades lógicas: True e False sejam testadas e verifica a validade do código, identificando sujeira e código inútil.
Caixa-preta
Testa a interface e a saída. Dados de entrada são fornecidos e os dados de saída são comparados a saída esperada. Quanto mais entradas são fornecidas, mais completo é o teste. Em um teste perfeito TODAS as entradas seriam testadas, mas na maioria dos casos isso é impossível, por diversos motivos: dinheiro, tempo, mão de obra...
O ideal é escolher um bloco de entradas que enriqueça o teste.
Basicamente o teste da caixa preta é um teste de uso, onde botões, links e execuções são testadas e validadas. O teste da caixa preta pode ser executado em todas as fases do teste.
Caixa-cinza
É um misto entre os testes da caixa branca e da caixa preta, analisando o código, as entradas e as saídas, em alguns casos é feito inclusive engenharia reversa.
Os testes são feitos em fases diferentes, por pessoas diferentes, desde profissionais criativos e qualificados até chegar ao usuário final.
Os testes não devem ser feitos pelo desenvolvedor e sim por uma equipe destrutiva, no bom sentido.
Os testes precisam trazer uma revisão e um correção antes da implementação. Os testes são preventivos e não corretivos.
Caixa-branca
Testa o código fonte, códigos e algorítimos. Esse teste garante que TODAS as linhas de código sejam executadas ao menos uma vez. Garante também que todas as possibilidades lógicas: True e False sejam testadas e verifica a validade do código, identificando sujeira e código inútil.
Caixa-preta
Testa a interface e a saída. Dados de entrada são fornecidos e os dados de saída são comparados a saída esperada. Quanto mais entradas são fornecidas, mais completo é o teste. Em um teste perfeito TODAS as entradas seriam testadas, mas na maioria dos casos isso é impossível, por diversos motivos: dinheiro, tempo, mão de obra...
O ideal é escolher um bloco de entradas que enriqueça o teste.
Basicamente o teste da caixa preta é um teste de uso, onde botões, links e execuções são testadas e validadas. O teste da caixa preta pode ser executado em todas as fases do teste.
Caixa-cinza
É um misto entre os testes da caixa branca e da caixa preta, analisando o código, as entradas e as saídas, em alguns casos é feito inclusive engenharia reversa.
Plano de testes
O plano de testes deve ser escrito ANTES do teste ser efetuado e deve ser seguido. O plano de testes identifica as necessidades a serem testadas, os métodos a serem usados e os passos a serem seguidos.Resumo
O teste precisa ser objetivo, analisar os itens e encaminhar os erros aos desenvolvedores. O teste deve ser contínuo e paralelo ao desenvolvimento.Os testes são feitos em fases diferentes, por pessoas diferentes, desde profissionais criativos e qualificados até chegar ao usuário final.
Os testes não devem ser feitos pelo desenvolvedor e sim por uma equipe destrutiva, no bom sentido.
Os testes precisam trazer uma revisão e um correção antes da implementação. Os testes são preventivos e não corretivos.
Ah, ia me esquecendo, discordo num ponto : "Os testes não devem ser feitos pelo desenvolvedor". Acredito que estes devem fazer testes sim, de suas unidades criadas. E além disso, passar por uma bateria de testes por uma equipe especializada nesta tarefa.
Abraços