Percentis e sua importância nos testes de performance

Júlio de Lima
3 min readAug 7, 2016

Percentil é uma medida utilizada para dividir uma amostra de valores, ordenados de forma crescente, em cem partes. Essa medida da estatística descritiva colabora, e muito, na análise de resultados dos testes de performance. Neste post aprenderemos um pouco sobre percentis em testes de performance e qual é sua importância na análise dos resultados dos testes.

Teste de performance é um tipo de teste de software que basea-se na definição de um número fixo de usuários, que executam um passo a passo em uma aplicação e que avalia certos resultados como tempo de resposta, peso da resposta, latência, entre outros. Ferramentas de testes de performance permitem a gravação dos cenários e definição do que chamamos de usuários virtuais, que basicamente são Threads que reproduzem a mesma ação que usuários reais de forma paralela.

Os resultados gerados pela ferramenta geralmente são textuais, apresentando os resultados obtidos por cada um dos usuário virtuais que foram utilizados nos testes. Mas a dúvida que a maioria das pessoas tem é: como analisar os resultados de forma prática? Bem, uma forma é através do Percentil, e é sobre ele que falamos neste post.

Percentil é uma medida da estatística descritiva que tem o objetivo de dividir uma amostra de valores, ordenados de forma crescente, em cem partes. Frequentemente é usado para medir o grau de aceitação de algo.

Para exemplificar de maneira prática, imagine que criamos um teste de performance com 10 usuários virtuais, com o objetivo de fazerem login em uma aplicação e cronometrar quanto tempo levou desde o envio do formulário de dados de acesso até o carregamento da página secreta.

Definimos um requisito não funcional que diz que 90% dos usuários devem ter tempos de resposta de até 4 segundos ao se logarem no sistema.

Após a execução dos testes tivemos os seguintes tempos de resposta (em segundos): 1, 4, 4, 2, 1, 7,8, 1, 2, 3. Como vimos antes, para aplicar o percentil é necessário primeiro ordenar esta amostra de maneira crescente, então: 1, 1, 1, 2, 2, 3, 4, 4, 7, 8.

Neste caso, o percentil que desejamos observar é o 90º, que em nossa amostra é o 9º valor, ou seja, 7. Logo, sabemos que 90% de nossos usuários tiveram tempos de até 7 segundos o que, infelizmente, não atende ao tempo que desejamos, que é 4 segundos.

Perceba que se fossemos utilizar outra métrica, como por exemplo a Média, poderíamos nos enganar, pois a média seria 3.3 e estaria dentro do tempo desejado mesmo que um dos usuários teve tempo de 7 e 9 segundos, ou seja 3 a 5 minutos a mais do que era o esperado.

Usar o 90º percentil é algo comum em testes relacionados a performance de uma aplicação, inclusive é conhecido como Linha dos 90%. E está disponível em ferramentas de mercado, como o JMeter, por exemplo.

Existem outros percentis que também são bastante utilizados e possuem nomes específicos como por exemplo, o primeiro, segundo e terceiro Quartil que são, respectivamente, o 25º, 50º, 75º percentil. Dentre os quartis, temos a Mediana, que é o segundo quartil.

Concluímos então que o uso do Percentil em testes de performance é algo que pode ajudar na analise dos resultados quando os requisitos não funcionais referem-se a um nível de aceitação baseada em uma porcentagem da amostra em que se fundamenta um teste.

Referências

--

--

Júlio de Lima

Principal QA Engineer @ Capco — MSc. Electrical and Computational Engineering with a focus on AI