fbpx
Escolha uma Página

Análise do Valor Limite

O que é análise do valor limite e como essa técnica nos ajuda nos testes de software? vamos falar sobre esse assunto nesse texto!

A primeira coisa que as maioria das pessoas pensam quando falamos de teste de software é:

Tem que testar TUDO!

Porém, o que não se considera nesses casos é que softwares são complexos por natureza e têm diversas possibilidades de combinações de entradas e caminhos.

Na maioria dos casos, existe uma infinidade de possibilidades, que tornam o “testar tudo” infactível, ou mesmo impossível!

Por isso, exceto em domínios muito pequenos, nos quais podemos exercitar todas as combinações de entrada, em produtos da vida real, não conseguimos testar tudo.

Mas se não pode testar tudo, o que fazer?

Como não podemos testar tudo, o foco é criar casos de teste efetivos. E isso significa criar testes que cubram a maior parte do software, descubra a maior quantidades de defeitos possíveis e com o menor esforço possível.

É aí que as técnicas de geração de caso de teste são importantíssimas!

As técnicas mais comuns para essa finalidade são a classe de equivalência e análise de valor limite.

Como usar a Análise do valor limite nos testes?

Usamos a técnica análise do valor limite para gerar casos de teste para intervalos numéricos.

Para usar a análise do valor limite nos testes, descobrimos os limites do campo que queremos testar.

Como exemplo, e um intervalo no qual os números válidos são entre 0 e 5, os limites serão 0 e 5.

Zero representa o limite interior.

Cinco representa o limite superior.

A técnica nos diz que devemos testar um valor imediatamente abaixo do que o limite, o valor limite e um valor imediatamente acima do valor limite.

Como exemplo, para um intervalo entre 0 e 5, precisamos testar os valores:

-1, 0, 1 para o valor limite 0

4, 5, 6 para o valor limite 5

Com isso, temos os casos de teste para esse intervalo numérico conforme a técnica análise de valor limite.

O que um Testador / Tester de Software Faz?

Você sabe o que um tester de software faz? qual o trabalho de um testador de software? O que é testar programas? Se não sabe vem descobrir!

Apesar de termos diversos nomes como:

  • analista de qualidade;
  • analista de teste;
  • software development engineer in test;
  • engenheiro de teste;
  • “carinha do teste” kkkk;
  • etc…

O trabalho de um testador de software é muito parecido, independente do título recebido.

O nosso principal foco é ajudar a entregar programas (sofwares) de boa qualidade para os clientes. Ou seja, quando o cliente usar os nossos produtos, ele deve conseguir fazer o que precisa, sem problemas e bugs atrapalhando.

E isso significa, não somente fazer teste de forma manual, mas também de forma automatizada e estar presente em todas as etapas de desenvolvimento do software.

No mundo ágil, o nosso trabalho de tester está espalhado em todo o processo de desenvolvimento.

O que fazemos em cada fase do processo de desenvolvimento?

Os testadores de software têm tarefas específicas desde a fase de requisitos, passando pela fase de projeto, desenvolvimento, testes e deployment na produção.

Na fase de requisitos, a gente vai ajudar a revisar os requisitos e levantar cenários diferentes que podem conter problemas. Sempre da perspectiva do usuário. Ajudamos os donos do produto (product owners), e as vezes até conversamos com os próprios usuários junto com os donos do produto e analistas. Auxiliamos na escrita dos cenários, podendo usar BDD por exemplo como forma de descrever os cenários que precisam ser implementados.

Na fase de projeto, a gente trabalha junto com os arquitetos e desenvolvedores para projetar o software. Discutimos como é o banco de dados, tipos de padrões de projetos que podemos usar, dificuldades em alguma solução, etc. Então é por isso que testadores também devem ser bons de arquitetura de software, para auxiliar nessas discussões e trazer cenários que podem ser esquecidos durante essa fase.

Na fase de desenvolvimento, trabalhamos diretamente com os desenvolvedores. Podemos sentar junto com eles para programar (pair programming), revisar códigos (pull request review), e também desenvolvemos os testes automáticos de forma paralela. Enquanto os desenvolvedores estão desenvolvendo o código da aplicação, estamos desenvolvendo os códigos dos testes automatizados que vão testar essa aplicação.

Na fase de teste, a gente vai executar os testes que produzimos anteriormente. Nela podemos encontrar defeitos e requisitos que foram implementados de forma incorreta ou incompleta. Isso inclui testes funcionais, de usabilidade, segurança, acessibilidade, carga, estresse. Também podemos fazer testes manuais para complementar os testes automatizados.

Na fase de deployment para produçao, em alguns lugares, podemos ser os responsáveis por colocar as aplicações em produção (ambiente em que os clientes realmente vai usar os programas). Tanto de aplicações web como nas lojas de aplicativos (IOS/ANDROID). Em outros lugares, apenas damos suporte para a equipe responsável por colocar os programas na produção. Mas em todo caso, estamos também envolvidos nessa fase.

Conclusão

No mundo ágil, o nosso trabalho de tester está espalhado em todo o processo de desenvolvimento. Desde a fase de requisitos, passando pela fase de projeto, desenvolvimento, testes e deployment na produção. Muito mais amplo, completo e complexo do que apenas testes manuais e apenas na fase de teste.

E você, como funciona os testes na sua equipe atual? comenta aí que eu quero saber. Um abraço e até a próxima!