Logo do curso
Curso

Qualidade de Software:

escrevendo testes de maneira eficiente

Quero estudar na alura

10h

Para conclusão

396

Pessoas nesse curso

9.2

Avaliação média

Certificado

De participação

Introdução_

O que você aprenderá_

  • Aprenda a identificar os melhores critérios de cobertura para cada tipo de sistema.
  • Descubra como transformar requisitos em casos de teste eficazes e automatizáveis.
  • Compreenda como equilibrar diferentes tipos de testes dentro da pirâmide ideal para seu projeto.
  • Entenda como criar testes mais legíveis, coesos e confiáveis para manter a qualidade do seu código.
  • Veja como aplicar TDD na prática e avaliar quando essa abordagem faz sentido.
  • Explore estratégias para implementar uma cultura de testes em grandes equipes e organizações.
  • Aprenda a lidar com os desafios de testar sistemas legados de forma incremental e segura

Público alvo_

Pessoas que atuam em desenvolvimento de software, engenharia de qualidade, testes de software e qualquer profissional da área de tecnologia que deseja aprimorar suas habilidades em testes de software. É especialmente útil para quem busca entender melhor as práticas de teste, desde a identificação de bugs até a automação de testes e a aplicação de critérios de cobertura de código.

Maurício Aniche

linkedin

Maurício é atualmente Staff Engineer na área de Core Services da Uber. Antes disso, Maurício liderava o time de Testing Enablement na Adyen. Maurício possui mestrado e doutorado em Ciência da Computação e atuou como professor e pesquisador em engenharia de software na Universidade Tecnológica de Delft, na Holanda. Sua pesquisa sempre focou em qualidade e testes de software. Maurício é autor do livro Effective Software Testing, publicado pela Manning, e usado por diversas universidades ao redor do planeta.

Curso atualizado em 05/06/2025

Ementa

  1. Princípios do teste de software

    • Qual foi o bug mais grave que você fez parte?
    • Escrevendo testes ao acaso
    • Para saber mais: Como devs criam casos de testes?
    • Abordagem sistemática vs. informal
    • Escrever testes != Testar
    • Princípios de Teste de Software
    • Testar exaustivamente?
    • Você conseguiria testar todos os caminhos?
    • Variabilidade de testes
    • Diversidade ou repetição?
    • Distribuição de bugs no sistema
    • Onde há mais bugs?
    • Contexto é importante
    • Particularidades de cada software
    • Perfeição é impossível
    • Equilibrando testes na Playcatch
    • Verificação ≠ validação
  2. Testes baseados em especificação

    • Requisitos como fonte
    • Testes de domínio
    • Otimizando a busca de projetos
    • Passo 1: entenda o requisito, suas entradas e saídas
    • Passo 2: identifique as partições
    • Passo 3: crie casos de teste
    • Passo 4: analise as fronteiras
    • Praticando: testes de fronteira
    • Passo 5: use sua criatividade
    • Passo 6: automatize!
    • Mão na Massa: testes de fronteira
    • Desafio: automatizando testes
    • Desafio: testando a regra de acesso à sala
    • Desafio: testando o programa mycp
    • Desafio: testando o sistema de leilão
  3. Dicas de testes de especificação

    • Testes: um processo iterativo
    • Quão longe devemos ir?
    • Partição ou Fronteira?
    • Indo além das fronteiras
    • Garantindo a eficácia dos testes no app Fokus
    • Escolhendo entradas similares
    • Como você escolhe valores de entrada?
    • Combinando entradas de forma pragmática
    • Entradas simples
    • Entradas que fazem sentido
    • Testando playlists realistas na Playcatch
    • Valores com sentido vs. aleatórios
    • Valores de parâmetros secundários
    • Valores nulos e excepcionais
    • Casos excepcionais?
    • Quando aplicar a técnica?
    • Experiência e criatividade
    • Será que a IA consegue nos ajudar? 
  4. Testes estruturais para melhorar a suíte de teste

    • O que são testes estruturais?
    • Critérios de cobertura de código
    • Cobertura de linhas
    • Cobertura de branches
    • Cobertura de condição + branches
    • Condições complexas e MC/DC
    • Cobertura de caminho
    • Desafios de Path Coverage na Listin
    • Mão na Massa: medindo cobertura de código
    • Lidando com loops
    • Repensando testes para somar_strings
    • Qual critério é o mais forte?
    • Cobertura de código na prática
    • Otimizando a cobertura de testes para o Playcatch
    • Para saber mais: cobertura de código
    • Desafio: testes estruturais
  5. Usando cobertura de código de maneira correta

    • Cobertura de código como métrica
    • Avaliando a eficácia dos testes na Meu Pequeno Grimório
    • O que você acha de cobertura de código?
    • 100% de cobertura de código?
    • Existe alguma meta de cobertura definida na empresa?
    • Escolhendo critérios de cobertura
    • Qual é o critério de cobertura ideal?
    • Quando usar MC/DC
    • Usar testes com MC/DC ou não?
    • Otimizando testes para a Jornada Viagens
    • Testes de mutação
    • Você conhecia testes de mutação?
  6. Design by Contracts

    • Projeto da aula
    • Contratos e qualidade de software
    • Pré-condições
    • Pós-condições
    • Integridade do carrinho de compras no UseDev
    • Invariantes
    • Singularidade dos projetos na CodeConnect
    • Contratos implícitos ou explícitos?
    • Praticando Design by Contracts
  7. Contratos: dicas do mundo real

    • Condições fortes ou fracas?
    • Forte ou fraca?
    • Pós-condições na Clickbonus
    • Contratos e o princípio de Liskov
    • Aplicação do princípio de Liskov
    • Validação ou pré-condição?
    • Asserções ou exceções?
    • Lançar exceção ou retornar erro?
    • Quando não usar DbC?
    • Testar pré/pós-condições e invariantes?
    • Para saber mais: testes baseados em propriedades
  8. Tipos e pirâmides de testes

    • Níveis de testes
    • Pirâmide de testes
    • Pirâmide de testes na Indexa
    • Troféu de testes
    • Pirâmide vs. troféu
    • Rapidez e estabilidade
    • Otimizando testes para a Meteora
    • Sua própria pirâmide de testes
    • Como está seu ecossistema de testes?
    • O que aprendemos?
  9. Usando dublês e mocks

    • Por que simular um objeto?
    • Sobre Mocks
    • Dummy, Fake, Stub e Mock
    • Usando framework de mocks
    • Para saber mais: Mocks
    • Você usa fakes nos testes?
    • Quando mockar?
    • Estratégias de teste para a Gatito Petshop
    • Para saber mais: Mocks e acoplamento
    • Qual o seu
  10. Desenhando sistemas testáveis

    • O que é um sistema testável?
    • Garantindo a testabilidade
    • Separando infraestrutura do código de domínio
    • Separar para testar?
    • Controlabilidade
    • Para saber mais: injeção de dependência
    • Valores como entrada da função
    • Wrappers
    • Observabilidade
    • O seu sistema é observável?
  11. Test-Driven Development

    • O que é TDD? Quais as vantagens?
    • Para saber mais: Test Driven Development
    • Adotar TDD ou não?
    • Baby Steps na Screen Match
    • TDD 100% do tempo?
    • Você pratica TDD? Por quê?
    • Para saber mais: escolas de TDD
    • Para saber mais: estudos sobre TDD
    • TDD e testes: qual a relação?
  12. Qualidade de código de teste

    • Código de teste é código!
    • Como você cuida do código de testes?
    • Testes devem ser rápidos
    • Como está a performance dos seus testes?
    • Coesos, independentes e isolados
    • Garantindo testes coesos no Buscante
    • Sempre previsíveis (não flaky)
    • Para saber mais: estudos sobre flaky tests
    • Seu projeto atual sofre com flaky tests?
    • Devem ter uma razão para existir
    • Avaliando testes na Zoop
    • Asserções fortes e claras
    • Asserções não devem ser sensíveis
    • Você escreve asserções fortes ou fracas?
    • Quebrar somente se o comportamento mudar
    • Eficiência dos testes na Hermex Log
    • Fáceis de ler, escrever e evoluir
    • Para saber mais: Test Data Builder
    • Praticando: testes com Test Data Builders
    • Evitar muito código duplicado
    • Como está a qualidade do seu código de testes?
  13. Testes em grandes organizações

    • Desafios de grandes organizações
    • Documentando decisões
    • A estratégia está clara?
    • Experiência de testes
    • Como é a experiência de testar na sua empresa?
    • O menor escopo possível
    • Para saber mais: Dividir para conquistar
    • Estratégias de teste para a WaveCast
    • Testes de grande escopo?
    • Comunidades de testes
    • Suporte da liderança
    • Qual é a visão da liderança sobre testes?
    • Métricas para guiar a transformação
    • Categorizando incidentes
    • Quais métricas de qualidade você acompanha?
    • Integrando Q&As no processo
    • Faça como eu fiz: Estratégia de testes
  14. Testando sistemas legados

    • Desafios de um sistema legado
    • Sistema legado e boas práticas de teste
    • Teste primeiro, refatore depois
    • Para saber mais: Métodos estáticos e testabilidade
    • Entendendo a dor real
    • Simulando chamadas de rede no Adopet
    • Definindo um plano
    • Dores do sistema legado
    • Pare o sangramento!
    • Testando novas funcionalidades do CodeChella
    • Aponte
    • Medindo o progresso
    • Qual o primeiro passo?
    • Faça como eu fiz: Testando legado
  15. Além dos testes automatizados

    • Testes automatizados são só o começo
    • Ferramentas de análise estática
    • Análise estática no Calmaria Spa
    • Para saber mais: Análise estática
    • Prática de monitoramento
    • Para saber mais: Monitoramento
    • Práticas e ferramentas de monitoramento
    • Feature flags e deployment parcial
    • Feature flags na estratégia de testes
    • Feature flags no Clickbonus
    • Gerenciamento de incidentes
    • Para saber mais: Rollback em deploy
    • Você gerencia incidentes?
    • Testes de resiliência e caos
    • Seu time faz testes de resiliência?
    • Faça como eu fiz: além dos testes

Descubra se esse curso é pra você! Leia as primeiras aulas

Comece essa formação agora mesmo e capacite-se para seu próximo projeto!

Conheça os planos
Escola

Programação

Mergulhe no universo back-end. Programe nas principais plataformas e linguagens, como Python Node.JS, PHP, Java e .NET. Crie sistemas web e desenhe a arquitetura de soluções inovadoras, com código e boas práticas.

Conheça a escola

Pessoas estudando esse curso nesse mês:

Estude com elas

e mais 397 pessoas

Faça parte da nossa comunidade no discord!

Troque conhecimentos com a comunidade da Alura

Aprenda Testes e Quality Assurance com esse e outros cursos, comece agora!

  • Plus

    Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.

    R$109/mês

    1 ano de Alura

    Valor total R$1.308 em até 12x

    Matricule-se

    Assine o PLUS e garanta:

    • Acesso a TODOS os cursos por 1 ano

      Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

    • Certificado

      A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.

    • Mentorias com especialistas

      No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.

    • Comunidade exclusiva

      Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.

    • Acesso ao conteúdo das Imersões

      Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.

    • App Android e iOS para estudar onde quiser

      Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.

  • O mais escolhido

    Pro

    Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.

    R$149/mês

    1 ano de Alura

    Valor total R$1.788 em até 12x

    Matricule-se

    Todos os benefícios do PLUS e mais vantagens exclusivas:

    • Luri , a inteligência artificial da Alura

      Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.

    • Alura Língua - Inglês e Espanhol

      Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.

  • Ultra

    Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.

    R$209/mês

    1 ano de Alura

    Valor total R$2.508 em até 12x

    Matricule-se

    Todos os benefícios do PRO e mais vantagens exclusivas:

    • Luri , com mensagens ILIMITADAS

      Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.

    • Luri Vision , a IA que enxerga suas dúvidas

      Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.

    • 6 Ebooks da Casa do Código

      Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.

Conheça os Planos para Empresas