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.
Dois aspectos de casos de uso são considerados para selecionar cenários para esse tipo de teste:
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.
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.
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:
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).
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:
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.
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:
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.
|