• Teste de Sistemas
• Começam após a conclusão dos testes de integração.
• Encerram quando se adquire confiança razoável nos recursos do sistema e no fato que os problemas foram satisfatoriamente corrigidos de modo a permitir o início dos testes de aceitação.
• O planejamento dos testes do sistema parte dos casos de teste funcionais. • Testes funcionais e de caixa preta para grupos de programas.
• Testes dos recursos funcionais do sistema
– Fornecer evidências sistemáticas de que todas as funções estão disponíveis tal como foram especificadas.
• Testes do desempenho do sistema
– Testes complementares necessários para medir os limites de desempenho do sistema: tempo de resposta, requisitos de processamento e tamanho dos arquivos.
Teste de Sistemas
• Tipos de testes em teste de sistemas
– Teste de interface gráfica de usuário - Graphical user interface testing – Teste de Usabilidade - Usability testing
– Teste de Desempenho do software - Software performance testing – Teste de compatibilidade - Compatibility testing
– Teste de exceção - Exception handling – Teste de carga - Load testing
– Teste de volume - Volume testing – Teste de stress - Stress testing
– Teste de segurança - Security testing – Teste de escalabilidade - Scalability testing – Teste de sanidade - Sanity testing
– Teste fumaça - Smoke testing
– Teste exploratório - Exploratory testing – Teste ad hov - Ad hoc testing
– Teste de regressão - Regression testing – Teste de instalação - Installation testing
Teste de Sistemas
• Teste de usabilidade
• Envolve a observação sistemática sob condições controladas para determinar o quão bem as pessoas podem usar o produto.
• A criação de um teste de usabilidade envolve a criação cuidadosa de um cenário, ou de uma situação realista, onde a pessoa executa uma lista de tarefas usando o produto que está sendo testado enquanto observadores observam e tomam notas.
• Vários outros instrumentos de teste, tais como instruções de script, protótipos de papel e questionários de pré-e pós-teste também são usados para obter feedback sobre o produto que está sendo testado.
• Por exemplo, para testar a função de anexação de um programa de e-mail, um cenário descreveria uma situação em que uma pessoa precisa para enviar um anexo de e-mail, e peça-lhe para realizar esta tarefa.
• Teste de Corredor (Hallway testing) é um método geral de testes de usabilidade. Ao invés de usar um grupo de testadores treinado “em casa”, apenas 5-6 pessoas aleatórias são trazidas para testar o produto ou serviço. O nome da técnica refere-se ao fato de que os testadores devem ser pessoas aleatórias que passam no corredor.
Teste de Sistemas
• Teste de Desempenho
• Em geral realizado para determinar como um sistema executa em termos de capacidade de resposta e estabilidade, sob uma carga de trabalho específica.
• Também pode servir para investigar, avaliar, validar ou verificar outros atributos de qualidade do sistema, tais como escalabilidade, confiabilidade e recursos de uso.
• O teste de desempenho é um subconjunto da engenharia de performance, uma prática
emergente da ciência da computação, que se esforça para dar desempenho na implementação, design e arquitetura de um sistema.
• Tipos:
• Teste de carga (Load testing) • Teste de stress (Stress testing)
• Soak testing - type of Performance testing in which we can test the stability and response time of the application by applying the designed load for a longer time. in this case the time duration may be normally 72hrs to 120 hrs
• Spike testing - Spike testing is done by suddenly increasing the number of or load generated by users
• Configuration testing • Isolation testing
Teste de Sistemas
• O teste de carga é o processo de colocar demanda em um sistema ou dispositivo e medir a sua resposta.
• É realizado para determinar o comportamento de um sistema em ambas as condições normal e de pico de carga esperados.
• Ele ajuda a identificar a capacidade máxima de operação de uma aplicação, bem como os gargalos e determinar qual elemento está causando degradação.
• Quando a carga colocada sobre o sistema é aumentada para além de padrões normais de utilização, de modo a testar a resposta do sistema à cargas
invulgarmente altas ou de pico, ele é conhecido como o teste de stress. • A carga geralmente é tão grande que as condições de erro são o resultado
esperado, apesar de não existir uma fronteira clara quando uma atividade deixa de ser um teste de carga e torna-se um teste de estresse.
• Há pouco acordo sobre quais são os objetivos específicos de testes de carga. O termo é freqüentemente usado como sinônimo de testes de simultaneidade, testes de desempenho de software, testes de confiabilidade e testes de volume.
Teste de Sistemas
• Teste de carga e desempenho analisa software destinado a um público multi-usuário, submetendo o software para diferentes números de usuários virtuais e ao vivo, enquanto monitora-se medidas de desempenho sob essas diferentes cargas.
• Teste de carga e desempenho é geralmente realizado em um ambiente de teste idêntico ao
ambiente de produção antes que o sistema de software está autorizada a ir ao ar.
• Como exemplo, um site web com capacidade do carrinho de compras necessária para suportar 100 usuários simultâneos, divididos nas seguintes atividades:
– Log in de 25 Usuários Virtuais (Vusers), navegar através dos itens e, em seguida, fazer logof – Log in de 25 VUsers, adicionar itens ao seu carrinho de compras, fazer check-out e, em
seguida, fazer logof
– Log in de 25 Vusers, devolver os itens comprados anteriormente e, em seguida, fazer logof – Login de 25 VUsers apenas, sem qualquer atividade subseqüente
• Um analista de teste pode usar várias ferramentas de teste de carga para criar esses Vusers e suas atividades.
• Uma vez que o teste começou e chegou a um estado de equilíbrio, o aplicativo está sendo testado na carga de 100 Vusers como descrito acima.
Teste de Sistemas
• FerramentasNome Companhia Obs
Apache JMeter Projeto open source
da Apache Jakarta
Aplicação desktop Java para testes de carga e medição de desempenho.
Silk Performer Borland Ferramenta de desempenho de
aplicativos com a nuvem e agentes virtuais locais. Suporta a maioria dos protocolos e aplicações. Licenciado.
Edição Ultimate do Visual
Studio Microsoft
Inclui uma ferramenta de teste de carga, que permite que um desenvolvedor execute uma variedade de testes (web, unidade, etc ..) com uma combinação de configurações para simular carga de usuários reais.
Rational Performance Test IBM Ferramenta de teste de desempenho de grande escala baseada no Eclipse, usada para execução de testes de desempenho de grande volume para medir o tempo de resposta do sistema para aplicações baseadas em servidor. Licenciado.
Teste de Sistemas
• Teste de stress
• Os testes de estresse, em geral, devem colocar o hardware do computador em níveis exagerados de estresse, a fim de garantir a estabilidade quando usado em um ambiente normal.
• Estes podem incluir extremos de carga de trabalho, tipo de tarefa, uso de memória, carga térmica (calor), a velocidade do clock, ou tensões (voltagem).
• Memória e CPU são dois componentes que são comumente testados em stress desta maneira. • Ao modificar os parâmetros de funcionamento de uma CPU, tais como temperatura,
overclocking, underclocking, overvolting e undervolting, pode ser necessário verificar se os novos parâmetros (geralmente voltagem do núcleo da CPU e freqüência) são adequados para cargas pesadas de CPU.
• Isto é feito através da execução de um programa intensivo de CPU por longos períodos de tempo, para testar se o computador trava ou falha (crash).
• Teste de estresse da CPU também é referido como o teste de tortura. Software que é adequado para testes de tortura normalmente deve executar instruções que utilizam o chip inteiro em vez de apenas algumas de suas unidades.
• O teste de stress de uma CPU, ao longo de 24 horas a 100% de carga é, na maioria dos casos, suficiente para determinar que a CPU vai funcionar corretamente em situações de uso normal, como num computador desktop, onde o uso de CPU normalmente oscila em níveis baixos (50 % ou menos) .
Teste de Sistemas
• Teste fumaça – Smoke Test
• Na programação de computadores e teste de software, teste de fumaça é o teste
preliminar para revelar falhas simples graves o suficiente para rejeitar uma versão do software em potencial.
• Um subconjunto de casos de teste que cobrem as funcionalidades mais importantes de um componente ou sistema é selecionado e executado, para verificar se as funções mais importantes de um programa trabalham corretamente.
• Por exemplo, um teste de fumaça podem fazer perguntas básicas, como "Será que o
programa executa?","Será que ele abre uma janela?", ou" Será que ao clicar no botão principal ele faz alguma coisa?"
• O objetivo é determinar se o aplicativo está tão mal que mais testes são desnecessários.
• Como o livro "Lições Aprendidas em Teste de Software" coloca, "testes de fumaça cobrem amplamente as características do produto em um tempo limitado ... se os principais recursos não funcionam ou se erros fundamentais ainda não foram corrigidos, sua equipe não vai perder mais tempo a instalar ou testar".
Teste de Sistemas
• Teste de regressão
• É um tipo de teste de software que visa descobrir novos bugs de software, ou regressões, em áreas funcionais e não-funcionais de um sistema existente, após mudanças como aprimoramentos, correções ou alterações de configuração, serem feitas neles.
• A intenção dos testes de regressão é de garantir que uma mudança tal como as mencionadas acima não introduziu novos defeitos.
• Uma das razões principais para os testes de regressão é para determinar se uma alteração em uma parte do software afeta outras partes do software.
• Os métodos comuns de testes de regressão incluem executar novamente os testes previamente realizados e verificar se o comportamento do programa mudou e se falhas previamente fixados reapareceram.
• O teste de regressão pode ser realizado para testar um sistema eficientemente, selecionando sistematicamente o conjunto mínimo adequado de testes