Saturday, June 29, 2013

Processo de Testes

O que é Teste de Software?
A atividade de teste de software é o processo de executar um sistema com a intenção de descobrir um erro.
O que é um teste bem sucedido?
É aquele que  revela um erro ainda não descoberto.
Cenários comuns no contexto de testes de softwares
  • Falta de planejamento do tempo e custo;
  • Preparação e execução do teste são feitas superficialmente;
  • O teste é a última etapa do processo de desenvolvimento;
  • Testes são tratados como causador de aumento dos custos e prazos dos projetos;
  • Testes são executados pela equipe de desenvolvimento;
Esses cenários são visto com frequência nas empresas de software. Temos que levar em consideração que a falta de planejamento e preparação, a execução tardia e pelos próprios desenvolvedores influenciam negativamente na qualidade dos produtos. Os testes devem ser efetuados de maneira planejada e por profissionais de teste.
Testar software envolve:
  • Processos
  • Equipe de Teste
  • Versões de software(s
  • Releases
  • Ferramentas
A parti do momento que o planejamento do processo de desenvolvimento do software é iniciado devemos também iniciar o planejamento dos testes. Todas as etapas do processo de testes devem ser executadas em paralelo com o processo de desenvolvimento.
Níveis de teste de software
O planejamento dos testes deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento do software.
Os principais níveis de teste de software são:
Teste de Unidade: também conhecido como testes unitários. Tem por objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código.
Teste de Integração: visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto.
Teste de Sistema: avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final. Dessa maneira, os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software. Verifica se o produto satisfaz seus requisitos.
Teste de Aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado.
Teste de Regressão: Teste de regressão não corresponde a um nível de teste, mas é uma estratégia importante para redução de “efeitos colaterais”. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Pode ser aplicado em qualquer nível de teste.

Modelo V

1. Inicialmente é planejado o teste de aceitação a partir do documento de requisitos;
2. Após isso é planejado o teste de sistema a partir do projeto de alto nível do software;
3. Em seguida ocorre o planejamento dos testes de integração a partir o projeto detalhado;
4. E por fim, o planejamento dos testes a partir da codificação.
Este modelo introduz a criação de testes e cenários de teste durante o ciclo de desenvolvimento do software, ao contrário de outros que só fazem testes no fim do ciclo. Este modelo disponibiliza diferentes estados de teste.
 Vantagens do modelo V:
  • A fase de teste começa no início do ciclo.
  • A segunda fase de testes é extremamente reduzida.
  • Os “test plans” detalhados em cada fase do ciclo ajudam compreender melhor o qual a origem do problema.
  • O modelo V é um standard internacional para o desenvolvimento de sistemas IT, sendo superior ao modelo cascata e ao modelo espiral no endereçamento de grandes projetos IT.
Desvantagens:
  • Continua a não ser suficientemente flexível;
  • É necessário maior feedback entre todas as fases do ciclo.

No comments: