Baixe o app para aproveitar ainda mais
Prévia do material em texto
22/11/17 1 Teste e Qualidade de Software Testes de Desempenho Prof. Thiago Souza – thiagosouza@cos.ufrj.br Testes de Desempenho } Conceitos Básicos } Desempenho = Performance } Mera questão de tradução. } Concorrência ≠ Paralelismo } Concorrência ¨ Duas ou mais threads sendo executadas de forma concorrente, dividindo o acesso aos recursos (CPU, memória), dando a impressão ao usuário de que estão sendo executadas simultaneamente. } Paralelismo ¨ Duas ou mais threads sendo executadas simultaneamente. 2 Testes de Desempenho - Prof. Thiago Souza 22/11/17 2 Dimensões do Teste 3 Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 4 } Tipos de Requisitos } Características de qualidade do produto Testes de Desempenho - Prof. Thiago Souza 22/11/17 3 Testes de Desempenho 5 Testes de Desempenho - Prof. Thiago Souza Tipos de Teste Testes Funcionais Testes Não-Funcionais - Teste de Usabilidade - Teste de Desempenho - Teste de Carga - Teste de Estresse - Teste de Recuperação - Teste de Segurança - Teste de Conformidade Técnicas de Teste Teste baseado em estrutura (caixa branca) Teste baseado em especificação (caixa preta) } Dimensões do Teste Testes de Desempenho 6 } Harmonização de conceitos Testes de Desempenho - Prof. Thiago Souza 22/11/17 4 Testes de Desempenho 7 } Definição } O teste de desempenho (ou performance) mede e avalia o grau em que um item de teste desempenha suas funções designadas dentro de determinados limites de tempo e de uso de recursos (CPU, memória, disco, rede). } Objetivos: } 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. } Quando usar: } Quando se deseja avaliar o desempenho de uma funcionalidade do sistema ou de todo o sistema. Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho } Gargalos 8 Testes de Desempenho - Prof. Thiago Souza 22/11/17 5 Testes de Desempenho 9 } Subtipos } ISO/IEC/IEEE 29119-1:2013 Fundamentos do Teste de Software - Prof. Thiago Souza Teste de Carga Teste de Estresse Teste de Capacidade Teste de Resistência Teste de Volume Avaliar o comportamento de um item de teste em condições esperadas de carga variável (uso baixo, 9pico e de pico). Avaliar o comportamento de um item de teste em condições de carga acima dos requisitos de capacidade antecipados ou especificados ou da disponibilidade de recursos abaixo dos requisitos mínimos exigidos. Avaliar o nível no qual o aumento de carga (de usuários, transações, armazenamento de dados, etc.) compromete a capacidade de um item de teste para sustentar o desempenho requerido. Avaliar se um item de teste pode sustentar uma carga necessária con9nuamente por um período de tempo determinado. Avaliar a capacidade do item de teste processar volumes de dados especificados (usualmente no ou próximos ao limite máximo de capacidade especificada) em termos de capacidade de throughput, capacidade de armazenamento, ou ambos. Testes de Desempenho 10 } Modelo Conceitual Fundamentos do Teste de Software - Prof. Thiago Souza 22/11/17 6 Testes de Desempenho 11 } Medidas de Desempenho } ISO/IEC/IEEE 25023:2015 Fundamentos do Teste de Software - Prof. Thiago Souza Comportamento no Tempo U9lização de Recursos Capacidade • Tempo médio de resposta • Adequação do tempo de resposta • Tempo médio de entrega • Adequação do tempo de entrega • Throughput médio • UFlização média do processador • UFlização média da memória • UFlização média dos disposiFvos de E/S • UFlização da largura de banda • Capacidade de processamento de transações • Capacidade de acesso de usuários • Adequação do aumento do números de acessos Testes de Desempenho 12 } Subtipos } Teste de Carga Baixa Testes de Desempenho - Prof. Thiago Souza 22/11/17 7 Testes de Desempenho 13 } Subtipos } Teste de Carga Típica Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 14 } Subtipos } Teste de Pico de Carga Testes de Desempenho - Prof. Thiago Souza 22/11/17 8 Testes de Desempenho 15 } Subtipos } Teste de Estresse Típico Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 16 } Subtipos } Teste de Pico de Estresse Testes de Desempenho - Prof. Thiago Souza 22/11/17 9 Testes de Desempenho 17 } Subtipos } Teste de Estresse de Recursos Insuficientes Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 18 } Subtipos } Teste de Capacidade Testes de Desempenho - Prof. Thiago Souza 22/11/17 10 Testes de Desempenho 19 } Subtipos } Teste de Resistência Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 20 } Subtipos } Teste de Volume Testes de Desempenho - Prof. Thiago Souza 22/11/17 11 Testes de Desempenho 21 } Requisitos de Desempenho } Em geral, os requisitos de desempenho presentes nos documentos de RNF não oferecem qualquer subsídio ao trabalho de arquitetos e testadores. } P. ex., não é possível definir cenários de teste de carga com base nos requisitos de desempenho descritos nos atuais documentos de RNF. } É necessário aprimorar as técnicas existentes para elicitação e documentação de requisitos de desempenho. Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 22 } Requisitos de Desempenho } Elicitação } Fontes de requisitos Testes de Desempenho - Prof. Thiago Souza Cliente Pessoal técnico (arquitetos, DBAs, redes, etc.) Requisitos funcionais Requisitos de segurança Requisitos de desempenho 22/11/17 12 Testes de Desempenho 23 } Requisitos de Desempenho } Exemplos reais } Nenhuma informação sobre requisitos de desempenho. } “Tempo de resposta para uma transação – Não se aplica.” ¨ Dificilmente um sistema de governo poderá ignorar esse requisito. } “Tempo de resposta para uma transação online – O tempo médio de resposta às operações de atualização e consultas simples deverá ser no máximo de trinta segundos.” ¨ 0.1 segundo: sensação de resposta instantânea ¨ Limite de tempo em que o usuário tem a sensação de resposta instantânea e que ele está no controle de todas as ações. ¨ 1 segundo: mantendo a linha de raciocínio ¨ Apesar da percepção de demora, a maioria dos usuários aguarda uma resposta por menos de 1s mantendo-se na linha de raciocínio. ¨ 10 segundos: perdada atenção ¨ Este é o tempo em que se perde a maioria dos usuários. Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 24 } Requisitos de Desempenho } Exemplos reais } “Tempo de resposta para uma transação - O tempo médio de resposta nas operações de atualizações e consultas simples deverá ser no máximo igual àquele estabelecido no acordo de serviço entre a contratante e a contratada.” ¨ Requisito encontrado no acordo de serviço: “Atendimento simultâneo de 2.000 usuários”. ¨ Documento citado não contempla tempo de resposta. Testes de Desempenho - Prof. Thiago Souza 22/11/17 13 Testes de Desempenho 25 } Requisitos de Desempenho } Exemplos reais } “Número de usuários - A quantidade de acessos simultâneos estimada mínima é de 200 usuários.” ¨ Precisamos saber a quantidade máxima! } “Quantidade de acessos simultâneos – O sistema suporta acessos simultâneos.” } “Capacidade – O sistema pode acomodar vários usuários ou transações.” ¨ Quantos? Requisito impreciso e não-testável. } “Capacidade - Provavelmente ocorrerá aumento de necessidade de capacidade. Isso será melhor especificado durante reuniões técnicas do sistema.” ¨ As reuniões aconteceram e não atualizaram o requisito. Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 26 } Requisitos de Desempenho } Situação ideal } Descrições de requisitos de desempenho devem ter o potencial de subsidiar a criação de um modelo de carga (workload model). Testes de Desempenho - Prof. Thiago Souza 22/11/17 14 Testes de Desempenho 27 } Lições Aprendidas no Indústria } Requisitos } Garanta que os requisitos e critérios de aceitação sejam precisos e testáveis. } Ambiente } Execute os testes em ambiente de produção sempre que possível. ¨ Caso não seja possível, utilize um ambiente que seja similar ao de produção (incluindo configurações de hardware e software). } Massa de teste } Os dados de teste devem ser semelhantes aos de produção. Testes de Desempenho - Prof. Thiago Souza Testes de Desempenho 28 } Lições Aprendidas no Indústria } Projete o uso real } Faça uso dos conceitos de think time e ramp-up. } Baterias } Execute cada cenário de teste ao menos três vezes. } Integrações } Utilize mocks nas integrações. } Represente a arquitetura física Testes de Desempenho - Prof. Thiago Souza 22/11/17 15 Testes de Desempenho 29 } Lições Aprendidas no Indústria } Monitoração de servidores } Pouco adianta encher um servidor de requisições e não saber o que acontece internamente. } Ferramentas de monitoração permitem acompanhar o tempo de execução de cada trecho de código por onde uma requisição passou, permitindo a identificação das causas de problemas de desempenho. Testes de Desempenho - Prof. Thiago Souza Verificação, Validação & Teste de Software Testes de Desempenho com Apache JMeter Prof. Thiago Souza – thiagosouza@cos.ufrj.br
Compartilhar