Pergunta

Eu tenho trabalhado em um aplicativo, sozinho, e estou em um estágio em que tudo funciona muito bem-desde que o usuário faça tudo o que ele deve fazer. :-) O software precisa de mais testes para ver o quão robusto é, como funciona bem quando as pessoas fazem coisas como clicar no mesmo botão repetidamente, tente abrir o tipo errado de arquivos, colocar dados nos lugares errados, etc.

Estou tendo um pouco de problema com isso, porque é um pouco difícil para mim pensar em termos de usar o aplicativo incorretamente. Todos esses são casos de borda para mim. Ainda assim, eu gostaria de ter o aplicativo o mais estável e bem testado possível antes de começar a dar aos testadores beta. Supondo que não estou falando sobre contratar testadores profissionais neste momento, estou curioso para saber se vocês têm alguma dica ou maneiras sistemáticas de pensar sobre essa tarefa.

Obrigado, como sempre.

Foi útil?

Solução

Bem, parece que você está falando de duas coisas diferentes "testando a funcionalidade do seu aplicativo" e "Teste de estresse" (que é o título da sua pergunta)

O teste de estresse é quando você tem um site e deseja verificar se ele pode servir 100.000 pessoas ao mesmo tempo. Vendo como seu aplicativo funciona sob estresse. Você pode fazer isso de várias maneiras, por exemplo, gravando algumas ações e, em seguida, obtendo várias máquinas do agente para atingir seu aplicativo simultaneamente.

Esta pergunta parece mais uma questão de garantia de qualidade. É para isso que servem os testadores / beta. Mas há coisas que você pode fazer para validar seu aplicativo, funciona da melhor maneira possível.

O teste de unidade do seu código seria um bom começo, ajuda você a tentar encontrar esses casos de borda. Se o seu método absorver coisas como o INTS, tente passar no Int.max, int.min e ver o que explode. Passe nulos para tudo. Se você estiver usando o .NET, poderá olhar para o PEX, ele passará por todas as ramificações/codepaths que seu aplicativo possui. Isso pode ajudá -lo a refinar ainda mais seus testes de unidade para testar o seu aplicativo da melhor maneira possível.

Testes de integração, veja o que acontece final a fim de algumas de suas coisas habituais. Isso ajudará você a 'encontrar bugs' à medida que você está desenvolvendo mais tarde.

Essas são algumas dicas rápidas sobre as coisas que você pode fazer para tentar encontrar casos de borda que você possa ter perdido. Mas sim, eventualmente você precisará passar seu aplicativo para outra pessoa para testar. Apenas certifique-se de ter coberto o máximo possível antes de atingir :-)

Outras dicas

Verifique se você possui cobertura de código adequada em seus testes de unidade e testes de integração.

Use a validação apropriada da interface do usuário e as combinações de teste que podem quebrá -la.

Descobri que um aplicativo bem arquitetado que reduz o número de possíveis permutações na interface do usuário (maneiras pelas quais o usuário pode quebrá-lo) ajuda muito. Padrões de design como o MVC podem ser especialmente úteis nesse sentido, pois eles tornam seu folheado da interface do usuário o mais fino possível.

Automação.

(Re) Faça o seu código para que outro programa possa lançar os eventos do usuário. Crie scripts simples de eventos do usuário e reproduzem -os de volta ao seu programa. Capture eventos de usuários beta e salve -os como scripts de teste (úteis para reproduzir problemas e verificar regressões). Escreva um tester de fuzz que aplique pequenas alterações aleatórias nos scripts e experimente-os no seu programa também.

Com esse tipo de automação, você pode estressar e aplicar e encontrar problemas gritantes, como caches e vazamentos de memória. Não testará a funcionalidade real. Para funcionalidade, os testes de unidade podem ser úteis. Há uma tonelada de estruturas de teste de unidade por aí para tentar. Escolha algo útil, aprenda a escrever bons testes e integrá -los ao seu processo de construção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top