Buscar

Testes de Software AULA 07

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
TESTES DE SOFTWARE – AULA 7
Rio de Janeiro, 21 de agosto de 2011
ESTRATÉGIA DE 
TESTE DE SOFTWARE
TESTE DE SISTEMA
*
1) Compreender as técnicas de teste de sistema em ambiente de produção ou do usuário;
2) Definir estratégia de testes de sistema em ambiente de produção e do usuário;
3) Implementar testes de sistema em ambiente de produção e do usuário;
4) Avaliar testes de sistema em ambiente de produção e do usuário.
*
OBJETIVOS DESTA AULA
*
 O software é testado para revelar erros cometidos inadvertidamente quando projetado é construído.
Neste sentido torna-se necessária a definição de uma estratégia de teste de software de forma a orientar os desenvolvedores e as equipes independentes de testes, os passos a serem seguidos, o tempo de trabalho e os recursos necessários. 
*
LEMBRANDO
*
“O processo de desenvolvimento de sistemas pode ser visto como uma espiral com suas etapas movimentando-se para dentro enquanto que a estratégia de teste pode ser vista movimentando-se para fora.
*
LEMBRANDO
*
Considerando de um ponto de vista procedimental, o teste no contexto da Engenharia de Software é uma série de quatro passos, que são implementados sequencialmente.
*
LEMBRANDO
*
Serão compreendidas as técnicas de teste de sistema em ambiente de produção ou do usuário. Serão abordadas as estratégias de testes, implementação e avaliação de sistema em ambiente de produção e do usuário. 
O teste de sistema é na realidade uma série de diferentes testes cuja finalidade primária é exercitar totalmente o sistema. Estes diferentes tipos de testes apesar de terem finalidades diferentes, funcionam no sentido de verificar se os elementos do sistema foram integrados.
*
INTRODUÇÃO
*
As etapas executadas durante o projeto de software e o teste podem aumentar muito a probabilidade de uma integração de software bem-sucedida em um sistema maior.
O software uma vez validado deve ser combinado com outros elementos do sistema, por exemplo, hardware, pessoas e bases de dados e assim validado se todos os elementos se combinam corretamente e se a função e o desempenho global do sistema são conseguidos.
*
INTRODUÇÃO
*
O teste de sistema se refere ao comportamento de todo o produto definido pelo escopo de um projeto em desenvol-vimento. Agora, ambiente de teste deve corresponder o máximo possível ao ambiente de produção, para minimizar que os riscos de falhas específicas de ambiente não serem encontradas durante o teste.
“Não é apenas uma configuração de hardware, mas toda estrutura onde o teste será executado”. Fonte: Base de conhecimento em teste de software
*
TESTE DE SISTEMA
*
O objetivo do teste de sistema é realizar a execução do sistema como um todo, dentro de um ambiente operacional controlado, para validar a exatidão e perfeição na execução de suas funções, acompanhando cenários sistêmicos elaborados pelo profissional de requisitos do projeto e devem retratar os requisitos funcionais e não-funcionais do sistema.
*
TESTE DE SISTEMA
*
Normalmente este tipo de teste é realizado por uma equipe de teste independente, onde o analista de teste irá elaborar os casos de testes, normalmente em conjunto com os desenvolvedores e executando os testes em um ambiente controlado, no caso o ambiente de teste. 
*
TESTE DE SISTEMA
*
Do ponto de vista psicológico, as atividades de análise e projeto, junto com a programação, são tarefas construtivas.
Por outro lado, a atividade de teste pode ser vista, psicologicamente, como uma tarefa destrutiva.
Por esse motivo, é comum o desenvolvedor “pisar leve”, projetando e executando testes que demonstrem que o sistema funciona, em vez de descobrir erros.
Se o Engenheiro de Software não o encontrar, o cliente o fará!
*
LEMBRANDO: QUEM REALIZA O TESTE?
*
Normalmente para que o processo de teste transcorra de forma íntegra é comum a utilização de um grupo independente de teste, já que as pessoas que criaram o software não devem ser as que irão realizar os testes. Seria um conflito de interesses pois foram elas que o “criaram”.
Este grupo trabalha de forma conjunta e existem testes que somente serão conduzidos pelos desenvolvedores, como o teste de unidade (já discutido). 
*
LEMBRANDO: QUEM REALIZA O TESTE?
*
Existem várias responsabilidades e papéis dentro da equipe:
*
Fonte: Rios.E & Moreira,T. Testes de Software. Rio de Janeiro. Alta Books, 2003
LEMBRANDO: QUEM REALIZA O TESTE?
*
Interpretações Erradas:
1 - De modo algum o desenvolvedor deve testar.
	 ele é sempre responsável por testar as unidades individuais (componentes) do programa. Em muitos casos também realiza o teste de integração (teste da estrutura completa do programa). Só depois é que um Grupo Independente de Teste se envolve.
*
LEMBRANDO: QUEM REALIZA O TESTE?
*
Interpretações Erradas (cont.):
2 - O software deve ser “jogado” aos “estranhos” do ITG.
	 os dois grupos trabalham estreitamente unidos ao longo do projeto de software. O desenvolvedor deve também estar à disposição para corrigir erros que sejam descobertos.
*
LEMBRANDO: QUEM REALIZA O TESTE?
*
Interpretações Erradas (cont.):
3 - O ITG se envolverá com o projeto somente quando o teste começar.
  O ITG faz parte da equipe de desenvolvimento de software, ou seja, se torna envolvido a partir do processo de especificação ao longo de um grande projeto.
*
LEMBRANDO: QUEM REALIZA O TESTE?
*
O papel do ITG é remover os problemas inerentes ao fato de deixar que o construtor teste o que foi construído, de forma a suprimir o conflito de interesses.
Em muitos casos o ITG pertence ao grupo de GQS, conseguindo assim um grau de independência maior.
*
LEMBRANDO: QUEM REALIZA O TESTE?
*
Os testes podem ser baseados em:
Especificação de riscos e/ou de requisitos,
Processos de negócios,
Casos de uso. 
*
TESTE DE SISTEMA
*
Ainda no começo das nossas aulas, nós reforçamos o fato de que o software é apenas um elemento de um sistema maior baseado em computador.
Em última análise, o software é incorporado aos outros elementos do sistema, (exemplo: hardware, pessoal e informação) e uma série de testes de integração e validação do sistema é conduzida.
*
TESTE DE SISTEMA
*
Estes testes saem do escopo do processo de software e não são conduzidos somente por engenheiros de software.
No entanto, passos tomados durante o projeto e o teste de software podem melhorar muito a probabilidade de integração de software bem sucedida no sistema maior.
*
TESTE DE SISTEMA
*
Um problema clássico do teste de Sistema é o de ser “dedo-duro”. Isso ocorre quando um erro é descoberto, e cada desenvolvedor de um elemento do sistema culpa o outro pelo problema.
*
TESTE DE SISTEMA
*
Em vez de se satisfazer com este contrassenso, o engenheiro de software deve antecipar problemas potenciais de interface e:
Projetar caminhos de manipulação de erros que testem toda a informação que chega de outros elementos do sistema;
Conduzir uma série de testes que simule maus dados ou outros erros em potencial na interface de software;
*
TESTE DE SISTEMA
*
Registrar os resultados dos testes para usá-los como “evidência;
Participar do planejamento e projeto de testes de sistema para garantir que o software seja adequadamente testado.
*
TESTE DE SISTEMA
*
O teste de sistema é na realidade uma série de diferentes testes cuja finalidade primária é exercitar totalmente o sistema e que apesar de terem finalidades diferentes, todos funcionam no sentido de verificar se os elementos do sistema foram integrados adequadamente e executam as suas funções corretamente: 
*
TESTE DE SISTEMA
*
Teste de recuperação;
Teste de segurança;
Teste de esforço;
Teste de desempenho;
Teste de disponibilização.
*
TESTE DE SISTEMA
*
O teste de recuperação é um teste de sistema que força o software a falhar de várias formas e verifica se a recuperação é
executada corretamente. 
Se a recuperação for automática, a reinicialização, os mecanismos de verificação, recuperação de dados e reinício são avaliados quanto à correção. Caso a recuperação requeira a intervenção humana , é avaliado o tempo médio de reparo (mean-time-to repair – MTTR) para determinar se está dentro dos limites aceitáveis.
*
TESTE DE RECUPERAÇÃO
*
O teste de segurança tenta verificar se os mecanismos de proteção incorporados ao sistema vão de fato protegê-lo contra acesso indevido.
A principal meta do teste de segurança é garantir que os dados ou funções de um sistema possam ser acessados apenas por atores autorizados a acessá-las.
*
TESTE DE SEGURANÇA
*
Durante o teste de segurança, o testador faz o papel do indivíduo que quer invadir o sistema o sistema e desta forma tentará, por exemplo, obter senhas por meios externos, sobrecarregar o sistema ou ainda causar erros propositadamente. Todas as formas de ataque de acesso indevido devem ser simuladas.
*
TESTE DE SEGURANÇA
*
Os principais objetivos a serem alcançados com este tipo de teste são:
Assegurar que os mecanismos de controle contra acessos indevidos foram corretamente implementados;
Analisar as ameaças e vulnerabilidades, tanto físicas quanto lógicas;
*
TESTE DE SEGURANÇA
*
Os principais objetivos a serem alcançados com este tipo de teste são (cont.):
Garantir que os dados do sistema estão protegidos adequadamente;
Assegurar que todos os riscos que envolvem os acessos indevidos foram identificados.
*
TESTE DE SEGURANÇA
*
O teste de desempenho ou performance, como também é conhecido, mede e avalia o tempo de resposta, o número de transações e outros requisitos sensíveis ao tempo de resposta do sistema.
Este tipo de teste é feito em todas as etapas no processo de teste, inclusive em nível de unidade, já que o desempenho de um módulo individual pode ser avaliado durante o teste.
*
TESTE DE DESEMPENHO
*
Entretanto o desempenho de um sistema só pode ser avaliado depois que todos os elementos do sistema estiverem totalmente integrado.
 Os principais objetivos a serem alcançados com este tipo de teste são:
*
TESTE DE DESEMPENHO
*
 Os principais objetivos a serem alcançados com este tipo de teste são:
Determinar o tempo de resposta das transações;
Verificar se os critérios de desempenho estabelecidos estão sendo atendidos;
Identificar pontos de gargalo no sistema;
Verificar o nível de utilização do hardware e software.
*
TESTE DE DESEMPENHO
*
Normalmente este tipo de teste requer instrumentação de hardware e software, tendo em vista a necessidade da medição dos recursos utilizados de forma precisa. Nas próximas aulas estudaremos sobre estas ferramentas automatizadas de teste.
*
TESTE DE DESEMPENHO
*
O teste de disponibilização também conhecido como teste de configuração, exercita o software em cada ambiente no qual deve operar, tendo em vista que muitos softwares operam em uma variedade de plataformas e sob mais de um ambiente de sistema operacional.
*
TESTE DE DIPONIBILIZAÇÃO
*
Este tipo de teste examina todos os procedimentos de instalação e software de instalação que serão utilizados pelos clientes e toda a documentação que será usada para fornecer o software para os usuários finais. Pode inclusive abranger combinações de navegadores com vários sistemas operacionais diferentes.
*
TESTE DE DIPONIBILIZAÇÃO
*
O teste de esforço também conhecido como teste de estresse colocam os programas em situações anormais. 
“Até onde podemos forçar o sistema até que falhe?”
*
TESTE DE ESFORÇO
*
A principal meta do teste de esforço é entender o comportamento do sistema durante condições-limite de execução ou fora da tolerância esperada.
Tipicamente envolve a execução do sistema com baixos recursos de hardware e software, ou a concorrência por estes recursos.
*
TESTE DE ESFORÇO
*
Os principais objetivos a serem alcançados neste tipo de teste são:
Determinar a que condições-limite de recursos o software é capaz de ser executado;
Determinar quais volumes de transação, normais e acima dos normais, podem ser processados num período de tempo esperado;
*
TESTE DE ESFORÇO
*
Os principais objetivos a serem alcançados neste tipo de teste são (cont.):
Verificar se o sistema é capaz de garantir tempos adequados de resposta sendo executado em condições-limite;
Verificar se há restrições quanto ao ambiente em que o software vai operar.
*
TESTE DE ESFORÇO
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais