É razoável não ter critérios de aprovação / reprovação para um teste de estresse

10

Por uma questão de clareza, o teste de estresse que escrevi aumenta constantemente a carga no sistema até atingir um ponto de ruptura. Teoricamente, ele é executado indefinidamente, mas, como os recursos do sistema são finitos, espera-se que falhe após algum tempo. Eu tenho uma carga esperada para o sistema, mas isso é testado separadamente em um teste de carga . O objetivo desse teste de estresse é descobrir quanta carga posso colocar no sistema antes de implementar a escala.


Estou escrevendo um teste de estresse para um sistema e estou imaginando se faz sentido ter critérios de aprovação / reprovação. Por natureza do teste, a carga aumenta constantemente até atingir um ponto de ruptura (ou seja, falha ). Obviamente, não sei qual é esse ponto de ruptura de antemão e, portanto, nenhuma expectativa da carga que o sistema possa suportar (em teoria, de qualquer maneira).

Agora eu tenho outros testes de desempenho para testar o sistema com uma carga esperada etc., para os quais posso definir facilmente critérios de aprovação / reprovação e poderia usar esses critérios como base para o teste de estresse. Em outras palavras, eu poderia definir uma linha de base mínima para o meu teste de estresse, mas não tenho certeza se é a coisa certa a fazer (isso está 'duplicando' meu outro teste?).

Espero que alguém com mais experiência em testes de desempenho possa me ajudar aqui. Quais critérios de aprovação / reprovação foram usados ​​por outras pessoas no teste de estresse (se houver)?

Alex
fonte
1
Se você não tem aprovação / reprovação, por que está fazendo o teste?
RemcoGerlich
@RemcoGerlich Para que eu possa conhecer os limites do sistema? Isso ajudará no planejamento de capacidade etc.
Alex
Penso que o planejamento da capacidade é onde você decide a carga mínima que seu sistema precisa para lidar (para que você tenha um critério de reprovação).
RemcoGerlich
@RemcoGerlich Talvez eu tenha meus termos misturados, mas basicamente tenho uma carga esperada (que é testada separadamente), mas estou usando esse teste de estresse para determinar em que ponto (ou seja, número de usuários) precisarei dimensionar a infraestrutura. É um teste separado, pois as alterações no sistema podem alterar a carga que o sistema pode suportar, o que não seria visível em um teste de carga.
22416 Alex
@ Alex, não, você não tem seus termos confusos. Você está descrevendo precisamente um teste de estresse. O problema é que não há aprovação / reprovação associada ao teste de estresse, por isso não pode ser executado facilmente usando as ferramentas de "teste de unidade".
David Arno

Respostas:

10

Em um teste de estresse, seu trabalho não é definir o estresse que o sujeito deve suportar. É para medir o estresse necessário antes de falhar.

Você pode usar os critérios de desempenho para definir o que é uma falha de estresse. Mas o resultado de um teste de estresse não é aprovado / reprovado. "Falhou após 90 horas sob utilização de 100%, com ventilação 50% comprometida".

candied_orange
fonte
uma questão. O teste de estresse deve causar uma falha no sistema? Em outras palavras. O acidente é o que consideramos "falha"?
LAIV
3
@laiv O teste de estresse deve causar estresse. E demonstre como o sujeito responde a esse estresse. Se causar uma falha no sistema que deve ser documentada. Os testes de estresse devem causar falhas e mostrar o que é necessário para causá-las. Uma falha do sistema é uma falha, presumindo que o sistema com falha falhe, é um requisito de desempenho. Eles costumam fazer.
Candied_orange
1

Depende dos requisitos, se seus requisitos especificarem que o resultado esperado para o desempenho do aplicativo é X e, na verdade, você obteve Y, então é uma falha.
Se você não tiver requisitos definidos, poderá estressar o sistema e coletar dados de limite e descobrir e documentar esses limites.

Thiago F. Peçanha
fonte
0

Você pode atualizar facilmente seu teste de estresse primário para também suportar uma verificação de aprovação / reprovação de controle de qualidade, algo como "capaz de alcançar / sustentar a carga X sem interromper". Idealmente, com o X sendo configurável (para diferentes ramificações de lançamento, por exemplo).

O resultado seria failse o sistema quebrar antes que a carga atinja X e passse não quebrar. Você apenas precisaria parar de aumentar a carga quando atingir o valor X em um cenário de "sustentação".

IMHO, um teste automatizado como esse pode ser muito útil no contexto de CI / CD, especialmente em ramos de produção.

Dan Cornilescu
fonte