Diretriz: Modelo de Análise de Carga de Trabalho
O Modelo de Análise de Carga de Trabalho identifica as variáveis que afetam o desempenho do sistema e a forma de medir o seu efeito. Essa diretriz explica como desenvolver um.
Relacionamentos
Descrição Principal

Visão Geral

A qualidade do software é avaliada em diferentes dimensões, incluindo confiabilidade, função e desempenho (consulte Conceito: Dimensões de Qualidade). O Modelo de Análise de Carga de Trabalho (consulte Produto de Trabalho: Modelo de Análise da Carga de Trabalho) é criado para identificar e definir as diferentes variáveis que afetam ou influenciam o desempenho de um aplicativo ou sistema e as medidas requeridas para avaliar o desempenho. Os perfis de carga de trabalho que compõem o modelo representam as possíveis condições a serem simuladas e comparadas aos Itens de Teste-alvo em uma ou mais Configurações de Ambiente de Teste. O modelo de análise de carga de trabalho é utilizado pelos seguintes papéis:

  • o analista do teste (consulte Função: Analista de Teste) utiliza o modelo de análise de carga de trabalho para identificar idéias de teste e definir casos de teste para diferentes testes
  • o designer de teste (consulte Função: Designer de Teste) utiliza o modelo de análise de carga de trabalho para definir a abordagem de teste apropriada e identificar as necessidades de testabilidade para os diferentes testes
  • o testador (consulte Função: Testador) utiliza o modelo de análise de carga de trabalho para entender melhor as metas do teste para implementar, executar e analisar sua execução apropriadamente
  • o representante do usuário (consulte Função: Investidor) utiliza o modelo de análise de carga de trabalho para avaliar a adequação da carga de trabalho e os testes necessários para avaliar efetivamente o comportamento dos sistemas em relação ao modelo de análise de carga de trabalho

As informações contidas no modelo de análise de carga de trabalho enfocam as características e os atributos destas principais áreas:

Os testes devem ser considerados para medir e avaliar as características e comportamentos do alvo do teste em diferentes cargas de trabalho. Para projetar, implementar e executar testes corretamente é necessário identificar dados realistas e excepcionais para esses perfis de carga de trabalho.

Casos de Uso e Atributos de Casos de Uso

Dois aspectos de casos de uso são considerados para selecionar cenários para esse tipo de teste:

  • casos de uso críticos contêm os principais cenários de caso de uso a serem medidos e avaliados nos testes
  • casos de uso significativos contêm cenários de caso de uso que podem impactar o comportamento dos cenários de caso de uso críticos

Casos de Uso Críticos

Nem todos os cenários de caso de uso que estão sendo implementados no alvo do teste podem ser necessários para esses testes. Os casos de uso críticos contêm os cenários de caso de uso que serão o foco do teste, ou seja, aqueles cujos comportamentos serão medidos e avaliados.

Para saber quais são os casos de uso críticos, identifique os cenários de caso de uso que satisfazem a pelo menos um destes critérios:

  • requerem medição e avaliação com base no perfil de carga de trabalho
  • são executados com freqüência por um ou mais usuários finais (instâncias de atores)
  • que representam uma alta porcentagem de uso do sistema
  • que consomem recursos significativos do sistema

Liste os scanners de caso de uso crítico a serem incluídos no teste. Conforme eles são identificados, o fluxo de eventos do caso de uso deve ser revisto. Comece identificando a seqüência específica de eventos entre o agente (tipo) e o sistema quando o cenário de caso de uso for executado.

Além disso, identifique (ou verifique) as seguintes informações:

  • Precondições para os casos de uso, como, por exemplo, o estado dos dados (os dados que devem/não devem existir) e do objetivo do teste
  • Dados que podem ser constantes (iguais) ou que devem diferir de um cenário de caso de uso para outro
  • Relacionamento entre o caso de uso e outros casos de uso, como, por exemplo, a seqüência na qual os casos de uso devem ser executados.
  • A freqüência de execução do cenário de caso de uso, incluindo características como, por exemplo, o número de instâncias simultâneas do caso de uso e o percentual da carga total que cada cenário ocupa no sistema.

Casos de Uso Significativos

Ao contrário dos cenários de caso de uso críticos, que são o foco principal dos testes, os cenários de caso de uso significativos são aqueles que podem impactar os comportamentos de desempenho de cenários de caso de uso críticos. Os cenários de caso de uso significativos incluem os casos de uso que satisfazem a pelo menos um destes critérios:

  • eles devem ser executados antes ou depois de executar um caso de uso crítico (uma pré-condição ou pós-condição dependente)
  • eles são executados com freqüência por uma ou mais instâncias de atores
  • eles representam uma alta porcentagem de uso do sistema
  • eles requerem recursos significativos do sistema
  • eles serão executados regularmente no sistema implementado durante a execução de cenários de casos de uso críticos, como e-mail ou impressão em segundo plano

À medida que os cenários de caso de uso significativos são identificados e listados, revise o fluxo de eventos de casos de uso e as informações adicionais, conforme indicado acima para os cenários de caso de uso críticos.

Agentes e Atributos de Agente

Para que os testes de desempenho sejam realizados corretamente, é necessário não apenas identificar os atores que executam os cenários de caso de uso críticos e significativos, mas também simular/emular o comportamento dos atores. Ou seja, uma instância de um agente pode interagir com o destino do teste de forma diferente (demorar mais tempo para responder aos avisos, digitar valores de dados diferentes, etc.) enquanto executa o mesmo cenário de caso de uso que uma outra instância desse agente. Considere os casos de uso simples abaixo:

Diagrama descrito na legenda.

Agentes e casos de uso em um caixa eletrônico.

A primeira instância do agente "Cliente" que executa um cenário de caso de uso pode ser um usuário de caixa eletrônico experiente, enquanto uma outra instância do agente "Cliente" pode ser inexperiente no uso de caixa eletrônico. O Cliente experiente navega rapidamente pela interface de usuário do caixa eletrônico, gasta pouco tempo lendo cada pergunta e pressiona os botões quase sem pensar. Já o Cliente sem experiência lê cada uma das perguntas e leva mais tempo para interpretar as informações antes de responder. Perfis de carga de trabalho realistas refletem essa diferença para assegurar uma avaliação precisa dos comportamentos do alvo do teste.

Comece identificando os atores de cada cenário de caso de uso identificado acima. Em seguida, identifique os diferentes perfis de agente que podem executar cada cenário de caso de uso. No exemplo do caixa eletrônico acima, podemos ter os seguintes estereótipos de agente:

  • Usuário com experiência em caixa eletrônico
  • Usuário sem experiência em caixa eletrônico
  • Conta do usuário do caixa eletrônico "dentro" da rede do banco do caixa eletrônico (o usuário tem uma conta no banco proprietário do caixa eletrônico)
  • Conta do usuário do caixa eletrônico fora da rede do banco do caixa eletrônico (banco concorrente)

Para cada perfil de agente, identifique os diferentes atributos e valores, como:

  • Tempo de decisão - o período de tempo necessário para que o agente responda a perguntas individuais de um objetivo do teste
  • Velocidade de digitação - a velocidade com que o agente interage com a interface
  • Freqüência de Solicitações - a freqüência com que o agente faz solicitações do objetivo do teste
  • Fator de repetição - o número de vezes que um caso de uso ou uma solicitação são repetidos em seqüência
  • Método de interação - o método de interação utilizado pelo agente. Por exemplo, utilizar o teclado para digitar valores, utilizar a tecla TAB para mudar de um campo para outro, utilizar teclas de aceleração ou o mouse para "apontar e clicar", "recortar e colar", etc.

Além disso, para cada perfil de agente, identifique o respectivo perfil de carga de trabalho, especifique todos os cenários de caso de uso executados por eles e o percentual de tempo ou proporção de esforço gasto pelo agente na execução dos casos de uso. Essas informações são utilizadas para identificar e criar uma carga realista (consulte abaixo Carga e Atributos de Carga).

Atributos e Variáveis do Sistema Para o início da página

As variáveis e atributos específicos da Configuração do Ambiente de Teste que identificam o ambiente de modo exclusivo devem ser igualmente identificados, já que esses atributos também impactam a medição e a avaliação do comportamento. Esses atributos incluem:

  • O hardware físico (velocidade da CPU, memória, armazenamento no cache do disco, etc.)
  • A arquitetura de implementação (número de servidores, distribuição do processamento, etc.)
  • Os atributos de rede
  • Outros softwares (e casos de uso) que podem ser instalados e executados ao mesmo tempo que o objetivo do teste

Identifique e liste as variáveis e os atributos do sistema que devem ser considerados para inclusão nos testes. É possível obter essas informações em diversas fontes, entre elas:

Perfis da Carga de Trabalho Para o início da página

Conforme explicado anteriormente, a carga de trabalho é um dos fatores importantes que impactam o comportamento de um alvo de teste. É importante identificar precisamente o perfil de carga de trabalho que será usado para avaliar os comportamentos-alvo. Normalmente, o teste que inclui carga de trabalho é executado várias vezes usando perfis de carga de trabalho diferentes, cada um representando uma variação dos atributos descritos abaixo:

  • O número de instâncias de atores simultâneos que interagem com o destino do teste
  • O perfil dos atores que interagem com o destino do teste
  • Os cenários de caso de uso que cada instância de agente executa
  • A freqüência de cada cenário de caso de uso crítico executado e a freqüência de repetição

Para cada carga de trabalho utilizada na avaliação do desempenho do objetivo do teste, identifique os valores para cada uma das variáveis acima. Os valores utilizados para cada variável nos diferentes carregamentos podem ser derivados, observando ou entrevistando agentes ou a partir do Modelo de Casos de Uso de Negócios , se houver um disponível. É comum definir um ou mais dos seguintes perfis de carga de trabalho:

  • Ideal - carga de trabalho que reflete as melhores condições possíveis de implementação como, por exemplo, um número mínimo de instâncias de atores interagindo com o sistema e executando somente os cenários de caso de uso críticos, com execução mínima de software adicional e carga de trabalho durante o teste.
  • Médio (ou Normal) - um perfil de carga de trabalho que reflete as condições de uso médias previstas ou reais.
  • Picos Instantâneos - um perfil de carga de trabalho que reflete as condições de uso pesadas instantâneas previstas ou reais, que ocorrem por curtos períodos durante a operação normal.
  • Pico - um perfil de carga de trabalho que reflete as condições de uso pesadas previstas ou reais, tais como um número máximo de instâncias de agente, executando altos volumes de cenários de caso de uso, com muito software e carga de trabalho adicional durante o teste.

Quando o teste de carga de trabalho inclui o Teste de Stress (consulte Conceito: Teste de Desempenho e Técnica: Tipos de Teste), diversos carregamentos adicionais devem ser identificados, cada um deles visando aspectos específicos do sistema em estados anormais ou inesperados além da capacidade normal esperada do sistema implementado.

Critérios e Medidas de Desempenho Para o início da página

Os testes de carga de trabalho só serão realizados corretamente se os testes forem medidos e os comportamentos da carga de trabalho forem avaliados. Na identificação de critérios e medições de carga de trabalho, devem ser considerados os seguintes fatores:

  • Que medições devem ser feitas?
  • Quais são e onde estão os pontos críticos de medição no objetivo do teste/execução de casos de uso?
  • Que critérios devem ser utilizados para determinar um comportamento de desempenho aceitável?

Medições de Desempenho

Várias medições podem ser feitas durante a execução dos testes. Identifique as medições significativas a serem feitas e justifique o motivo pelo qual elas são consideradas as mais significativas.

Estes são os comportamentos de desempenho mais comumente monitorados ou detectados:

  • Status ou estado do script de teste - uma representação gráfica do atual estado, status ou andamento da execução do teste
  • Tempo de resposta / Rendimento do processamento - medida (ou cálculo) de tempos de resposta ou rendimento do processamento (geralmente especificado como transações por segundo).
  • Rastreamentos - captura de mensagens/conversações entre o agente (script de teste) e o objetivo do teste ou o fluxo de dados e/ou fluxo de processo durante a execução.

Consulte Técnica: Principais Medidas de Teste para obter informações adicionais

Pontos Críticos na Medição de Desempenho

Na seção Casos de Uso e Atributos de Casos de Uso acima, foi observado que nem todos os casos de uso e respectivos cenários são executados para fins de teste de desempenho. De modo semelhante, nem todas as medidas de desempenho são feitas para cada cenário de caso de uso executado. Normalmente, apenas cenários de caso de uso específicos são destinados para medição, ou pode haver uma seqüência específica de eventos em um cenário de caso de uso específico que será medido para avaliar o comportamento do desempenho. Deve-se tomar cuidado para selecionar os "pontos" inicial e final mais significativos para a medição dos comportamentos de desempenho. Os pontos mais importantes costumam ser as seqüências mais visíveis de eventos ou aquelas que podem ser afetadas diretamente por mudanças no software ou no hardware.

Por exemplo, no caso de uso Caixa Eletrônico - Retirada em Dinheiro identificado acima, podemos medir as características de desempenho de toda a instância de caso de uso, desde o ponto em que o Agente inicia a retirada até o ponto de encerramento do caso de uso - ou seja, o Agente recebe o cartão do banco e agora o caixa eletrônico está pronto para aceitar um outro cartão, conforme mostrado pela linha preta "Total de Tempo Decorrido" no diagrama a seguir:

Diagrama é descrito no conteúdo.

Observe, porém, que há muitas seqüências de eventos que contribuem para o total de tempo decorrido, algumas sobre as quais podemos ter controle (como ler as informações do cartão, verificar o tipo de cartão, iniciar a comunicação com o sistema do banco, etc., itens B, D e E acima), mas outras seqüências sobre as quais não temos controle (por exemplo, quando o agente informa o PIN ou lê as perguntas antes de digitar o valor do saque, itens A, C e F). No exemplo acima, além de calcular o total de tempo decorrido, calculamos os tempos de resposta das seqüências B, D e E, já que esses eventos representam os tempos de resposta mais visíveis para o agente (e que podem ser afetados através de software/hardware para implementação).

Critérios da Medição de Desempenho

Uma vez identificados os principais pontos de medidas e as medições de desempenho, revise os critérios de desempenho. Os critérios de desempenho são determinados nas Especificações Suplementares (consulte Produto de Trabalho: Especificações Suplementares). Se necessário, revise os critérios.

Há aqui alguns critérios usados normalmente para medição de desempenho:

  • tempo de resposta (resposta on-line AKA)
  • taxa de rendimento do processamento
  • percentis de resposta

O tempo de resposta on-line, medido em segundos, ou a taxa de transferência de dados, medida pelo número de transações (ou mensagens) processadas é o critério principal.

Por exemplo, utilizando o caso de uso Retirada em Dinheiro, os critérios são determinados como "eventos B, D e E (consulte o diagrama acima) e cada um deve ocorrer em 3 segundos (para um total combinado de 9 segundos)". Se, durante o teste, observarmos que um dos eventos identificados como B, D ou E demora mais do que os 3 segundos definidos nos critérios, podemos dizer que ocorreu uma falha.

As medições de percentual são combinadas com os tempos de resposta e / ou as taxas de rendimento do processamento e são utilizadas para "ignorar estatisticamente" as medições que não se enquadram nos critérios determinados. Por exemplo, os critérios de desempenho para o caso de uso agora determinam que, "para o 90º percentual, os eventos B, D e E devem ocorrer em 3 segundos ...". Durante a execução do teste, se calcularmos 90% de todas as medições de desempenho ocorridas dentro dos critérios especificados, nenhuma falha será observada.