e fala galera eu sou o Júlio de Lima e esse é o curso gratuito de introdução aos sgpi Rex e essa é a aula número 14 hoje nós vamos falar sobre testes funcionais nessa aula nós vamos aprender um pouco mais sobre como é que você consegue o que precisa ser testado dentro de um apê invés especificamente a gente vai fazer isso através do uso de técnicas e test for mais dessa forma você vai começar a ver aqui aquilo que antes você vir apenas em livros Hoje certificações realmente valem para o seu dia a dia e
é isso que faz com que você seja mais eficiente no seu dia a dia de trabalho lembrando esse curso é um curso que mostra para você quais são os passos iniciais de alguém que quer se tornar um especialista um especialista em testes de apvs Ah e outra coisa também que você precisa saber é que existe um grupo no telegram onde você pode fazer parte enquanto está aqui assistindo essas aulas de modo que você consiga fazer conexões conhecer novas pessoas tirar dúvidas e dessa forma conseguirá evoluir muito mais rápido dentro desse curso e agora chega de
falar tanto e vamos para prática chega aí vem quando a gente fala em apis veste algo muito comum é alguém te falar olha está aqui os wegher e os wegher basicamente é essa documentação que a gente já tem aqui estudado já desde os primeiros nas primeiras aulas aqui dentro do nosso curso introduz de introdução aos testes de aperece na verdade beleza só que quando a gente olha para os wegher ele realmente é uma documentação só que é uma documentação da interface sense então o que você vê aqui você sabe quais são as funcionalidades existentes isso
é representado aqui através dos controles em cada Controller você tem que as operações e a cada operação você tem que qual é o método ou também chamado verbo você tem também hoje corrente e quando você clica na e você sabe exatamente o que é que você precisa passar aqui para que você possa consumir esse em depoente né então ele fala que aqui por exemplo no Direct v1/viagem e você precisa passar o cor deixa falou também que você precisa passar a região mas a região não é obrigatória e que quando isso acontecer se tiver sucesso você
vai receber no status por de 200 e dentro do coco da resposta vai existir lá então não objeto e esse objeto ele vai ter lá na dentro do o atributo deira diversas a zero ou muitas viagens que foram retornados representados aqui através de um objeto de sol também e que se houver erros a ver as a pergunta que é e essa documentação basta não gosta porque porque aqui não está falando de regras de negócio como por exemplo é quando eu fizer essa requisição e passar uma região que a região norte deverá vir apenas regiões deverá
vir apenas viagens da região norte eu sei que essa é uma regra é meio besta meio que parece estar implícita mas ela não nunca estaria descrito aqui dentro do sueder porque os ué vai te passar apenas qual é aqui na a qual é aqui quais são aqui a qual é a interface Quais são os elementos de interação através das a interface aqui por exemplo dentro dessa desse dessa parte dos wegher não vai estar te falando por exemplo que usuários do tipo administrador não podem executar essa operação apenas usuários comuns e não vai tá escrito aqui
por quê Porque isso está relacionado a regra de negócio certo vou dar mais um exemplo aqui para você aqui ó no post/ver um barra viagens aqui eu tenho que eu preciso passar um autor existe o que aqui o nosso né o nosso tô tem que representa o usuário que está executando suas ações mas novamente aqui não fala que o usuário comum não pode registrar uma viagem que é apenas um administrador aqui também não fala que por exemplo dentro do viagem de te o é que o acompanhante é aqui precisa ser aqui um sei lá um
usuário já existente essa regra não existe aqui dentro da pele mas tô apenas aqui meio que tentando te levar entender algumas coisas que não estão escritas aqui e que não estarão escritas aqui certo aqui puder eu tenho data partida e data retorno a data retorno nunca pode ser na uma data menor do que a data partida isso não tá escrito aqui por quê Porque o swag não é maizena todas as regras de negócio bem resume Swag não é não guarda regras de negócio ele guarda a questão relacionada a interface como é que eu sendo um
software utilizo essa api rest aqui é basicamente isso que ele nos mostra interessante isso não se é realmente dessa forma onde as regras de negócio podem estar Julho elas podem estar em um documento à parte podem estar em um caso de uso podem estar em diagramas de sequência podem estar descritas de maneira não-estruturada por exemplo alguém me mandou um e-mail e falou Quais são as regras de negócio pode estar na cabeça de alguém E aí tem que extrair de alguma forma por exemplo um dizer que eu sou o desenvolvedor aqui desse desse produto e ao
e eu tenho algumas regras negócio na cabeça aí você vai lá e me pergunta Júlio Quais são as regras que você conhece para isso eu falo olha uma regra que eu conheço aqui usuário ele não consegue cadastrar só o administrador consegue Onde você conseguiu essa regra Júlio a essa regra foi um dia lá que alguém falou para mim eu vim que implementei por isso que eu fiquei sabendo legal bacana Então o que eu faço estranho essas regras e estranho essas Regras eu vou ter um montão de conhecimento sobre o que é que na nós temos
para essa determinada aplicação o que que eu tô falando sobre isso porque quando a gente fala sobre testes funcionais a primeira coisa que vem à sua mente é Ou melhor são as regras de o que realmente o termo testes funcionais ele ficou bastante conhecido por ser aquele momento dentro da do ciclo de vida da aplicação do ciclo de vida do desenvolvimento de software onde nós validamos ali que realmente os requisitos é que foram pedidos foram atendidos né a conformidade com os requisitos Beleza então testes funcionais e o validar a função do software e geralmente quando
a gente fala de função a gente tem dados de entrada a gente tem um processamento e tem na os os dados que eu recebo na resposta em julho o que você tá me dizendo então é que todas as vezes que eu falo sobre testes funcionais eu estou falando sobre uma função exatamente vai julho é eu sempre eu vim falar de testes funcionais como sendo é algo executado pelo usuário final usando as telas da aplicação e isso é teste funcional se você está imputando dados de entrada ele está processando E você tava olhando os resultados da
saída assim vai Julho Pensando bem eu vejo que quando eu testo uma um método por exemplo tô falar agora não tô mais falando da tela tô falando do método lá uma tô criando um teste de unidade para validar que aquele determinado método funciona como esperado tão mudado de entrada ele vai processar eu quero saber os os valores de saída é um teste funcional é um teste funcional por quê Porque você está testando a função do software bom então a primeira coisa aqui aqui que nem precisava estar aqui dentro do curso de testes Japeri o resto
especificamente mas que você precisa saber aqui testes funcionais são testes que validam a função não tem nada a ver se é no livro de pode Gucci a num nível de apêndice a no nível de interface gráfica não não importa o que importa que ela é ação que você tá fazendo é interessante isso não a beleza Júlio trazendo isso para o mundo as apenas rest estou aqui dentro do post/vem um barra viagens que vocês vão teste funcional aqui Júlio um teste funcional ué dá daquela regra que a gente já sabe que eu só posso cadastrar se
eu for um usuário do tipo administrador é eu executar esse teste ver se realmente é possível cadastrar e eu executar um teste com o usuário que não é administrador e ver se realmente ele não me deixa executar isso é eu tentando validar uma função do software então eu vou lá e tem que fazer isso beleza é a minha aqui já está no ar e eu vou aqui então abrir o insônia né insônia e abrindo in some né eu vou aqui buscar um token de administrador a beleza enviei aqui ele já tem o token do administrador
vou vir aqui em cadastrar viagens só vou aqui confirmar aqui dentro do header ele está pegando aqui o token é correto falar buscar tô querendo administrador está correto Tá bom então enviar aqui eu quero saber se ele cadastra lá cadastro normalmente agora eu vou vir aqui cadastrar capturar um pouquinho do usuário Sandes eu vou vir aqui no cadastrar viagens e aqui no response vou clicar e aqui ó ao invés de capturar o Estopim do administrador vou mudar para capturar o token do usuário ou seja tô trocando um pouquinho aqui tô usando um token do usuário
em vez de tá usando um pouquinho do administrador se você não sabe mexer no insônia lembre-se que a gente tem uma aula específica sobre isso a minha volte lá faça aquela hora depois retorne aqui para você conseguir acompanha melhor essa aula beleza bom então fiz isso daqui agora vou clicar em send Olha lá 403 forbidden access is denied que quer dizer quer dizer que realmente eu fui impedido de consegui cadastrar uma viagem dado que eu sou o usuário Então esse daqui foi um teste um outro teste funcional eu tentei validar que aquela função foi realmente
implementada corretamente Ah beleza então isso daqui foi eu tenho eu fornecendo dados de entrada para a minha Para uma determinada operação aqui uma indicante com o método da minha feio essa e vendo se eu tive o resultado esperado Esse é o resultado esperado o blog nesse meu teste funcional eu consegui ter sucesso legal né só que o que acontece quando eu recebi esse requisito o que era é os administradores podem cadastrar e usuários não podem Eu interpretei a regra de negócio O Cara isso é muito importante para que você entenda muito bem de dentro de
teste de software não recomendo até que você ler um livro que eu escrevi um e-book gratuito que tá lá no site né no Júlio de Lima. Com.br você pode acessar lá no ibooks você vai ver que tem um e-book gratuito que é o de testes de software para iniciantes talvez você esteja assistindo essa aula e você já tem sei lá anos de experiência em teste de solo o anos 12 anos sei lá experiência teste de salto bom e você olhou para isso daqui mas você encontrou exatamente os dois testes que eu te pedi né e
talvez você seja novo e você tem só em um dos Testes só no teste de administrador para ser cadastrado É mas o que acontece é que nesse momento até esse exato momento a gente tava usando uma abordagem teste de software que eu considero uma abordagem empírica que quer dizer quer dizer que baseando-se nas minhas experiências passadas ou na interpretação do texto ou na interpretação da regra eu pensei aqui em quais são os testes e deveriam executivo serem executados por isso que aconteceu aqui é mas quando a gente fala sobre testes de software não é só
sobre técnicos sobre a abordagem pe também é sobre a abordagem sistemática o uso de técnicas e teste formais para identificar o que testar e agora eu quero mostrar para você aqui como usa uma técnica talvez a técnica mais simples e aplicar dentro da área de teste de software você vai perceber que a gente tava deixando um Gol atrás vezes até alguns testes de a serem não serem executados aqui veja só que interessante e a nossa regra de negócio era a seguinte é apenas administradores podem a registrar novas viagens essa regra de negócio ok e quando
eu olho para essa regra dos negócios e eu preciso na pensando de maneira sistemática eu preciso fazer um exercício aqui que é o exercício de identificar Quais são as entradas de dentro desse nosso requisito aqui a identificar as entradas É talvez a coisa mais arcaica que existe dentro da disciplina de engenharia de software no geral porque porque quando você está cursando não na faculdade de engenharia de software ou de desenvolvimento de software ou qualquer coisa similar você aprende através desse desenho aqui ó eu aprendi através desse desenho o que você tem é um software composto
por entradas processamento o que saída não é assim que você aprende E aí você tem a entrada sendo o passado processamento processamento você no passado para sair é só que se você ler apenas esse requisito bom e você interpreta ele você tá terceirizando ao seu cérebro tomar decisão sobre Quais são os testes a serem realizados e agora quando você para e faz análise de uma maneira sistemática de o que isso daqui representa você passa vir aqui e tentar procurar Quais são as entradas nesse requisito que foi super escrito em Alto Nível eu falo muito sobre
isso para os meus alunos no tsbi que é um treinamento de testes de software que eu tenho que a treinamento base em testes é independente se você é super Sinhá gerente ou se você é Super Júnior acabou de entrar como treino a empresa independente ele serve para vocês porque isso porque porque ele tá as vocês para essa base aqui é porque vocês não são só interpretadores de texto e vocês também são técnicos impressos quando eu falo para você olha para esse requisito tenta encontrar entrada o que você me diz provas se diz assim Julho administradores
dá uma entrada e isso é um erro porque porque administradores é um valor que você imputou para entrada qual era a entrada aqui a credencial e na credencial eu tenho uma credencial de administrador e eu tenho uma credencial de usuário era isso daqui que a gente tinha pensado na era isso que a gente tinha pensado quando a gente entendeu o requisito quando a gente leu requisito é só que a questão é que a gente ficou limitado em administrador e usuário O que que a técnica faz a técnica ela te força a você pensar e o
que mais é essa daqui é uma técnica chamada partição ou classes de equivalência administrador e usuários são partições ou também chamadas classes de equivalência da entrada credencial Entendi então a técnica partição ou classe de equivalência te ajuda nisso a você pensar Quais são as possíveis entradas que você vai dar para uma função da sua aplicação é interessante isso né bom então a gente pensou aqui em administrador e usuário só que a técnica ela me fala isso aqui ó e o que é mais aí se você é preguiçoso ou preguiçosa você faz 100 anos tem mais
nada não agora se você está realmente com vontade de testar isso de maneira efetiva você pensa Deixa eu perguntar para o piou piou Olha eu vi lá que eu tenho alguns tipos de credenciais né que a credencial de administrador EA de usuário que mais que eu tenho aí ele falar tem também a credencial invalida tá eu falar entende então tem mais uma aqui mas olha você não mencionou nada sobre isso no requisito aqui em cima ele falar a verdade eu esqueci mas como você fez a pergunta certa eu lembrei Mas como você pensou na pergunta
certa foi do nada não foi porque você começou avaliar quais eram as partições aqui de equivalência ou as classes de equivalência E aí isso te fez brotar uma pergunta nem o que mais e aí você perguntou e tu e eu é só que sensacional na E aí talvez ele vai lá e te falo eu falo assim ó ele legal e tem alguma outra credenciar tem algum outro não algum outro tipo de credencial aqui e ele falou olha tem sim tem a credencial que é a credencial expirada Aí você vem aqui falar que bacana então além
da invalida tem a que inspirada Tem mais alguma coisa aqui que a gente não tá lembrada não tá legal então olha só que bacana a gente conseguir identificar outras duas possibilidades que não estavam a técnica e novamente você só identificou porque você o parou para usar técnico Qual o técnica uma técnica que te esforça você pensar nas entradas João maneira sistemática identificar todas as possibilidades que você pode ter para cá determinada entrada e isso é fantástico isso é igual isso faz com que você entenda um pouco mais sobre o software e identifique o que mais
que está Ah e por usar a partição de equivalência aqui você agora pergunta para na para o nosso piu olha para essa regra de negócio apenas administradores podem registrar novas viagens se eu for administrador o que tem que acontecer ele fala a registrar E se for usuário e não registrar e esse foi uma uma uma credencial inválida o que que precisa fazer esse forma credencial em válida se for inválida não registrar Esse foi inspirada não registrar também e aqui a gente já tem quatro testes a serem executados novamente dois você identificou com base no empírico
apenas naquilo que você foi lá e pensou com base na sua experiência os seus conhecimentos passados e assistemática não A sistemática foi diferente A sistemática você usa uma técnica traz bacana né E aí com base nessa técnica eu venho aqui e eu começo o desculpa eu vim aqui então mim some né e eu começo a fazer essas variações então por exemplo ouvido aqui e vou passar uma credencial invalida ó vou tirar que o autorizei Chan tá vou reportar só para não ter que fazer tudo de novo depois e vou colocar aqui a b c d
e f inválida por exemplo vou fazer isso vou clicar aqui em cenes olha só e não registrou e deu 401 deu gente viu Ah entendeu eu quero dizer se eu tivesse aqui então realmente né que foi um exemplo hipotético da inspirado mas se eu tivesse uma credencial expirada colocaria aqui um dado de um usuário inspirado para saber se realmente ele iria registrar ou não Bacana Então aqui o que a gente fez a gente basicamente fez aqui pro já tô aqui quatro testes funcionais que a gente executou esses quatro testes funcionais fazendo requisições via insônia e
eu poderia fazer esses testes funcionais com post mano eu poderia fazer esses testes funcionais conversa Shure normal porque são quatro testes funcionais que eu envio da e esperas ele processa Ingrid Love resposta beleza então para essa aula era isso que eu queria trazer para você sabe essa fundamentação na do que é a utilização de técnicas E também o do que é o conceito do funcional em si para que você entenda como validar o software dessa forma Espero que você tenha gostado não esqueça de deixar o seu like comente se você ficou com alguma dúvida vai
lá no grupo fale o que você achou dessa aula de hoje comente Quais foram os principais achados principais coisas bacanas que você aprendeu hoje e dessa forma Ajude a Melhorar ainda mais a compreensão do que a gente viu aqui um abraço até a próxima aula tchau tchau tchau [Música] E aí