O que é teste negativo? Casos de teste com exemplo

Teste Negativo

Teste Negativo é um tipo de teste de software usado para verificar o aplicativo de software em busca de condições e dados de entrada inesperados. Dados ou condições inesperadas podem ser qualquer coisa, desde tipos de dados errados até fortes ataques de hackers. O objetivo do teste negativo é evitar que o aplicativo de software trave devido a entradas negativas e melhorar a qualidade e a estabilidade.

Fazendo apenas testes positivos, só podemos ter certeza de que nosso sistema está funcionando em condições normais. Temos que ter certeza de que nosso sistema pode lidar com condições inesperadas para garantir um sistema 100% livre de falhas.

Exemplo de teste negativo

Consideremos o caso de um elevador que é um exemplo comumente considerado de teste negativo.

Todos conhecemos a funcionalidade de um elevador. Estes serão considerados como requisitos de um elevador, como pressionar o número do andar para fazer o elevador ir para aquele andar específico.

A porta abre automaticamente quando o elevador atinge o piso especificado e assim por diante.

Agora vamos considerar alguns cenários negativos para a elevação. Alguns deles são,

Teste Negativo Teste Positivo
O que acontece se o número de pessoas (peso) exceder o limite especificado? Assume que o único número especificado de pessoas entrará no elevador
O que acontece se alguém fumar ou provocar um incêndio dentro do elevador? Não haverá fumaça ou fogo dentro do elevador
O que acontece se houver uma falha de energia durante a operação? Não haverá falha de energia durante o funcionamento do elevador

Todos esses casos serão submetidos a testes negativos. A importância disto é que não podemos garantir que tudo o que foi mencionado acima não acontecerá, por isso precisamos deles contidos.

Considere o caso em que a condição de excesso de peso é verificada e, na implementação, o levantamento tem um desempenho anormal quando há uma condição de excesso de peso. Isto terá um impacto potencial na fiabilidade do sistema e pode até causar perigo de vida. Isso explica o que é teste negativo e sua importância.

O mesmo caso também se aplica ao software. Para testes negativos, desviamo-nos de um procedimento operacional normal. Vejamos alguns exemplos.

Considere um formulário de registro, por exemplo.

Teste Negativo Teste Positivo
Tente inserir um ID de e-mail inválido no campo de e-mail Somente IDs de e-mail válidos serão inseridos em um campo de e-mail
Tente inserir um número de telefone inválido em um campo de número de telefone (caracteres) O único número será inserido no campo numérico
Carregar imagem com tamanho fora do limite especificado Somente imagens com tamanho abaixo do limite especificado serão carregadas
Carregue arquivos inválidos como XML, SQL, etc. no campo de upload de imagem Faça upload apenas de formatos de imagem válidos, como jpg.png, etc.

Como dissemos anteriormente, temos que ter certeza de que em todos esses casos negativos nosso sistema funcionará corretamente. Considere o caso se alguém tentar inserir um caractere no campo numérico e o sistema não conseguir processar os dados inesperados, pois está esperando um número e, finalmente, o sistema travar. Ou e se alguém tentar fazer uma injeção SQL e apagar todos os nossos dados do banco de dados. Não podemos suportar tais perdas potenciais. Portanto, o teste negativo é importante.

Por que fazer testes negativos?

Como testar é uma tarefa que consome tempo e custos, decidir 'o que', 'como' e 'quanto' testar é realmente importante. Temos que escolher sabiamente se devemos ou não fazer testes negativos em nosso sistema. Então, vamos dar uma olhada na importância dos testes negativos.

Perspectiva da organização

É responsabilidade da organização fornecer um produto de boa qualidade ao seu cliente. Para conseguir isso, é necessário fazer testes negativos.

Como parte da confirmação de uma falha, uma organização deve fazer testes negativos.

Talvez não possamos construir um sistema 100% livre de erros, mas temos que ter certeza de que fizemos tudo para evitar uma falha, para isso devemos fazer testes negativos.

O impacto é um fator que devemos considerar. Considere que fizemos testes positivos em um site de comércio eletrônico e verifique se está tudo bem. Mas e se houver uma lacuna em nosso sistema onde alguém possa fazer injeção de SQL e apagar todos os nossos dados. Isso será uma grande violação de segurança. Para evitar este tipo de casos, é necessário fazer também testes negativos.

Para aplicações abertas ao público, principalmente sites, temos que ter sempre em mente que não temos muito controle sobre o procedimento de utilização da aplicação, por isso temos que fazer testes negativos para garantir que todos esses casos sejam cobertos e contidos.

Outra coisa que precisamos tomar cuidado é que existem muitos hackers negros por aí que estão procurando uma oportunidade para destruir o sistema. Hacking é um caso importante coberto por testes negativos

Perspectiva do cliente

Os clientes sempre esperam produtos com vulnerabilidade zero, para garantir que testes negativos sejam obrigatórios

Se for um produto sensível, como comércio eletrônico, estoque online, etc., então a segurança e os testes negativos são essenciais.

A única preocupação do cliente em relação ao teste negativo é o custo. Mas uma vez analisado o impacto cabe ao cliente decidir se faz ou não o teste negativo.

Como fazer testes negativos

Para fazer testes negativos temos que considerar todos os casos possíveis. Isto é, se for possível, temos que considerá-lo no Caso de teste não importa se não é a maneira correta de usá-lo. Por exemplo, se virmos um campo de e-mail, pense em todas as entradas possíveis que podemos colocar lá, além do formato de e-mail correto. Da mesma forma quando vemos uma opção de upload de imagem, temos que testá-la com todos os arquivos possíveis.

Ao criar casos de teste negativos, temos que priorizar as entradas, caso contrário, haverá muitos casos possíveis. Por exemplo, para um campo de imagem onde apenas arquivos '.png' devem entrar, podemos ter várias opções para fazer upload como 'jpeg', 'xml', 'xls', etc.. Portanto, precisamos priorizar as opções como XML e SQL pode ter um impacto maior do que jpeg e xls, portanto, devemos cuidar primeiro dos casos SQL e XML. Assim, temos que priorizar os casos antes da execução para economizar tempo e custos de testes.

Prós e contras de testes negativos

Como todas as outras técnicas de teste, existem prós e contras nos testes negativos, principalmente com base no “onde”, “quando” e “como” usar. Vamos dar uma olhada nisso.

Vantagens do teste negativo

  • Como todos sabemos, os testes negativos são muito importantes para garantir a qualidade de um produto. Um produto de boa qualidade é um produto com vulnerabilidade zero, para garantir que o teste negativo seja muito importante.
  • Fazer testes negativos garante que todos os casos possíveis sejam cobertos. Intencionalmente ou não, há uma chance de ocorrência de casos de teste negativos. Portanto, para garantir que todos os casos sejam cobertos, temos que fazer testes negativos juntamente com testes positivos.
  • O teste negativo dará mais confiança ao cliente antes de ir ao ar.

Desvantagens dos testes negativos

  • Na Engenharia de Software, testes negativos em alguns casos tornam-se uma perda de tempo e energia. Em muitos casos, não há necessidade de testes negativos excessivos. Por exemplo, se um aplicativo for criado para uso por uma única pessoa, não precisamos considerar o caso de 100 usuários usarem o sistema por vez. Portanto, decidir as condições em casos de teste negativos é muito importante. Haverá momentos em que não precisaremos fazer testes negativos em um sistema específico.
  • Exija pessoas qualificadas e experientes para criar casos de teste negativos.
  • Para o cliente, o teste negativo é outra coisa que causa atraso desnecessário na liberação e acréscimo de custos.
  • Uma chance de uma equipe gastar mais tempo e energia em testes negativos. Há uma chance de que os testadores gastem muito tempo e energia em testes negativos, o que resulta em uma concentração mais baixa em testes positivos.

Resuma esta postagem com: