Considerando a técnica de teste funcional, dos seus critérios é a análise do valor limite, que será vista detalhes neste vídeo. Então, de forma geral, todos os critérios da técnica de teste funcional são baseados na especificação do produto testado e não na implementação si, considerando a análise do valor limite. Além disso, o critério análise do valor limite complementa os resultados do particionamento classes de equivalência. De forma geral, que acontece? Tendo domínio de entrada infinito ou muito grande, onde o teste exaustivo é complicado ser realizado, a gente entra com critério particionamento classes de equivalência e basicamente, o que ele faz? Ele divide o domínio de entrada subconjuntos do domínio, para ficar mais fácil de testar. E considerando esses conjuntos a gente pode selecionar de forma arbitrária elementos, indicado o subconjunto, para compor casos de teste. Só que o critério de análise de valor limite usa as classes de equivalência e vez dos dados de testes serem escolhidos aleatoriamente, assim como o critério para funcionamento caso de equivalência, eles devem ser selecionados considerando o valor limitante dessas classes, tanto abaixo quanto acima, é o que a gente vai verificar aqui. Então, aqui tem algumas recomendações gerais com aplicação do critério análise do valor limite. Se a condição de entrada especifica intervalo de valores, por exemplo: digite valor no intervalo entre -1 e +1. Então, deve ser definido dados de teste para os limites desse intervalo, então, por exemplo, +1 e -1, e também dados de teste, quer dizer, valores relacionados aos subsequentes, que explorem as classes inválidas vizinhas. Neste caso que seria mais 1.001, e -1.100. Outra questão, se a condição de entrada específica uma quantidade de valores, por exemplo: digite valor no tamanho de até 255 caracteres. Então, devem ser definidos casos de teste com nenhum valor de entrada, com somente valor de entrada, com 255 valores, e com 256, ou seja, a gente tem aqui limite inferior, limite superior e antes e depois, basicamente essa é a ideia. A gente pode usar as recomendações e dois, que foram essas que eu acabei de falar, para as condições de saída também. E se entrada ou saída for conjunto ordenado, a gente precisa se preocupar com o primeiro e com o último elemento da lista ordenada. Então, aqui a gente tem exemplo cima do programa Identifier, que é identificador. Então, o programa deve determinar se o identificador é válido ou não. E o que é identificador válido? Deve começar com uma letra, e conter apenas letras ou dígitos, por exemplo. Aqui seria exemplo de identificador válido. Além disso deve ter no mínimo caractere e no máximo seis caracteres de cumprimento. Considerando essa especificação, a gente precisa primeiro identificar as classes equivalência considerando o critério particionamento de classe de equivalência. De forma geral a variável de entrada é o comprimento do identificador, ele deve começar com uma letra, e deve conter letras ou dígitos. Aqui eu estou chamando de t, de i, e de c. E aqui a gente tem, considerando as variáveis de entrada, as classes de equivalência válidas e inválidas, ou seja, ele tem que ter o cumprimento entre e seis, tem que iniciar com uma letra, e tem que conter só letras ou dígitos. Classe de equivalência inválidas, considerando o critério de particionamento classes de equivalência, seria tamanho zero ou menor do que tamanho maior do que 6, por exemplo, sete, não iniciar com letra, e conter caracteres diferentes de letras, por exemplo, asterisco, de entre outros. Considerando as classes de equivalência, agora a gente pode aplicar o critério análise do valor limite, considerando os limites e as recomendações para cada critério. As recomendações são essas que eu falei aqui antes. Aqui a gente tem, por exemplo, para a variável t, que é o cumprimento, a gente especifica o valor, então, deveria ter aqui os limitantes, a mais e a menos, ou seja, a gente tem aqui nada, o comprimento valendo nada, o comprimento com caractere, com seis caracteres e com sete caracteres. Para nenhum caractere, atendendo que a classe de equivalência dois, no caso, a saída esperada é inválido. Para os outros a saída esperada é válido. Considerando a variável de entrada i, o quê que a gente tem? Deve começar com uma letra, então, a gente tem aqui esse exemplo aqui, que vale tanto para a variável comprimento quanto para a variável de iniciar com uma letra, que é i. A gente tem esse outro exemplo que também é útil, que são dados, e a saída esperada é uma saída válida. E aí, ao contrário, como saída inválida, ou seja, classe inválida, a gente tem começando com dois que não é uma letra, então, a saída esperada é o quê? Inválido. A mesma coisa para variável que contém letras ou dígitos, que também foi aproveitado anteriormente para exercitar as outras variáveis de entrada. Então, se conter só letras ou dígitos, dessa classe aqui, a gente precisa pegar o quê? Contém letra, e aqui não contém, quer dizer contém letras ou dígitos, e essa que não contém só letras ou dígitos, ou seja, possui caractere estranho que é o cerquilho, o jogo da velha, e o cifrão. Então, a saída esperada é o quê? Inválido. Então, vez de eu pegar valores aleatórios, eu pego os limitantes, e acima e abaixo. Então, aqui a gente tem resuminho do critério análise do valor limite. Então, é critério da técnica de teste funcional, requer especificação para gerar os casos de teste e não a implementação si, funciona conjunto com o critério particionamento classe equivalência, a gente viu isso, explora valores nos limites das classes, então, se eu tenho que explora nos limites da classe sobre, ou imediatamente antes e imediatamente depois. E existem diretrizes que a gente precisa considerar e que levam à determinação dos dados de teste que são uteis para compor o conjunto de casos de teste. Então, como dicas de próximos passos para a sua aprendizagem, eu deixo para você resolver outros casos relacionados com este critério, aplicar a técnica de teste funcional considerando esse critério mas num contexto real, e compreender outros critérios da técnica de teste funcional.