sábado, 8 de novembro de 2014

Teste de software - Fundamentos - Parte 1

Nesse tutorial iremos falar um pouco sobre os testes em software, mas para entendermos o conceito de teste de software teremos que rever os  conceitos sobre: Defeitos, Falhas e Erros.


  1. Defeito: Ocorre quando há instrução ou comando incorreto.
  2. Falha: É comportamento inconsistente (consegue funcionar de forma precária).
  3. Erro: È um desvio da especificação.

Figura 1 – Defeito, Falha e Erro


Esses conceitos são importantes, pois sabendo a diferença de cada um e colocando seu software a prova, conseguiremos construir um software de qualidade.



O que é um teste de software?


Segundo Presmman:

Teste é um conjunto de atividades que podem ser planejadas antecipadamente e conduzidas sistematicamente. Um gabarito de testes de software, que é um conjunto de passos no qual podem-se incluir técnicas de projetos de casos de teste e métodos de teste específicos, deve ser definido para o processo de software sendo utilizado no projeto. Fonte: [PRESSMAN, 2010].


Segue uma lista de questões sobre teste de software:

Quem faz?

O gerente de projeto, os engenheiros de software,  devem desenvolver uma estratégia de testes de forma  que um projeto tenha um plano formal de testes.


Porque é importante?


È importante que se tenha uma estratégia para teste de software, se não for bem conduzido implica em perda de tempo e de esforço, além de abrir brechas para erros.


Quais são os passos?


Iniciamos testando os componentes do software, depois os componentes são integrados até que todo o sistema seja contruído. Realiza-se  uma série de testes de alto nível, para descobrir erros relativos ao requisitos do cliente. 


O que é uma especificação de Teste?


È um documento que relata: abordagem da equipe que realiza os testes, descreve estratégias e procedimentos que definem os passos específicos dos testes.

Como ter certeza se os testes foram realizados corretamente?


Realiza-se uma revisão na especificação do teste antes de realiza-lo.



Estratégias de Testes:

A estratégia deve definir:
  • As ferramentas e técnicas de teste a serem empregadas.
  • Os critérios de conclusão e êxito do teste a serem usados.
Uma estratégia para testes de software pode ser vista no contexto da espiral mostrada na figura 2.






Figura 2 - Espiral de Estratégia de Testes


Analisando a figura acima, os teste iniciam apartir do teste de unidade, cada etapa de teste pode ser resumida em:


  1. Teste de Unidade: Avalia a menor unidade do código. Seu objetivo é verificar as falhas de funcionamento em pequenas partes independentes do software.
  2. Teste de integração: Avalia diferentes componentes que são desenvolvidos separadamente mas trabalham em conjunto.
  3. Teste de Avaliação: Avalia o software em ambiente específico, considerando os requisitos definidos pelo cliente em uma situação próxima á realidade.
  4. Teste de sistemas: Este teste tenta impor a visão do cliente, dando normalmente uma perspectiva diferente ao testador.
  5. Teste de Recuperação: Este procedimento avalia a recuperação de uma falha dentro de um tempo especificado em caso de falha.
  6. Teste de Segurança: Neste caso o testador tenta penetrar no sistema provocando ações que prejudiquem alguém.
  7. Teste de estresse: Este procedimento cria ambientes extremos para utilização do software.
  8. Teste de Desempenho: Todo sistema desenvolvido tem em suas especificações de requisitos o desempenho adequado de funcionamento e após a integração dos componentes uma avaliação é indispensável para se obter o seu desempenho real.


Todo sistema desenvolvido tem em suas especificação de requisitos o desempenho adequado de funcionamento e após a integração dos componentes uma avaliação é indispensável para se obter o seu desempenho real.

De acordo com Pressman (2010), o teste é uma série de 4 passos que são implementados sequencialmente, conforme a figura abaixo:






Conclusão:

Vimos que Defeito, erro e falha são diferentes. Defeito(universo físico), erro(universo da informação), Falha (Universo do Usuário). 
Os testes de software são importantes, pois quanto mais rápido acharmos, os defeitos, mais rápido a equipe pode agir, logo acarretará menos custo e mais confiabilidade terá o nosso sistema.


Nenhum comentário:

Postar um comentário