terça-feira, 24 de setembro de 2013

terça-feira, 17 de setembro de 2013

Testes de Sistema: Onde, Quando e Como?

Quando usamos a expressão “Testes de Sistema” estamos a referir-nos aos testes a que sujeitamos um sistema de software ou uma aplicação como um todo. Os Testes de Sistema são realizados sobre a totalidade da aplicação para validar o seu comportamento global face aos requisitos do negócio e dos utilizadores finais. Os Testes de Sistema são classificados como “caixa preta”; por esse motivo, a informação relativa à arquitectura, desenho e código da aplicação não é relevante para este tipo de testes.

Geralmente, ao testar software um tester tende a distinguir os bugs detectados nos interfaces dos detectados nas componentes. Mas durante os Testes de Sistema, o foco da atenção é o desenho e o comportamento do software, assim como as expectativas do cliente. Por esse motivo há quem designe este tipo de testes como “testes globais” no ciclo de desenvolvimento de software.

Quando surgem os Testes de Sistema?

Quando todas as componentes estiverem desenvolvidas e instaladas, o sistema é testado na sua totalidade de forma a garantir que responde a todos os requisitos de negócio, funcionais e não-funcionais. Alguns dos Testes de Sistema podem ter por base testes unitários e testes de integração, mas são executados num ambiente semelhante ao ambiente de produção. Na maioria dos casos, existe uma equipa à parte que se dedica à execução dos testes de sistema

Porquê realizar Testes de Sistema:

  • Esta é a primeira ocasião em que o sistema é testado como um todo.
  • Pretende-se confirmar que se cumprem os requisitos de negócios, técnicos, funcionais e não funcionais do software. Assim confirma-se globalmente que a aplicação corresponde às expectativas de todos os intervenientes.
  • Os testes de sistema são efectuados num ambiente muito semelhante ao ambiente de produção, onde a versão final será instalada.

Critérios para iniciar os Testes de Sistema:
  1. Testes unitários estão concluídos;
  2. Testes de integração estão concluídos;
  3. Foi terminado o desenvolvimento de software;
  4. Está preparado um ambiente de testes de sistema que simula com exactidão o ambiente de produção.

Teste de Sistema em sete etapas:
  1. Desenvolver um plano de testes de sistema;
  2. Desenvolver casos de teste do sistema;
  3. Escolher ou criar dados para serem usados nos testes;
  4. Se necessário, preceder à automatização dos testes de sistema;
  5. Executar os casos de teste
  6. Corrigir os erros detectados e executar testes de regressão;
  7. Se necessário, realizar o ciclo de testes de software, se possível num ambiente diferente.

O conteúdo de um Plano de Testes de Sistema pode variar de empresa para empresa ou de projecto para projecto. Este Plano baseia-se na estratégia de testes e do plano de projecto. É importante ter presente que um Plano de Testes de Sistema deve incluir:
  • Definição do âmbito;
  • Objectivos e propósitos;
  • Identificação das principais áreas (ou das áreas críticas);
  • Definição dos entregáveis;
  • Plano de Testes de Sistema;
  • Calendário;
  • Critérios de aceitação e conclusão;
  • Atrasos e alterações de critérios de testes;
  • Caracterização do ambiente de testes;
  • Definição do processo de aceitação;
  • Participantes e plano de formação;
  • Funções e responsabilidades;
  • Dicionário.

Como criar casos de Teste de Sistema: 
Os casos de Teste de Sistema são escritos da mesma forma que os casos de teste funcionais. Mas há dois aspectos a ter em conta quando escrevemos casos de Teste de Sistema:
  1. Os CT’s de Sistema devem incluir use cases e cenários
  2. Os CT’s de Sistema devem responder a todos os requisitos, sejam técnicos, de interface, funcionais, não-funcionais, de performance e outros.

Segundo a Wikipedia, existem dezenas de diferentes tipos de testes que podem ser realizados durante os Teste de Sistema. Entre eles encontramos: testes de Interface com utilizador, testes de usabilidade, testes de performance, testes de compatibilidade, testes de tratamento de erros, testes de carga, testes de stress, testes de ajuda ao utilizador, testes de segurança, testes de escalabilidade, testes de capacidade, testes exploratórios, testes de regressão, testes de fiabilidade, testes de recuperação, testes de instalação, testes de potência, teste de manutenção, testes Ad-hoc, testes de falha e recuperação e os testes de acessibilidade.

Cada Caso de Teste de Sistema deve ter:
  • Um identificador único;
  • Uma classificação interna do projecto;
  • Um nome de Tester que será responsável pela sua execução;
  • Identificação do(s) requisito(s) associado(s) ou breve descrição da funcionalidade a ser testada;
  • Passos a seguir na execução do Teste;
  • Resultado previsto para cada passo que é executado;
  • Dados de entrada;
  • Resultado final do Caso de Teste (Sucesso/ Falha);
  • Revisão do teste.

-------------------------------------------
Traduzido e adaptado de: How To Accomplish System Testing?