
Teste de Software


SCRUM — Metodologia Ágil de Gestão de Projetos
Scrum é um framework ágil de gestão de projetos, amplamente usado no desenvolvimento de software e em produtos que exigem adaptação rápida e entrega contínua de valor. Ele organiza o trabalho em ciclos curtos chamados Sprints (geralmente 1–4 semanas) e promove colaboração, transparência e melhoria contínua.
Componentes principais:
✔️ Papéis: Product Owner, Scrum Master, Development Team – cada um com responsabilidades claras.
✔️ Artefatos: Product Backlog, Sprint Backlog, Increment.
✔️ Eventos (cerimônias): Sprint Planning, Daily Scrum, Sprint Review e Sprint Retrospective.
👉 Para referência oficial: The 2020 Scrum Guide — artigo com definição completa e atualizada do Scrum.
🔗 Leitura recomendada online:
-
Agile Scrum Framework: Overview — jile.io — conceitos, papéis e artefatos.
-
What is Scrum? | Atlassian — guia com exemplos e como ele funciona no dia a dia do time.
TDD — Test-Driven Development (Desenvolvimento Guiado por Testes)
Definição:
TDD é uma prática de desenvolvimento de software em que testes automatizados são escritos antes do código de produção. A ideia central é: escrever um teste que falha, escrever o mínimo de código para fazê-lo passar, e depois fazer refatoração para melhorar o design.
Ciclo clássico do TDD:
-
Red (vermelho) – escrever um teste que ainda vai falhar.
-
Green (verde) – escrever código suficiente para passar no teste.
-
Refactor (refatorar) – melhorar o código mantendo os testes passando.
Benefícios:
✔️ Feedback rápido
✔️ Código mais testável e menos bugs
✔️ Melhor design orientado à funcionalidade
🔗 Referências úteis:
-
Wikipedia – Test-driven development (visão geral, ciclo e história).
-
HostGator Blog – TDD explicado com exemplos (introdução prática).
BDD — Behaviour-Driven Development (Desenvolvimento Guiado pelo Comportamento)
BDD é uma evolução do TDD focada no comportamento esperado do software do ponto de vista do usuário/negócio. Em vez de pensar em testes técnicos, a equipe escreve cenários de comportamento que descrevem como o sistema deve se comportar em situações reais.
🔹 Principais características
✔️ Usa linguagem natural estruturada (“Given/When/Then”) para que todos — devs, testers e stakeholders — entendam os requisitos.
✔️ Foco em exemplos concretos que se tornam testes automatizados.
✔️ Integração direta com user stories e critérios de aceitação.
💡 Ligação com Scrum e Agile:
BDD melhora a comunicação no time e ajuda a transformar requisitos em testes automatizados, alinhando o desenvolvimento ao valor de negócio do produto.
🔗 Referências:
-
Wikipedia – Behaviour-driven development (conceito e práticas).
-
CODE Magazine – BDD e Agile (liga BDD a TDD e práticas de Agile).
DDD — Domain-Driven Design (Design Guiado Pelo Domínio)
DDD é uma abordagem de design de software voltada para refletir a lógica e regras reais do negócio (domínio) dentro do código. Ele incentiva a criação de um modelo conceitual compartilhado entre desenvolvedores e especialistas do domínio, usando a mesma linguagem (“ubiquitous language”) em toda a organização.
Conceitos fundamentais
✔️ Ubiquitous Language: linguagem comum entre devs, testers e pessoas do negócio para evitar ambiguidades.
✔️ Bounded Context: delimitação clara onde um modelo de domínio é válido.
✔️ Entities, Value Objects, Aggregates: padrões que ajudam a estruturar o modelo.
Ciclo clássico:
🔴 Red – teste falha
🟢 Green – código mínimo para passar
🔵 Refactor – melhoria do código
📌 Objetivo: projeto de software que expressa as regras de negócio diretamente na estrutura do código, facilitando manutenção, evolução e alinhamento com necessidades reais.
🔗 Referências:
-
Wikipedia – Domain-driven design (definição ampla).
-
Devopedia – conceitos de bounded context e ubiquitous language.
BDD com Gherkin (integra com Cucumber/Cypress)
Um cenário BDD pode ser escrito assim:
Feature: Login de usuário Scenario: login bem-sucedido Given um usuário válido When ele submete suas credenciais Then ele deve ver a página inicial do sistema
Esse tipo de especificação — que é compreensível por todos — é a base dos testes BDD com ferramentas como Cucumber, SpecFlow, Behat, etc.
Como tudo se conecta no desenvolvimento ágil orientado à qualidade
SCRUM organiza o trabalho
DDD define o que construir
BDD descreve o comportamento esperado
TDD garante qualidade técnica desde o início
📌 Resultado: Software alinhado ao negócio, testável, sustentável e entregue continuamente.
SCRUM
↓ organiza o trabalho
DDD
↓ define o domínio
BDD
↓ descreve comportamentos
TDD
↓ garante qualidade técnica
🎯 Qualidade deixa de ser etapa final e passa a ser estratégia.
⭐ PAPEL DO QA NESSE ECOSSISTEMA
✔️ Facilita comunicação entre negócio e tecnologia
✔️ Transforma requisitos em critérios testáveis
✔️ Atua desde o refinamento até a entrega
✔️ Garante valor, não só ausência de bugs
🔗 Scrum Guide (oficial) — o guia completo e atualizado do framework.
🔗 Livro “Test Driven Development by Example” (Kent Beck) — referência clássica para TDD.
🔗 Livro “Domain-Driven Design – Tackling Complexity in the Heart of Software” (Eric Evans) — obra fundamental de DDD.

