Oi Diego, tudo bem? Primeiro, queria agradecer pelo seu conteúdo, comecei trabalhar com testes em flutter recentemente e tem me ajudado muito. Uma dúvida que estou tendo para testes no flutter web, existe alguma alternativa tirando o integration test? Já estou usando Patrol para testes de app, mas infelizmente não possui suporte para web ainda. Estou achando o integration test muito lento para testes na web... Muito obrigado novamente!
Por enquanto sim, para E2E terá que usar o integration test mesmo. Existem os drivers específicos para web, mas seria difícil lidar com eles por conta do canvas, pois basicamente eles trabalham com seletores. Talvez até ganhasse velocidade, mas teria que ficar trabalhando com coordenadas ou semantic label ou árvore de acessibilidade. :\
Muito bom conteúdo. Já faço e sou familiar com testes de widget e unitários, mas achava que os de integração seriam um bicho de sete cabeças, o que não pareceu com esse vídeo tão didático e ilustrativo. Mas fico imaginando um app com muitos botões, animações e transições de página, não seria interessante um profissional testador apenas com esse objetivo? O dev que já coda, testa suas unidades e etc, não vejo uma sobra de tempo para contemplar essa atividade tão importante no tempo tão curto que geralmente costumam ser as sprints.
Obrigado Lucas! São coisas diferentes, o profissional de QA sempre irá existir para garantir a qualidade do produto para o usuário final, principalmente para essas micro interações. Já o testes E2E serve para garantir que o fluxo de interação e a integração entre as funcionalidades não estejam quebradas antes de chegar ao usuário final (isso implica em testar em várias versões de Android e iOS, e em vários dispositivo) - somente com o teste automatizado isso é "viável" (embora ainda um pouco caro).
Ótimo vídeo, como sempre! Mas me parece que isso tem mais sentido em grandes corporações, para compensar a montagem de toda uma estrutura dos modelos de testes.
O ideal mesmo é utilizar um serviço em nuvem para executar esses testes em múltiplos dispositivos e versões de OS diferentes, pois realmente é meio inviável você ter um dispositivo físico de cada fabricante com versões de Android e iOS diferentes. Publiquei hoje a parte 2 mostrando como executar os testes no Firebase Test Lab
Sempre com um conteúdo de excelência, muito obrigado professor! Não sei se foi por conta de versão ou algo do tipo, porém meu teste com o mudança do texto não funcionou de cara. Precisei usar um tap pra focar no input de texto, fora isso foi tudo numa boa 😄
Professor como eu faria para testar o meu app em vários tipos de celulares, para saber se meu layout está de acordo em todos ou se tem algo fora do lugar?
Sim é possível! Uma primeira alternativa é tirar screen shots do seu código por meio do teste, por exemplo: await binding.convertFlutterSurfaceToImage(); await tester.pumpAndSettle(); await binding.takeScreenshot('screenshot-1'); Para testar em múltiplos devices, você pode usar o Firebase Test Lab, veja o novo vídeo que publiquei no canal => ruclips.net/video/RBoMdhPQX1s/видео.html
Estava desenvolvendo a automação de teste mobile com appium + webdriverio, porém, não esta sendo possível inspecionar alguns elementos. O flutterdrive seria melhor opção? No caso eu teria que pedir as keys pro Dev? Sou QA do time. Muito obrigado pelo conteúdo.
@@drantunes não sei se estou perguntando no vídeo correto kkk. No caso eu tenho um app que precisa do usuário logado no Azure para poder fazer chamadas com o token. Só que no teste eu não consigo preencher os campos de usuário e senha pois são de uma página externa
@@Seyanhyriu no setup do teste você deveria setar esse token ou fazer o login automatizado antes de rodar os testes E2E.. se precisar fazer o login no fluxo de teste mesmo, ai seria bom usar o Patrol para interagir com a webview
Infelizmente ainda não é possível, há alguns issues abertos no Github sobre isso. Para essas funcionalidades, agora é necessário escrever testes direto para o Android e iOS (ou seja, o que foge do Flutter)
ótimo vídeo, parabéns.. me ajudou muito. Fiquei apenas com uma dúvida do E2E, tenho um app que quero testar um cadastro mas para isso tenho que passar o login, menus e acessar o cadastro. Nesse cenário meu, tenho que criar um único testWidgets com todas as etapas ou consigo quebrar em várias? Primeiro crio um testWidgets para o login e depois crio outro testWidgets para o menu e por fim um testWidgets do cadastro? Percebi que ao terminar o primeiro testWidgets do login o app fecha pois finalizou o teste 😅
Sim, a ideia é sempre isolar os testes. Para fazer o fluxo que deseja, você precisa escrever a sequência corretamente. Caso queira reusar, pode tentar separar em funções as partes "reusáveis"
Pelo que pesquisei ainda não, pois é necessário o acesso nativo e pelo teste ainda não é possível interagir fora do Flutter. Uma ideia é pesquisar se é possível configurar o device de teste para não solicitar a permissão.
Depende da arquitetura do seu projeto. Se for uma arquitetura modular ou de micro apps, usando packages, você consegue reduzir o número de testes e fazer testes individuais em cada micro app. Caso contrário, você deve fazer o teste E2E mesmo, interagindo entre telas, como um usuário faria.
Muito bem explicado! Didática impecável 🥇
Cara acabei de receber uma proposta de emprego e pede conhecimento em teste de integração, vídeo na hora certa
Aí sim!!!!
esse canal é uma mina de ouro sinceramente.
Obrigado Wesley!
Mais um conteúdo de altíssima qualidade.. muito obrigado professor ❤
Fui o primeiro a dar o Like, Parabéns Professor
Obrigado Alexandre!!!!
Sensacional! Aula incrível, muito bem explicada. Obrigado!
Disponha!
Só conteúdo de qualidade! 👏🏽👏🏽👏🏽
Oi Diego, tudo bem? Primeiro, queria agradecer pelo seu conteúdo, comecei trabalhar com testes em flutter recentemente e tem me ajudado muito.
Uma dúvida que estou tendo para testes no flutter web, existe alguma alternativa tirando o integration test? Já estou usando Patrol para testes de app, mas infelizmente não possui suporte para web ainda. Estou achando o integration test muito lento para testes na web... Muito obrigado novamente!
Por enquanto sim, para E2E terá que usar o integration test mesmo. Existem os drivers específicos para web, mas seria difícil lidar com eles por conta do canvas, pois basicamente eles trabalham com seletores. Talvez até ganhasse velocidade, mas teria que ficar trabalhando com coordenadas ou semantic label ou árvore de acessibilidade. :\
Obrigado! Seus vídeos ajudam muito.
Show Matheus!!! Fico grato de ter contribuído um pouquinho ;)
Muito bom!
Poderia evoluir o assunto falando de cobertura, lcov, etc...
Verdade, também gostaria de ver o professor comentar sobre esse assunto.
Muito bom, vou estudar mais a respeito. Obrigado
Sensacional, o tipo de conteúdo que eu estou interessado
Que ótimo! Sucesso Fabio!!
Muito bom conteúdo. Já faço e sou familiar com testes de widget e unitários, mas achava que os de integração seriam um bicho de sete cabeças, o que não pareceu com esse vídeo tão didático e ilustrativo. Mas fico imaginando um app com muitos botões, animações e transições de página, não seria interessante um profissional testador apenas com esse objetivo? O dev que já coda, testa suas unidades e etc, não vejo uma sobra de tempo para contemplar essa atividade tão importante no tempo tão curto que geralmente costumam ser as sprints.
Obrigado Lucas! São coisas diferentes, o profissional de QA sempre irá existir para garantir a qualidade do produto para o usuário final, principalmente para essas micro interações. Já o testes E2E serve para garantir que o fluxo de interação e a integração entre as funcionalidades não estejam quebradas antes de chegar ao usuário final (isso implica em testar em várias versões de Android e iOS, e em vários dispositivo) - somente com o teste automatizado isso é "viável" (embora ainda um pouco caro).
Top, estava precisando aprender testes com widget. 👏🏽
Espero ter ajudado!!!
Ótimo vídeo, como sempre! Mas me parece que isso tem mais sentido em grandes corporações, para compensar a montagem de toda uma estrutura dos modelos de testes.
O ideal mesmo é utilizar um serviço em nuvem para executar esses testes em múltiplos dispositivos e versões de OS diferentes, pois realmente é meio inviável você ter um dispositivo físico de cada fabricante com versões de Android e iOS diferentes. Publiquei hoje a parte 2 mostrando como executar os testes no Firebase Test Lab
Sempre com um conteúdo de excelência, muito obrigado professor!
Não sei se foi por conta de versão ou algo do tipo, porém meu teste com o mudança do texto não funcionou de cara.
Precisei usar um tap pra focar no input de texto, fora isso foi tudo numa boa 😄
Percebi um problema parecido no iOS, algo haver com o primeiro popup do teclado
Professor como eu faria para testar o meu app em vários tipos de celulares, para saber se meu layout está de acordo em todos ou se tem algo fora do lugar?
Sim é possível! Uma primeira alternativa é tirar screen shots do seu código por meio do teste, por exemplo:
await binding.convertFlutterSurfaceToImage();
await tester.pumpAndSettle();
await binding.takeScreenshot('screenshot-1');
Para testar em múltiplos devices, você pode usar o Firebase Test Lab, veja o novo vídeo que publiquei no canal => ruclips.net/video/RBoMdhPQX1s/видео.html
Parabéns
mano, na boa, vc é foda
Estava desenvolvendo a automação de teste mobile com appium + webdriverio, porém, não esta sendo possível inspecionar alguns elementos. O flutterdrive seria melhor opção? No caso eu teria que pedir as keys pro Dev? Sou QA do time. Muito obrigado pelo conteúdo.
Teste de caixa preta é complicado no Flutter mesmo. Recomendo dar uma olhada no Fluttium e no Patrol, que são packages novos.
Muito bom. Teria algum teste de fluxo com varias telas seguindo uma jornada?
Não tenho vídeo sobre esse caso de uso em específico, mas pode programar exatamente no caminho que deseja, usando o tap para acionar a próxima página…
Existe alguma maneira de fazer os testes com autenticação via Azure AD? Já pesquisei sobre Patrol mas não consegui avançar.
O que deseja fazer mais especificamente? É possível criar um pipeline customizado na Azure, mas não entendi bem o que deseja fazer.
@@drantunes não sei se estou perguntando no vídeo correto kkk.
No caso eu tenho um app que precisa do usuário logado no Azure para poder fazer chamadas com o token. Só que no teste eu não consigo preencher os campos de usuário e senha pois são de uma página externa
@@Seyanhyriu no setup do teste você deveria setar esse token ou fazer o login automatizado antes de rodar os testes E2E.. se precisar fazer o login no fluxo de teste mesmo, ai seria bom usar o Patrol para interagir com a webview
Como faço para fazer um tap em elementos nativos como dialog de permissão para acesso a câmera nesses testes?
Infelizmente ainda não é possível, há alguns issues abertos no Github sobre isso. Para essas funcionalidades, agora é necessário escrever testes direto para o Android e iOS (ou seja, o que foge do Flutter)
ótimo vídeo, parabéns.. me ajudou muito. Fiquei apenas com uma dúvida do E2E, tenho um app que quero testar um cadastro mas para isso tenho que passar o login, menus e acessar o cadastro. Nesse cenário meu, tenho que criar um único testWidgets com todas as etapas ou consigo quebrar em várias? Primeiro crio um testWidgets para o login e depois crio outro testWidgets para o menu e por fim um testWidgets do cadastro? Percebi que ao terminar o primeiro testWidgets do login o app fecha pois finalizou o teste 😅
Sim, a ideia é sempre isolar os testes. Para fazer o fluxo que deseja, você precisa escrever a sequência corretamente. Caso queira reusar, pode tentar separar em funções as partes "reusáveis"
Ótimo vídeo!!
Obrigado 😃
Bom dia !
A lib flutter_test nao seria boa tambem nao?
Sim, mas para testes convencionais
Mestre você teria alguma dica em como resolver a questão de permissões?
Pelo que pesquisei ainda não, pois é necessário o acesso nativo e pelo teste ainda não é possível interagir fora do Flutter. Uma ideia é pesquisar se é possível configurar o device de teste para não solicitar a permissão.
Muito bom
Como fazer o teste de integração quando na aplicação tem vários módulos?
Depende da arquitetura do seu projeto. Se for uma arquitetura modular ou de micro apps, usando packages, você consegue reduzir o número de testes e fazer testes individuais em cada micro app. Caso contrário, você deve fazer o teste E2E mesmo, interagindo entre telas, como um usuário faria.
uma duvida q eu tenho , na hora de publicar o app na play store tem q tirar todos os testes do aplicativo ?
Não é necessário, pois eles não são "empacotados" no build que irá para a loja, justamente por isso é que os testes ficam fora da parta "lib" 👍
@@drantunes bom saber , muito obrigadoo
Dica para Integration Test, saiam colocando Key em tudo quanto é lugar hahahaha