Curso completo
Algoritmos e Programação para QAs
A parte da automação de testes que a documentação das ferramentas nunca cobre: o JavaScript e os algoritmos de que os seus testes são realmente feitos. Faça parsing, compare, remova duplicatas, refaça tentativas e gere dados com código que você consegue defender em uma revisão.
~5 horas de conteúdo
Conteúdo do curso
15 aulas completas cobrindo tudo o que você precisa saber
Introdução
Introdução
Estrutura do curso
Saiba como o curso está organizado e aproveite o conteúdo ao máximo.
Introdução
Pré-requisitos
Sistemas e conhecimentos necessários para concluir o curso. Sem Docker e sem bagagem em automação.
Introdução
Conhecendo a aplicação em teste
Conheça a aplicação de clientes, sua tabela, sua API JSON, sua árvore de categorias aninhada e seu endpoint instável de propósito.
Aula
Aula 1Fork, clone e rode o mesmo teste nos dois runners
Faça o fork do projeto, instale, suba a aplicação e veja um mesmo helper sendo executado pelo Cypress e pelo Playwright.
Fundamentos de JavaScript
Aula
Aula 2Variáveis e declarações
var, let e const, escopo e hoisting, e por que const não significa imutável em uma fixture compartilhada.
Aula
Aula 3Valores, tipos e truthiness
Primitivos versus referências, == versus ===, null versus undefined, e por que tudo que se lê do DOM é uma string.
Aula
Aula 4Funções, escopo e closures
Declarações versus arrow functions, valores padrão, rest e spread, funções de ordem superior e funções fábrica, closures, e o this do Mocha que as arrow functions jogam fora.
Aula
Aula 5Arrays sem laços
map, filter, find, some, every, reduce e flatMap aplicados a uma única tarefa: transformar as linhas renderizadas em dados que você pode interrogar.
Aula
Aula 6Objetos, imutabilidade e acesso seguro
Desestruturação, spread, optional chaining, nullish coalescing e a fixture compartilhada que vaza estado entre testes.
JavaScript assíncrono
Aula
Aula 7Promises, async/await e o event loop
De callbacks a promises e a async/await, e por que o Playwright dá await em tudo enquanto o Cypress não dá await em nada.
Aula
Aula 8Erros, timeouts e novas tentativas
try/catch, erros personalizados, guard clauses e como escrever um retry limitado com backoff exponencial contra um endpoint instável.
Estruturas de dados e complexidade
Aula
Aula 9Big O sem matemática
Conte o trabalho em vez de medi-lo e responda à única pergunta que importa numa suíte de testes: quão grande o n fica?
Aula
Aula 10Maps e Sets versus arrays
Map, Set e chaves de objeto, o includes() quadrático dentro de um laço, e como achar a duplicata escondida atrás de duas grafias.
Aula
Aula 11Strings, parsing e expressões regulares
trim, split, replace, template literals e uma expressão regular que você ainda vai conseguir ler no mês que vem.
Algoritmos no seu código de teste
Aula
Aula 12Recursão e dados aninhados
Caso base, caso recursivo e quando um laço é mais claro, aplicados à árvore de categorias aninhada que a API devolve.
Aula
Aula 13Ordenação e comparação
Funções comparadoras, a surpresa do sort() padrão, localeCompare, estabilidade e como provar que uma coluna ordenada está mesmo ordenada.
Aula
Aula 14Comparando dois conjuntos de dados
Reconcilie o que a interface mostra com o que a API devolveu e relate a diferença nomeando a linha problemática.
Aula
Aula 15Gerando massa de testes
Aleatoriedade com semente para falhas reproduzíveis, valores únicos que sobrevivem a uma nova execução e combinações sem explosão combinatória.
Bônus e conclusão
Bônus
Bônus: questões de código em entrevistas de QA
Os exercícios que candidatos de QA realmente recebem, como raciocinar em voz alta e o que quem entrevista está de fato avaliando.
Conclusão
Parabéns!
Você concluiu o curso Algoritmos e Programação para QAs!