Prévia do material em texto
qazando
2025
2
qazando.com.br
3
Introdução
Page 06
Page 11
Page 15
Page 20
Page 31
Page 38
Page 45
Page 49
Page 54
Page 60
O QUE SÃO TESTES DE SOFTWARE?
PAPEL E IMPORTÂNCIA DO QA
GARANTIA (QA) E CONTROLE DE QUALIDADE (QC)
CICLO DE VIDA DE TESTES: METODOLOGIAS ÁGEIS E TRADICIONAIS
TESTES DE CAIXA-PRETA E CAIXA-BRANCA
TESTES FUNCIONAIS E NÃO FUNCIONAIS
TESTES DE REGRESSÃO
TESTES DE UNIDADE
TESTES DE INTEGRAÇÃO
TESTES DE SISTEMA
Page 66
Page 71
Page 75
Page 78
TESTES DE ACEITAÇÃO
TESTES DE PERFORMANCE
TESTES DE USABILIDADE
TESTES DE SEGURANÇA
qazando.com.br
4
Page 81
Page 85
Page 88
Page 91
Page 95
Page 99
Page 103
PIRÂMIDE DE TESTES
TÉCNICAS: PARTIÇÃO DE EQUIVALÊNCIA
TÉCNICAS: ANÁLISE DE VALOR LIMITE
TÉCNICAS: TESTES DE CASO DE USO
TÉCNICAS: TABELA DE DECISÃO
TÉCNICAS: TESTES DE MUTAÇÃO
TESTES EXPLORATÓRIOS
PLAYWRIGHT WEB
CYPRESS WEB
ROBOT FRAMEWORK (WEB)
CYPRESS PARA API
PLAYWRIGHT PARA API
Page 107
Page 112
Page 117
Page 121
Page 125
qazando.com.br
Page 128
Page 131
Page 133
Page 134
Page 140
Bônus
Behaviour Driven Development.
BDD
SOBRE O GHERKIN
SOBRE O CUCUMBER
API
Git Para Testers
5
QAZANDO
O QUE SÃO
TESTES DE
SOFTWARE?
6
— TESTES DE SOFTWARE
“Processo sistemático para
avaliar um programa ou sistema
a fim de identificar e corrigir
falhas, erros ou defeitos.”
QAZANDO
7
ERRO, FALHA E DEFEITO
Um erro é um termo geral que
descreve qualquer desvio do
comportamento esperado de um
programa.
Pode ser causado por falhas
humanas durante o processo de
desenvolvimento, como escrever
código incorreto, ou por falhas de
hardware.
Erros podem ser sintáticos (por
exemplo, um erro de digitação no
código) ou semânticos (quando a
lógica do programa está
incorreta).
ERRO
Um defeito, também conhecido
como bug, é uma discrepância
entre o comportamento
observado e o comportamento
desejado do software.
É o resultado de um erro no
código que faz com que o
programa não funcione conforme
o esperado em determinadas
condições.
Defeitos são identificados durante
os testes e precisam ser corrigidos
pelos desenvolvedores.
DEFEITO
Uma falha ocorre quando o software não consegue realizar uma ou mais funções
conforme o esperado pelo usuário.
É o resultado visível de um defeito. Por exemplo, se um botão de um aplicativo não
responder quando clicado, isso é uma falha.
As falhas são observadas pelo usuário final ou pela equipe de testes durante a execução
do software.
FALHA
8
Garantir que o software funcione conforme o
esperado.
Atendendo aos requisitos e especificações definidos
durante o desenvolvimento.
OBJETIVO
ÁREAS
Verificação de funcionalidades específicas
Avaliação de desempenho
Segurança
Usabilidade
Entre outras…
Podem ser realizados em diferentes fases do ciclo de
vida do desenvolvimento de software, desde a fase de
codificação até a fase de manutenção e atualizações.
FASES
9
IMPORTÂNCIA
Identificação de
Erros e Defeitos
Permitem a detecção de
problemas no código, garantindo
que o software funcione
corretamente.
01
Garantia de
Qualidade
Asseguram que o software
atenda aos padrões de
qualidade estabelecidos pela
equipe de desenvolvimento.
02
Economia de
Recursos
Corrigir erros durante a fase de
desenvolvimento é mais
econômico do que corrigi-los
após o lançamento do
software.
03
Melhoria da
Confiabilidade
Minimizam a probabilidade de
falhas ou quebras em situações
reais de uso, tornando o
software mais confiável.
04
05
Garantia de Funcionalidade
Verificam se o software realiza as tarefas e operações conforme especificado.
Verificação de
Requisitos Não-
Funcionais
Além dos requisitos funcionais,
testes também avaliam aspectos
como desempenho, segurança e
usabilidade.
06
Facilitação da
Manutenção
Um conjunto bem
estruturado de testes facilita
a identificação rápida de
problemas após
modificações ou atualizações
no software.
07
Documentação
Funcional do
Software
Os casos de teste e os
resultados dos testes servem
como documentação funcional
do software, facilitando a
compreensão e manutenção
futura.
08
Conformidade
com Padrões e
Regulamentos
Em muitos setores, como
saúde e finanças, os testes são
obrigatórios para garantir a
conformidade com
regulamentações e padrões
específicos.
09
10
QAZANDO
PAPEL E
IMPORTÂNCIA
DO QA
11
Garantia de Qualidade
(em inglês, "Quality Assurance")
O QUE É QA ???
O QA é uma função crucial que se concentra em garantir a
qualidade e a conformidade do software com os padrões e
requisitos estabelecidos.
A principal responsabilidade do QA é assegurar que o produto de
software atenda às expectativas de qualidade e funcionalidade
antes de ser disponibilizado para os usuários finais.
O QUE É QUALIDADE?
UM FUSCA TEM QUALIDADE?
UMA FERRARI TEM QUALIDADE?
12
QUALIDADE É RELATIVA!
Pode variar dependendo das expectativas e requisitos dos
diferentes stakeholders envolvidos, como clientes, reguladores,
acionistas e funcionários.
A busca pela qualidade envolve a compreensão das
necessidades dos clientes, a definição de padrões adequados e a
implementação de processos e práticas para alcançar esses
padrões.
QUALIDADE É RELATIVA!
Pode variar dependendo das expectativas e requisitos dos
diferentes stakeholders envolvidos, como clientes, reguladores,
acionistas e funcionários.
A busca pela qualidade envolve a compreensão das necessidades
dos clientes, a definição de padrões adequados e a
implementação de processos e práticas para alcançar esses
padrões.
13
PRINCIPAIS ATIVIDADES DO QA
Definição de
Padrões e
Processos
Estabelecer e
documentar os
padrões e processos
que devem ser
seguidos durante o
ciclo de vida do
desenvolvimento de
software.
01
Revisões e
Auditorias
Realizar revisões de
código-fonte,
documentação e
processos para
garantir que eles
estejam em
conformidade com
os padrões
estabelecidos.
02
Definição de
Estratégias
de Teste
Planejar e definir
estratégias de teste
para garantir que
todas as
funcionalidades do
software sejam
avaliadas de forma
eficaz.
03
Gestão de
Defeitos
Rastrear, monitorar e
gerenciar os defeitos
encontrados durante
os testes, garantindo
que sejam corrigidos
e documentados
adequadamente.
04
Avaliação de
Requisitos
Verificar se os
requisitos do cliente
estão claramente
definidos e
compreendidos pela
equipe de
desenvolvimento.
05
06 07 08
Auditorias de
Processo
Realizar auditorias
regulares para
garantir que os
processos definidos
estejam sendo
seguidos
corretamente.
Gestão da
Documentaçã
o de Testes
Revisar e validar os
casos de teste,
estratégias de teste
e resultados dos
testes para garantir
que a cobertura de
teste seja
adequada.
Monitoramento
da Qualidade
do Projeto
Monitorar
continuamente o
progresso do projeto
para identificar
possíveis problemas
ou desvios dos
padrões
estabelecidos.
Participação em
Planejamento e
Revisões de
Requisitos
Contribuir para o
planejamento do
projeto e a revisão
dos requisitos para
garantir que sejam
testáveis e
compreendidos por
toda a equipe.
09
IMPORTÂNCIA
O papel do QA é fundamental para garantir a qualidade e
a confiabilidade do software, proporcionando uma base
sólida para o sucesso do projeto.
É importante que o QA trabalhe em estreita colaboração com os
desenvolvedores e outros membros da equipe para garantir que os
padrões de qualidade sejam mantidos em todas as fases do ciclo de
vida do software.
14
QAZANDO
GARANTIA (QA)
E CONTROLE DE
QUALIDADE (QC)
15
Ela é uma abordagem proativa que se concentra em
estabelecer padrões e processos para garantir a qualidade do
produto ou serviço desde o início do desenvolvimento até a
entrega final.
A Garantia de Qualidade foca na prevenção de
defeitos antes que ocorram.
GARANTIA DA QUALIDADE
Atividade de gestão e focada no futuro.
Envolve o planejamento e a implementação de sistemas e
processos para garantir que a qualidade seja mantida em
todas as etapas do ciclo de vida do produto ou serviço.
Fornece confiança aos clientes que os requisitos de
qualidade serão atendidos.
Definição de padrões de qualidade, a implementaçãoo futuro da qualidade de
software.
À nossa equipe, que trabalha todos
os dias para entregar os melhores
conteúdos, experiências e resultados
com excelência.
E a você, que está com esta apostila
nas mãos, investindo no seu
desenvolvimento e acreditando que
o conhecimento é o caminho para
crescer na carreira e alcançar novos
patamares.
Seguimos juntos construindo o
futuro do QA!
O futuro da qualidade de
software se constrói com
conhecimento.
Qazando
Conheça nossas trilhas e formações.
🌐 qazando.com.br
© 2025 – Todos os direitos reservadosde
sistemas de gestão da qualidade, auditorias internas,
rastreabilidade, gestão de fornecedores, entre outras…
É uma responsabilidade compartilhada por toda
organização e envolve de todos os funcionários.
GARANTIA DA QUALIDADE
16
QUALIDADE DO PROCESSO
"Refere-se à eficácia, eficiência e consistência dos
processos utilizados para produzir um produto ou
fornecer um serviço. Um processo de alta
qualidade é aquele que é bem planejado,
controlado e capaz de produzir resultados
consistentes e livres de erros."
"Em resumo, a garantia da qualidade tem
como objetivo fornecer confiança aos clientes
de que um produto ou serviço atenderá aos
requisitos de qualidade estabelecidos e é
realizada por meio de uma abordagem
planejada e sistemática que envolve diversas
atividades ao longo do ciclo de vida do
produto ou serviço."
GARANTIA DA QUALIDADE
EXEMPLO
Suponha que uma empresa de consultoria esteja comprometida com a
garantia de qualidade de seus serviços para fornecer resultados consistentes e
satisfatórios aos clientes.
17
Algumas atividades de garantia de qualidade
que podem ser implementadas:
GARANTIA DA QUALIDADE
GARANTIA DA QUALIDADE
A empresa adota um sistema
de gestão da qualidade,
como a ISO 9001, para
padronizar e documentar os
processos e procedimentos
em toda a organização. Isso
inclui a definição de
responsabilidades, fluxos de
trabalho, monitoramento de
desempenho e gestão de
riscos.
A empresa estabelece
padrões claros e específicos
que definem a qualidade
esperada em seus serviços de
consultoria. Esses padrões
podem incluir critérios de
competência dos
consultores, prazos de
entrega, formatos de
relatórios e processos de
comunicação com o cliente.
01
Desenvolvimento
de padrões de
qualidade
02
Implementação de
sistemas de gestão
da qualidade
São realizadas auditorias
regulares nos processos e
projetos de consultoria para
garantir a conformidade com
os padrões estabelecidos.
Essas auditorias identificam
áreas de melhoria,
identificam possíveis não
conformidades e verificam se
as práticas estão alinhadas
com as políticas de qualidade
da empresa.
03
Auditorias internas
A empresa realiza revisões
periódicas dos processos de
consultoria para identificar
oportunidades de melhoria.
Isso pode envolver a análise
de métricas de desempenho,
revisão de projetos concluídos
e a implementação de ações
corretivas e preventivas para
aprimorar a qualidade dos
serviços.
04
Revisão de
processos
Essas atividades de garantia de qualidade ajudam a
empresa de consultoria a manter um alto padrão de
qualidade em seus serviços, assegurando que eles
atendam consistentemente às necessidades e
expectativas dos clientes, além de promover a
melhoria contínua dentro da organização.
EXEMPLO
Suponha que uma montadora de automóveis tenha um controle de qualidade rigoroso
em suas linhas de produção. Durante o processo de fabricação, são realizadas várias
etapas de verificação para garantir que cada veículo atenda aos requisitos de qualidade
estabelecidos. Aqui estão algumas etapas de controle de qualidade que podem ser
aplicadas:
18
Algumas etapas de controle de qualidade
que podem ser aplicadas:
CONTROLE DE QUALIDADE
O controle de qualidade está
mais relacionado às atividades
operacionais de identificação e
correção de problemas de
qualidade durante o processo de
produção
É uma abordagem de gestão
que visa assegurar a qualidade
em todas as etapas do ciclo de
vida do produto ou serviço,
garantindo conformidade
consistente com os requisitos
estabelecidos.
Garantia da
Qualidade
Controle de
QualidadeX
Ambas são importantes para alcançar e manter altos
padrões de qualidade.
Durante a fabricação, são
realizadas inspeções
regulares para verificar se
os processos estão sendo
seguidos corretamente.
Por exemplo, a medição
das dimensões críticas
das peças, verificação do
aperto adequado dos
parafusos e aferição de
equipamentos de
montagem.
Antes do início da
produção, os materiais,
como metal, plástico,
vidro e componentes
eletrônicos, são
inspecionados para
garantir que estejam
dentro das especificações
exigidas. Isso pode incluir
testes de resistência,
verificação de medidas e
análise de qualidade dos
fornecedores.
01
Inspeção de
materiais
02
Inspeção de
processos
Após a montagem do
veículo, são realizados
testes de desempenho,
como testes de freio,
testes de suspensão,
testes de emissões e
testes de segurança.
Esses testes garantem
que o veículo atenda aos
padrões de segurança e
desempenho
estabelecidos.
03
Testes de
desempenho
Antes da entrega ao
cliente, cada veículo passa
por uma inspeção final
detalhada. Essa inspeção
abrange aspectos como
acabamento externo,
interior, funcionalidades
dos sistemas eletrônicos,
ajuste de peças, pintura e
verificação geral de
qualidade.
04
Inspeção final
19
QAZANDO
CICLO DE VIDA DE
TESTES:
METODOLOGIAS
ÁGEIS E
TRADICIONAIS
20
CICLO DE VIDA DE TESTES
É um processo ou conjunto de fases e atividades
organizadas de forma sequencial ou iterativa, que tem
como objetivo planejar, executar, avaliar e documentar
os testes de um software ao longo do seu
desenvolvimento.
Abrange desde a concepção até a entrega do produto final.
O CVT é uma parte crucial do ciclo de desenvolvimento de software e
é fundamental para garantir a qualidade e confiabilidade do
produto.
Planejamento de
Testes
Nesta fase, são definidos os
objetivos dos testes, o
escopo, os critérios de
aceitação e as estratégias
de teste. Também é onde se
estabelece o ambiente de
teste e os recursos
necessários.
01
Design de Testes
Aqui, são elaborados os
casos de teste, que são
descrições detalhadas de
como o software será
testado. Isso inclui dados de
entrada, passos a serem
seguidos, resultados
esperados, entre outras
informações.
02
Preparação de
Ambiente de Testes
Esta fase envolve a
configuração do ambiente
de teste, que pode incluir
instalação de software,
configuração de servidores,
criação de dados de teste,
entre outros.
03
Execução de
Testes
É a fase onde os testes são
efetivamente realizados.
Os casos de teste são
executados e os resultados
são registrados.
04
Avaliação de
Resultados
Os resultados dos testes são
analisados para determinar
se o software passou ou
falhou nos critérios
estabelecidos. Também
pode incluir a identificação
de defeitos.
05
Relatórios e
Documentação
São gerados relatórios que
documentam os resultados
dos testes, incluindo os
casos de teste executados,
os defeitos encontrados e
outras métricas relevantes.
06
Reteste e Revisão
Se defeitos foram
encontrados, esta fase
envolve a correção dos
problemas e a realização de
retestes para garantir que
os problemas foram
corrigidos corretamente.
07
Encerramento de
Testes
Esta fase marca o final
formal do ciclo de vida de
testes. É aqui que se avalia
se todos os critérios de
aceitação foram atendidos
e se o software está pronto
para ser implantado.
08
21
O Ciclo de Vida de Testes pode ser adaptado para se alinhar com
diferentes metodologias de desenvolvimento, como as tradicionais
(como o modelo em cascata) e as ágeis (como o Scrum).
Ao seguir um Ciclo de Vida de Testes bem definido, as equipes de
desenvolvimento de software podem garantir que o produto final seja de
alta qualidade, atendendo aos requisitos e expectativas dos usuários.
METODOLOGIAS
IMPORTANTE!
“Para esse desenvolvimento do produto, utilizamos de metodologías,
que podem ser as tradicionais, ou ágeis.”
22
METODOLOGIAS TRADICIONAIS
MODELO EM CASCATA
"O modelo em cascata é um dos modelos mais antigos e lineares. Ele
segue uma abordagem sequencial, onde cada fase deve ser
concluída antes de iniciar a próxima."
Fases
Requisitos, Análise,
Projeto, Implementação,
Testes, Manutenção.
Vantagem
Estrutura clara e fácil
de gerenciar.
Desvantagem
Pouca flexibilidade para
mudanças nos
requisitos.
É um método sequencial linear de desenvolvimento de
software.
Nesse modelo, as fases do ciclo de vida do projeto são realizadas de
forma sequencial e cada fase deve ser concluída antes de iniciar a
próxima.
MODELO EM CASCATA
23
MODELO ESPIRAL"O modelo em espiral é iterativo e combina elementos do modelo em cascata
com a capacidade de revisão e avaliação contínuas.
Ele passa por várias iterações, chamadas de espirais, onde cada iteração
abrange as fases de planejamento, avaliação de riscos, engenharia e
avaliação do cliente."
MODELO INCREMENTAL
"Este modelo divide o projeto em incrementos, onde cada incremento
adiciona funcionalidades ao produto."
Cada incremento é desenvolvido e testado separadamente antes de ser
integrado ao produto final.
METODOLOGIAS ÁGEIS
São abordagens flexíveis e colaborativas que priorizam a
entrega contínua e a adaptação às mudanças.
São abordagens que enfatizam a colaboração, a flexibilidade e a entrega
incremental de valor ao cliente.
Elas se baseiam em princípios ágeis que valorizam a adaptação a mudanças, a
comunicação eficaz e a colaboração entre membros da equipe.
24
METODOLOGIAS ÁGEIS
Princípios Fundamentais das Metodologias Ágeis:
Indivíduos e Interações mais
que Processos e Ferramentas
Valoriza a comunicação efetiva e a
colaboração entre membros da equipe
mais do que depender exclusivamente
de processos e ferramentas.
01
Software Funcionando mais
que Documentação
Abrangente
Prioriza a entrega de software funcional
e utilizável sobre documentação
extensiva. Isso não significa que a
documentação seja negligenciada, mas
que o foco está na entrega de valor ao
cliente.
02
Colaboração com o Cliente
mais que Negociação de
Contrato
Envolve o cliente no processo de
desenvolvimento, buscando um
entendimento contínuo das
necessidades e adaptação às
mudanças nos requisitos.
03
Responder a Mudanças mais
que Seguir um Plano
Valoriza a capacidade de se adaptar a
mudanças nos requisitos e prioridades
ao invés de aderir rigidamente a um
plano inicial.
04
25
METODOLOGIAS ÁGEIS
Práticas Comuns em Metodologias Ágeis
Iterações ou Sprints
O trabalho é dividido em incrementos
pequenos, normalmente de 2 a 4
semanas. Cada iteração resulta em uma
versão funcional do software.
01
Reuniões Diárias
Breves encontros diários onde a equipe
compartilha progresso, desafios e
prioridades.
02
Product Backlog
Uma lista priorizada de funcionalidades e
melhorias desejadas, gerenciada pelo
Product Owner.
03
Testes Contínuos e Integração
Contínua
Testes são realizados de forma contínua
ao longo do desenvolvimento, e a
integração do código é feita
regularmente.
04
Retrospectivas
Momentos em que a equipe reflete sobre o trabalho feito na iteração anterior e identificar
melhorias.
05
26
METODOLOGIAS ÁGEIS
Como as Metodologias Ágeis Funcionam
Planejamento
A equipe e o cliente colaboram para
definir o escopo e as prioridades das
funcionalidades a serem
desenvolvidas.
01
Colaboração Constante
A comunicação aberta e constante é
incentivada entre a equipe e o cliente
para garantir que as necessidades do
cliente sejam atendidas.
03
Iterações/Sprints
O trabalho é dividido em iterações
curtas. No final de cada iteração, há
uma entrega funcional do software.
02
Feedback Rápido
O cliente fornece feedback contínuo
sobre as entregas, o que ajuda a
orientar o desenvolvimento futuro.
04
Adaptação a Mudanças
A equipe está preparada para se
adaptar a novos requisitos ou
mudanças nas prioridades à medida
que surgem.
05 São flexíveis e se
adaptam bem a
ambientes onde os
requisitos podem mudar
ou evoluir ao longo do
tempo.
Elas promovem a entrega de valor contínuo,
colaboração e um processo mais adaptável em
comparação com as abordagens tradicionais de
desenvolvimento de software.
27
SCRUM
Funcionamento rápido do SCRUM:
01 02 03 04 05
O Product
Owner prioriza
as
funcionalidades
no Product
Backlog.
No início da
sprint, o Product
Owner e a
equipe realizam
o Planejamento
da Sprint para
definir o que
será entregue.
Durante a sprint,
a equipe realiza a
implementação
das
funcionalidades.
Reuniões
Diárias são
realizadas para
manter todos
atualizados
sobre o
progresso.
Ao final da
sprint, a
equipe
apresenta o
Incremento ao
cliente na
Revisão da
Sprint.
A equipe realiza
uma
Retrospectiva
para identificar
melhorias no
processo.
06
"O Scrum é um dos modelos ágeis mais populares. Ele organiza o
trabalho em sprints (iterações curtas de tempo) e é composto por
papéis, eventos e artefatos."
Product Owner,
Scrum Master,
Time de
Desenvolviment
o.
Planejamento da
Sprint, Reuniões
Diárias, Revisão
da Sprint,
Retrospectiva da
Sprint.
Artefatos
Backlog do
Produto,
Backlog da
Sprint,
Incremento.
Vantagem
Foco na entrega
contínua,
transparência e
colaboração.
EventosPapéis
28
KANBAN
KANBAN
O trabalho é visualizado em um quadro, normalmente dividido em colunas
que representam os estágios do processo. Por exemplo, "A fazer", "Em
progresso" e "Concluído".
Quadro KANBAN
"O Kanban visualiza o fluxo de trabalho em um quadro, onde as tarefas movem-se de
uma coluna para a próxima à medida que são concluídas."
Ele limita o trabalho em progresso (WIP) para evitar sobrecarregar a equipe.
VANTAGEM
Ênfase na visualização do trabalho e na gestão do fluxo.
29
Limites de Trabalho
em Progresso (WIP)
Cada coluna tem um
limite de quantas tarefas
podem estar em
progresso ao mesmo
tempo. Isso evita
sobrecarregar a equipe e
mantém o fluxo de
trabalho equilibrado.
Visualização do Fluxo
de Trabalho
As tarefas movem-se de
uma coluna para a
próxima à medida que são
concluídas. Isso permite
que a equipe acompanhe
o progresso e identifique
possíveis gargalos.
Foco na Eficiência e
Melhoria Contínua
Kanban incentiva a
identificação de melhorias
no processo para tornar o
trabalho mais eficiente.
Isso pode incluir ajustes
nos limites WIP,
aprimoramento de
procedimentos, entre
outros.
Flexibilidade para
Lidar com Mudanças
Kanban é altamente
adaptável e permite que a
equipe lide com
mudanças nos requisitos
ou prioridades de forma
rápida e eficaz.
Ao contrário de outras metodologias ágeis, Kanban não define papéis ou
cerimônias específicas. Ele se concentra principalmente no gerenciamento
visual do trabalho.
30
QAZANDO
TESTES DE
CAIXA-PRETA
E CAIXA-BRANCA
31
— CAIXA-BRANCA
“Os testes de caixa branca
avaliam o software considerando
a estrutura interna do código-
fonte.”
32
Centra-se na lógica
do código, nos
caminhos de
execução e nas
condições internas.
FOCO
PROCESSO
BENEFÍCIOS TIPOS
Os testadores têm
acesso ao código-
fonte e criam
casos de teste
com base na
análise da lógica,
ramificações e
fluxos de controle
do programa.
Pode identificar
falhas de lógica,
loops infinitos, erros
de sintaxe e
caminhos de código
não testados.
Permite um teste
mais detalhado e
abrangente da
funcionalidade.
Testes de
cobertura de
código, testes de
caminho, testes
de decisão, testes
de condição, etc.
33
EXEMPLO
Vamos considerar uma função simples em JavaScript que
verifica se um número é par ou ímpar. Vamos escrever
casos de teste para essa função.
A função verificarParOuImpar recebe um número
como entrada e retorna uma string indicando se o
número é par ou ímpar.
34
“O objetivo é garantir que todos os
caminhos possíveis do código
(como a condição if) sejam
testados para garantir que a
função funcione corretamente em
todos os cenários.”
“Os testes de caixa preta avaliam o
software sem considerar a
estrutura interna do código-fonte
ou a lógica subjacente.”
CAIXA-PRETA
35
O testador não tem conhecimento interno do código. Em
vez disso, utiliza especificações de requisitos e
documentação funcional para criar os casos de teste.
PROCESSO
Centra-se nas entradas e saídas do sistema, ou seja, como o
software responde a diferentes conjuntos de dados de entrada.
FOCO
BENEFÍCIOS
TIPOS
Testes de funcionalidade, testes de usabilidade, testes de
aceitação do usuário, testes de integração, etc.
Abordagem independente da implementação, permitindo que
testadores sem conhecimento de programação realizem os
testes.
Pode identificar falhas de lógica, requisitos ausentes ou
ambíguos.
Vamos imaginar um sistema que só pode ser acessado por pessoas
maiores de 18 anos e o usuário informa a idade antes de acessar..Assim, deveríamos acessar a aplicação e testar no campo de idade:
36
“Ambas as abordagens são importantes e
complementares. A escolha entre caixa preta
e caixa branca depende dos objetivos de
teste, das características do software e das
habilidades da equipe de teste. Muitas vezes,
projetos de teste bem-sucedidos incorporam
ambos os tipos para garantir uma cobertura
completa e eficaz..”
Preencher idade MENOR que 18
Não deve acessar a aplicação
Preencher idade IGUAL que 18
Deve acessar a aplicação
Preencher idade MAIOR que 18
Deve acessar a aplicação
37
QAZANDO
TESTES
FUNCIONAIS
E NÃO FUNCIONAIS
38
— TESTES FUNCIONAIS
“Avalia o comportamento de um sistema ou
aplicativo em relação às especificações
funcionais. Em outras palavras, eles se
concentram em verificar se o software
funciona conforme o esperado em termos
de funcionalidades e recursos.”
39
Avaliação das Funcionalidades
Não Levam em Conta a
Implementação Interna
Entradas e Saídas
Cenários de Uso Reais
Os testes funcionais verificam se o software executa as
funções e operações conforme descrito na documentação de
requisitos e nas especificações do cliente.
Ao contrário dos testes de caixa branca, os testes funcionais
não requerem conhecimento da lógica interna ou do código-
fonte do software. Eles se concentram apenas no
comportamento observável do sistema.
Os testes funcionais envolvem a entrada de dados no sistema
(como cliques de mouse, entradas de teclado ou dados
enviados via interface do usuário) e a avaliação das saídas ou
resultados gerados pelo software.
Os testes funcionais são projetados para simular situações de
uso real, como a interação do usuário com a interface gráfica,
a navegação em menus e a execução de operações. 40
TIPOS
Testes de Aceitação do Usuário: Conduzidos pelos
usuários finais para validar se o software atende aos
requisitos e expectativas de negócio.
Testes de Integração: Avaliam a interação e a
comunicação entre diferentes componentes ou
sistemas.
Testes de Regressão: Garantem que as alterações
recentes no código não afetaram as funcionalidades
existentes.
TESTES FUNCIONAIS
Objetivo
Garantir que o software
atenda aos requisitos
funcionais e forneça a
funcionalidade desejada para
os usuários finais.
Benefícios
Verificação da conformidade com os
requisitos de negócio.
Identificação de falhas ou desvios nas
funcionalidades esperadas.
Validação da usabilidade e da
experiência do usuário.
“Os testes funcionais são essenciais para
garantir que o software cumpra as expectativas
e necessidades dos usuários finais,
contribuindo para a qualidade e confiabilidade
do produto.”
41
TESTES
NÃO FUNCIONAIS
“Avalia aspectos não relacionados diretamente às
funcionalidades do sistema, mas que são igualmente
cruciais para determinar o desempenho, a
usabilidade, a segurança e outros atributos do
software. Eles se concentram em características mais
abrangentes que afetam a qualidade e a experiência
do usuário, mas não estão relacionadas diretamente
às operações específicas que o software realiza.”
Avaliação de
Características Gerais
Os testes não funcionais avaliam características como
desempenho, escalabilidade, usabilidade, segurança e
eficiência do sistema.
Medição de Qualidade
São utilizados para medir e avaliar a qualidade global do
software, além de fornecer feedback sobre o
comportamento do sistema em condições diversas.
42
Podem Ser Difíceis de
Medir Objetivamente
Alguns atributos não funcionais, como usabilidade e
experiência do usuário, podem ser subjetivos e podem
depender das preferências individuais.
TIPOS
Desempenho e Carga: Avaliam como o software se comporta
sob diferentes níveis de carga ou tráfego.
Usabilidade: Avalia a facilidade de uso do software e a
experiência do usuário.
Segurança: Verifica se o software protege os dados e os
sistemas contra ameaças e ataques.
Manutenibilidade: Avalia a facilidade com que o software pode
ser mantido e atualizado.
Confiabilidade e Disponibilidade: Avaliam a estabilidade e a
disponibilidade do software em diferentes cenários.
TESTES NÃO FUNCIONAIS
Objetivo
Garantir que o software
atenda aos requisitos não
funcionais e forneça uma
experiência de usuário de alta
qualidade.
Benefícios
Identificação de problemas
relacionados a desempenho,
segurança e outros aspectos cruciais.
Melhoria da qualidade geral do
software.
43
— TESTES NÃO FUNCIONAIS
“Os testes não funcionais são essenciais para
assegurar que o software não apenas funcione
corretamente, mas também ofereça uma experiência
positiva e segura para os usuários. Eles
complementam os testes funcionais e contribuem
para a entrega de um produto de software de alta
qualidade.”
44
QAZANDO
TESTES DE
REGRESSÃO
45
“Os Testes de Regressão são um tipo de teste de
software que tem o objetivo de garantir que as
alterações feitas no código (como correções de bugs,
adição de novas funcionalidades ou modificações) não
tenham impacto negativo nas funcionalidades
existentes do sistema. Em outras palavras, eles visam
verificar se as atualizações não causaram a quebra de
funcionalidades previamente testadas e funcionando
corretamente.”
— TESTES DE REGRESSÃO
46
TESTES DE REGRESSÃO
TIPOS
Verificação de
Integridade
Certificam-se de
que as
funcionalidades já
existentes
permaneçam
íntegras após
modificações no
software.
Automatização
A automação de
testes de regressão é
comum,
especialmente em
projetos com ciclos
de desenvolvimento
rápidos. Ela permite a
execução rápida e
eficiente dos testes
após cada
atualização.
Abrangência
Os testes de
regressão devem
cobrir uma ampla
gama de
funcionalidades
existentes,
garantindo que
todas as partes do
sistema não
tenham sido
afetadas por
mudanças
recentes.
Execução
Regular
Devem ser
executados de forma
regular durante o
ciclo de
desenvolvimento,
especialmente antes
de liberar uma nova
versão ou
atualização do
software.
Regressão Completa: Execução de todos os testes
funcionais existentes.
Regressão Seletiva: Execução de testes específicos
relacionados às áreas afetadas pelas alterações.
Regressão Progressiva: Adição de novos testes à suíte de
regressão para garantir que novas funcionalidades não
afetem as existentes.
Objetivo
Garantir que as modificações
no código não introduzam
falhas ou quebrem
funcionalidades já existentes.
Benefícios
Identificação precoce de regressões ou
problemas introduzidos por mudanças
recentes.
Manutenção da integridade e
confiabilidade do software.
47
— TESTES DE REGRESSÃO
“Os Testes de Regressão são essenciais para
manter a estabilidade e a qualidade do
software à medida que ele evolui ao longo do
tempo. Eles fornecem uma camada de
segurança ao garantir que as alterações feitas
não causem impacto negativo nas
funcionalidades já existentes.”
48
QAZANDO
QAZANDO
TESTES DE
UNIDADE
49
—TESTES DE UNIDADE
"Unidades individuais de código
são testadas isoladamente para
verificar se funcionam conforme o
esperado."
50
Uma "unidade" refere-se à menor parte de
um programa que pode ser testada de
forma independente.
Geralmente, uma unidade é uma função, método ou
procedimento.
UNIDADE
Isolamento de Funcionalidades
Os testes unitários isolam partes específicas do código
para garantir que elas funcionem corretamente de forma
independente.
OBJETIVOS
Identificação de Defeitos
Eles ajudam a identificar e corrigir problemas de código
no nível mais granular, o que facilita a depuração.
Garantia de Qualidade do Código
Testes unitários asseguram que cada parte do código
atenda aos requisitos e funcione conforme o esperado.
51
Facilitação da Refatoração
Ao ter testes unitários, os desenvolvedores podem fazer
alterações no código com confiança, sabendo que os testes
ajudarão a detectar quaisquer regressões.
OBJETIVOS
EXEMPLO
Código
Testes
52
Documentação do Comportamento
Os testes unitários servem como documentação viva do
comportamento esperado de uma unidade de código.
OBJETIVOS
"Os testes unitários são cruciais para a
construção de software robusto e confiável. Eles
ajudam a garantirque cada parte do código
contribua para o funcionamento correto do
programa como um todo."
—TESTES DE UNIDADE
53
QAZANDO
QAZANDO
TESTES DE
INTEGRAÇÃO
54
—TESTES DE INTEGRAÇÃO
"Diferentes unidades ou módulos
de um sistema são combinados e
testados como um grupo."
55
O objetivo principal é verificar se essas partes
integradas funcionam corretamente em conjunto
e se interagem de maneira adequada.
TESTES DE INTEGRAÇÃO
OBJETIVOS
Verificar a Interoperabilidade
Garantir que diferentes componentes ou módulos do sistema
possam trabalhar juntos sem conflitos ou erros.
Identificar Comportamentos
Inesperados
Descobrir possíveis problemas de integração, como
incompatibilidades de dados ou interfaces.
Avaliar a Comunicação entre
Módulos
Certificar-se de que as informações são transmitidas
corretamente entre os diferentes componentes.
56
Garantir a Consistência do Sistema
Verificar se a integração não causa comportamentos
inesperados ou inconsistências nos dados.
Identificação de Dependências
É crucial entender as dependências entre os módulos para
planejar e executar os testes de integração de forma eficaz.
DESAFIOS
Simulação de Ambientes Reais
Em alguns casos, pode ser difícil simular o ambiente de
produção exatamente como ele será na prática.
Isolamento de Defeitos
Em caso de falha nos testes de integração, pode ser
desafiador determinar a origem do problema.
57
Custos e Complexidade
Testes de integração podem ser mais complexos e
requerer mais recursos em comparação com testes
unitários.
Garantia de Funcionalidade Global
Verificação de que o sistema, como um todo, opera
conforme as especificações.
BENEFÍCIOS
Detecção Precoce de Problemas de
Integração
Identificação de conflitos ou incompatibilidades antes da
fase de produção.
Maior Confiança na Qualidade do
Sistema
Aumento da confiança de que o sistema atende às
expectativas do cliente.
58
Facilita a Manutenção e Evolução
do Sistema
Testes de integração ajudam a evitar regressões ao adicionar
novos recursos ou fazer alterações no código.
"Os Testes de Integração desempenham um
papel crítico na garantia de que todas as
partes de um sistema se integram e
funcionam como esperado. Eles são uma
etapa vital no ciclo de vida do
desenvolvimento de software."
— TESTES DE INTEGRAÇÃO
59
QAZANDO
TESTES DE
SISTEMA
60
—TESTES DE SISTEMA
"Eles visam verificar se o sistema
inteiro, ou seja, o software em sua
totalidade, atende aos requisitos e
especificações definidos
previamente."
61
Os Testes de Sistema são realizados após
os Testes de Integração e antes da
implantação do software em ambiente de
produção.
TESTES DE SISTEMA
QAZANDO
OBJETIVOS
Validação dos Requisitos
Verificar se o software atende a todos os requisitos funcionais e
não funcionais estabelecidos no início do projeto.
Avaliação da Funcionalidade Global
Testar todas as funcionalidades do sistema em conjunto para
garantir que elas interajam corretamente e produzam os
resultados esperados.
Verificação da Usabilidade
Avaliar a interface do usuário, a experiência do usuário e a
facilidade de navegação no sistema.
62
Testes de Desempenho e Carga
Avaliar o desempenho do sistema em condições normais
de operação, bem como em condições de carga máxima.
Testes de Segurança
Verificar se o sistema é seguro contra possíveis ameaças e
vulnerabilidades.
Avaliação de Conformidade
Assegurar que o software esteja em conformidade com
regulamentações e padrões específicos da indústria, se
aplicável.
Testes Funcionais
Testes de Usabilidade
Testes de Desempenho e Carga
Testes de Segurança
Testes de Compatibilidade
Testes de Conformidade
TIPOS
63
Confiança na Qualidade do
Software
Os Testes de Sistema proporcionam uma validação completa
do software, dando confiança de que ele atende aos
requisitos do cliente.
BENEFÍCIOS
Identificação de Problemas Críticos
Eles ajudam a identificar e corrigir problemas significativos
antes da liberação do software para os usuários finais.
Aumento da Satisfação do Cliente
Um software de alta qualidade proporciona uma melhor
experiência ao usuário final, resultando em maior satisfação.
Prevenção de Problemas Futuros
A identificação de problemas durante os Testes de Sistema
evita possíveis dores de cabeça e custos associados a
correções pós-produção. 64
"Testes de Sistema são essenciais para garantir a
qualidade e a confiabilidade do software antes da
sua implantação em ambiente de produção.
Eles abrangem uma ampla gama de aspectos,
desde funcionalidades até desempenho,
usabilidade e segurança."
— TESTES DE SISTEMA
65
TESTES DE
ACEITAÇÃO
66
"Testes de Aceitação são um tipo de
teste de software em que o cliente ou
usuário final valida se o sistema
atende aos critérios de aceitação
previamente definidos."
—TESTES DE ACEITAÇÃO
67
Eles são realizados após os Testes de Sistema e
antes da implantação final do software.
TESTES DE aceitação
Validação pelo Cliente
Permitir que o cliente ou usuário final avalie se o software
atende aos requisitos específicos e às expectativas.
OBJETIVOS
Confirmação da Funcionalidade
Confirmar que todas as funcionalidades e características
solicitadas pelo cliente foram implementadas corretamente.
Garantia de que o Sistema está Pronto para
Produção
Certificar-se de que o sistema está pronto para ser implantado
no ambiente de produção.
68
Preparação para o Lançamento
Verificar se o software está pronto para ser disponibilizado
para o público ou para os usuários finais.
BENEFÍCIOS
Validação pelo Cliente
Garante que o cliente tenha a oportunidade de validar o
software antes da implementação final.
Confiança na Qualidade do
Software
Proporciona confiança de que o software atende aos
requisitos e expectativas do cliente.
Redução de Riscos de
Implantação
Identifica problemas antes da liberação do software para os
usuários finais, minimizando riscos de insatisfação.
69
Preparação Adequada para a
Produção
Assegura que o software está pronto para ser implantado no
ambiente de produção.
QAZANDOMelhoria Contínua
Permite a coleta de feedback valioso do cliente para
melhorias futuras.
"Os Testes de Aceitação são cruciais para garantir
que o software atenda às necessidades e
expectativas do cliente antes de ser lançado para
uso geral. Eles são uma parte vital do processo de
garantia de qualidade do software."
— TESTES DE ACEITAÇÃO
70
TESTES DE
PERFORMANCE
71
“Testes de Performance avaliam o desempenho e
a eficiência de um software sob diferentes
condições de uso, garantindo que ele atenda aos
requisitos e funcione bem na prática.”
— TESTES DE PERFORMANCE
QAZANDO
72
TESTES DE PERFORMANCE
Simulação Condições
Reais de Uso
Os testes podem
simular o
comportamento
esperado dos
usuários, como a
navegação em um
site, a execução de
transações em um
sistema bancário,
entre outros.
Análise de Capacidade e
Escalabilidade
Os testes de
performance também
podem avaliar a
capacidade máxima do
sistema e sua
capacidade de
escalabilidade para
lidar com um número
crescente de usuários
ou transações.
Avaliação do
Desempenho
Os testes de
performance avaliam
como o sistema se
comporta em termos
de tempo de resposta,
velocidade,
escalabilidade e
utilização de recursos
(CPU, memória, rede)
sob diferentes cargas
de trabalho.
Cenários de Teste
Podem incluir
simulações de carga
máxima, picos de
tráfego, situações de
uso normal e outros
cenários relevantes
para o aplicativo.
Ferram. de Teste
Performance
Existem diversas
ferramentas
disponíveis para
automatizar e facilitar
a execução dos testes,
como JMeter,
LoadRunner, Apache
Benchmark, entre
outras.
MÉTRICAS
Tempo de Resposta: Mede o tempo que o sistema
leva para responder a uma solicitação do usuário.
Taxa de Transações por Segundo (Throughput):
Mede quantas transações o sistema pode processar
por segundo.
Utilização de Recursos: Avalia o uso de CPU,
memória, rede, entre outros.
73
Objetivo
Garantir que o software
mantenha um desempenho
aceitável mesmo sob
condições de carga elevada
ou uso intensivo.
TESTES DEPERFORMANCE
Benefícios
Identificação de gargalos de
desempenho e pontos de
estrangulamento.
Garantia de que o sistema atenda aos
requisitos de desempenho
estabelecidos.
Os Testes de Performance são fundamentais
para garantir que o software seja capaz de
lidar com a demanda e o tráfego esperados
na produção. Eles ajudam a evitar problemas
de lentidão ou falhas devido à sobrecarga do
sistema.”
74
TESTES DE
USABILIDADE
75
— TESTES DE USABILIDADE
QAZANDO
Avaliação da
Experiência do Usuário
Os testes de usabilidade
visam avaliar a eficiência, a
eficácia e a satisfação do
usuário ao utilizar o
software.
Usuários Reais
Normalmente, os
testes de usabilidade
envolvem a
participação de
usuários reais
representativos do
público-alvo do
software.
Cenários de
Uso Realistas
Os participantes são
convidados a realizar
tarefas específicas
que representam
situações típicas de
uso do software.
Observação e
Coleta de Dados
Durante os testes, os
pesquisadores
observam a interação
dos usuários com o
software, registram o
tempo gasto em
tarefas e coletam
feedback verbal sobre
a experiência.
Feedback
Qualitativo
Além de métricas
quantitativas, como
tempo gasto em tarefas, o
feedback qualitativo é
crucial. Os participantes
fornecem opiniões,
impressões e sugestões
sobre a interface e a
funcionalidade.
Identificação de
Problemas de
Usabilidade
Os testes de
usabilidade podem
revelar problemas de
navegação confusa,
menus pouco
intuitivos, falta de
feedback visual, entre
outros.
Iteração e
Melhoria do
Design
Com base nos
resultados dos testes de
usabilidade, o design do
software pode ser
refinado e melhorado
para oferecer uma
experiência mais
eficiente e agradável
para os usuários.
Memento na fase
de
Desenvolvimento
Os testes de
usabilidade podem
ocorrer em diferentes
fases do
desenvolvimento,
desde protótipos
iniciais até versões
finais do software.
“Os Testes de Usabilidade são uma forma de
avaliação de software que se concentra na
experiência do usuário (UX) e na facilidade de
uso de um sistema ou aplicativo. O objetivo é
identificar problemas de usabilidade,
entender como os usuários interagem com o
software e coletar feedback sobre a interface e
a experiência de navegação.”
76
TESTES DE USABILIDADE
“Os testes de usabilidade são fundamentais para
garantir que o software não apenas ofereça
funcionalidades, mas também proporcione uma
experiência agradável e intuitiva para os usuários
finais. Eles ajudam a criar produtos mais eficazes e
alinhados com as expectativas e necessidades dos
usuários.”
— TESTES DE USABILIDADE
Objetivo
Melhorar a experiência do
usuário e a usabilidade do
software, identificando e
corrigindo problemas de
interface e interação.
Benefícios
Maior satisfação dos usuários.
Redução de erros e dificuldades na
interação com o software.
Aumento da eficiência e eficácia na
realização de tarefas.
77
TESTES DE
SEGURANÇA
78
— TESTES DE SEGURANÇA
TESTES DE SEGURANÇA
Identificação de
Vulnerabilidades
Os testes de
segurança
buscam identificar
potenciais pontos
fracos no sistema,
como falhas de
autenticação,
autorização
inadequada,
vulnerabilidades
de código, entre
outros.
Simulação de
Ataques
Os testes
podem incluir
técnicas de
hacking ético
para avaliar a
capacidade do
sistema de
resistir a
ataques reais.
Testes Manuais e
Automatizados
Os testes de
segurança
podem ser
realizados
manualmente
por especialistas
em segurança ou
com o auxílio de
ferramentas
automatizadas.
Escopo dos Testes
Pode incluir
avaliações de
segurança de
aplicações web,
redes,
dispositivos
móveis,
sistemas
operacionais,
entre outros.
“Também conhecidos como testes de penetração ou
pentests, são uma categoria de testes de software que
têm como objetivo identificar e avaliar
vulnerabilidades de segurança em um sistema ou
aplicação. Esses testes simulam ataques de hackers
para descobrir e corrigir potenciais falhas de
segurança antes que sejam exploradas por indivíduos
mal-intencionados.”
79
QAZANDO
TIPOS
Testes de Invasão (Pentests): Simulam ataques de
hackers para explorar vulnerabilidades e determinar se
o sistema pode ser invadido.
Análise de Vulnerabilidade: Identifica e avalia as
vulnerabilidades no código ou na configuração do
sistema.
Análise de Código Seguro (Static Application
Security Testing - SAST): Examina o código-fonte para
identificar potenciais vulnerabilidades de segurança.
“Os Testes de Segurança são essenciais para
garantir que um sistema ou aplicação esteja
protegido contra possíveis ameaças e ataques
cibernéticos. Eles desempenham um papel
crítico na proteção da integridade dos dados e na
segurança das operações de uma organização.”
— TESTES DE SEGURANÇA
Objetivo
Identificar e corrigir
vulnerabilidades de segurança
antes que sejam exploradas
por hackers mal-intencionados.
Redução de riscos de segurança e
proteção de dados sensíveis.
Melhoria da confiabilidade e da
integridade do sistema.
Benefícios
80
PIRÂMIDE DE
TESTES
81
PIRÂMIDE DE TESTES
A Pirâmide de Testes é uma estratégia
amplamente aceita na indústria de
desenvolvimento de software que sugere uma
distribuição equilibrada de diferentes tipos de
testes ao longo do ciclo de desenvolvimento.
Ela foi introduzida por Mike Cohn,
especialista em metodologias ágeis, como
uma abordagem para organizar e priorizar os
testes de forma eficaz.
Essa estratégia propõe uma hierarquia de testes, representada
visualmente na forma de uma pirâmide, com três camadas
distintas:
Testes de Unidade
Testes de Integração
Testes de Sistema
Testes de Aceitação
82
EXEMPLO
TESTES
UNITÁRIOS
TESTES DE
INTEGRAÇÃO
TESTES DE
SISTEMA
A razão para a forma de uma pirâmide é que a maioria
dos testes deve ser composta por testes de unidade,
que são mais rápidos de executar e menos propensos a
falhas.
Os testes de integração vêm em seguida, verificando a
interação entre componentes.
Por fim, os testes de aceitação e automação, embora
essenciais, compõem a camada superior da pirâmide, pois
são mais lentos e podem ser mais suscetíveis a erro
humano.
PIRÂMIDE DE TESTES
83
Essa abordagem visa equilibrar a eficiência na detecção
de defeitos com uma cobertura abrangente do sistema.
Ao seguir a Pirâmide de Testes, as equipes de
desenvolvimento podem criar software mais confiável,
com ciclos de desenvolvimento mais ágeis e uma maior
capacidade de resposta às mudanças nos requisitos do
cliente.
84
Anotaçoēs
TÉCNICAS:
PARTIÇÃO DE
EQUIVALÊNCIA
85
TÉCNICAS DE TESTES
Teste de Partição de Equivalência é uma técnica de teste de
software que visa reduzir a redundância na criação de casos
de teste. Ela se baseia na ideia de que grupos de entradas
semelhantes tendem a produzir resultados semelhantes.
Portanto, em vez de testar cada valor individualmente,
agrupamos os valores em classes de equivalência e criamos
casos de teste para representar cada classe.
PARTIÇÃO DE EQUIVALÊNCIA
“Desempenham papéis específicos na elaboração de planos
de teste e na execução de testes de software. Elas ajudam a
garantir que uma ampla gama de cenários de teste seja
coberta, mesmo quando os recursos e o tempo são
limitados. Além disso, permitem a identificação eficaz de
falhas e problemas no software, contribuindo para a
melhoria da qualidade do produto final.”
1
Identificação de Classes
de Equivalência
Garantir que o software atenda
aos requisitos funcionais e
forneça a funcionalidade
desejada para os usuários finais.
2
Seleção de Valores de Teste
Escolhemos um valor de teste de cada
classe de equivalência para
representar o grupo. Testar um valor
dentro de uma classe é suficiente, pois
todos os outros valores da mesma
classe devem produzir resultados
semelhantes.
86
Suponha que estamos testando um sistema de login com um campo de senha que aceita
entre 6 e 12 caracteres.
PARTIÇÃO DE EQUIVALÊNCIA EXEMPLO
Condição
Comprimento da Senha
Classes de Equivalência
C1: Senha com menos de 6 caracteres
VALOR: "12345" (intervalo inválido)
C2: Senha entre 6 e 12 caracteres
VALOR: "senha123" (intervalo válido)
C3: Senha com mais de 12 caracteresPara C3: "senha1234567890" (intervalo inválido)
“O Teste de Partição de Equivalência é uma
técnica poderosa para otimizar a criação de
casos de teste e garantir uma cobertura
abrangente dos cenários de teste
relevantes.”
— PARTIÇÃO DE EQUIVALÊNCIA
PRÁTICA!
www.automationpratice.com.br87
TÉCNICAS:
ANÁLISE DE
VALOR
LIMITE
88
Análise de Valor Limite
1
Identificação dos Limites
Para cada condição de entrada,
identificamos os limites dos intervalos.
Isso inclui os valores mínimo, máximo
e os valores adjacentes a esses limites.
2
Seleção de Valores de Teste
Escolhemos valores de teste que
estejam próximos aos limites
identificados. Isso inclui valores
justamente antes e justamente após
os limites.
Suponha que temos um campo que aceita valores entre 1 e 10.
ANÁLISE DE VALOR LIMITE
EXEMPLO
Condição
Valor do Campo
Limites Valores de Teste
Mínimo: 1
Máximo: 10
Testar com 0, 2 (antes e após o mínimo)
Testar com 9, 11 (antes e após o máximo)
Testar com 1, 10 (exatamente o limite)
A Técnica de Análise de Valor Limite é uma abordagem de
teste que se concentra nos limites dos intervalos de valores
de entrada. O objetivo é identificar e testar os valores críticos
que estão próximos aos limites, uma vez que é mais
provável que os erros ocorram nessas áreas.
89
BENEFÍCIOS
Identifica erros que são mais
propensos a ocorrer nos limites
dos intervalos de valores de
entrada.
Ajuda a garantir uma cobertura
de teste eficaz mesmo quando
o tempo e os recursos são
limitados.
ANÁLISE DE VALOR LIMITE
LIMITAÇÕES
Nem todas as condições ou variáveis
terão limites claramente definidos.
A análise de valor limite pode não ser a
abordagem mais apropriada para todas
as situações.
“A Análise de Valor Limite é uma técnica valiosa,
especialmente quando se lida com intervalos de
valores de entrada. Ao se concentrar nos valores
críticos, é possível identificar e corrigir erros que
podem ser mais propensos a ocorrer em situações
próximas aos limites.”
90
TÉCNICAS:
TESTES DE CASO
DE USO
91
Testes de
C d U
TESTES DE CASO DE USO
Suponha que estamos testando uma funcionalidade de login em um aplicativo.
TESTES DE CASO DE USO
EXEMPLO
Caso de Teste 1: Login Válido
Descrição
Verificar se um usuário pode fazer login com credenciais válidas.
Passos
1.Abrir a página de login.
2. Inserir um nome de usuário válido.
3. Inserir uma senha válida.
4.Clicar no botão de login.
Resultado Esperado
O usuário deve ser
redirecionado para a página
inicial do aplicativo.
Teste de Casos de Uso envolve a criação e execução de
cenários de teste específicos para verificar se uma
determinada funcionalidade ou aspecto do software está
funcionando corretamente.
1
Identificação de
Cenários de Teste
Com base nos requisitos e
na especificação da
funcionalidade a ser testada,
os testadores criam casos de
teste que abrangem
diversos cenários possíveis.
2
Descrição Detalhada
Cada caso de teste deve
incluir uma descrição
detalhada do cenário de
teste, incluindo os passos
a serem seguidos, as
entradas a serem
utilizadas e os resultados
esperados.
3
Execução dos Testes
Os testadores executam os
casos de teste seguindo os
passos especificados,
inserindo os dados
necessários e verificando se
os resultados correspondem
ao esperado.
92
Suponha que estamos testando uma funcionalidade de login em um aplicativo.
TESTES DE CASO DE USO
EXEMPLO
Caso de Teste 2: Login Inválido - Nome de Usuário Incorreto
Descrição
Verificar se uma mensagem de erro é exibida ao inserir um nome de
usuário incorreto.
Passos
1.Abrir a página de login.
2. Inserir um nome de usuário INválido.
3. Inserir uma senha válida.
4.Clicar no botão de login.
Resultado Esperado
Deve ser exibida uma
mensagem de erro
indicando que o nome
de usuário é inválido.
Suponha que estamos testando uma funcionalidade de login em um aplicativo.
TESTES DE CASO DE USO
EXEMPLO
Caso de Teste 3: Login Inválido - Senha Incorreta
Descrição
Verificar se uma mensagem de erro é exibida ao inserir uma senha
incorreta.
Passos
1.Abrir a página de login.
2. Inserir um nome de usuário válido.
3. Inserir uma senha incorreta.
4.Clicar no botão de login.
Resultado Esperado
Deve ser exibida uma
mensagem de erro
indicando que a senha é
inválida.
93
— TESTES DE CASO DE USO
BENEFÍCIOS
Proporciona uma abordagem
estruturada para testar
funcionalidades específicas do
software.
Ajuda a garantir uma cobertura
abrangente dos diferentes
cenários de uso.
LIMITAÇÕES
Pode ser trabalhoso criar e executar casos
de teste detalhados, especialmente em
sistemas complexos.
Requer uma boa compreensão dos
requisitos e da funcionalidade a ser
testada.
“Os casos de teste são uma parte essencial do
processo de teste de software e são utilizados
para garantir que as funcionalidades do software
estejam funcionando conforme o esperado. Eles
são uma ferramenta valiosa para identificar e
corrigir erros durante o desenvolvimento de
software.”
94
TÉCNICAS:
TABELA DE
DECISÃO
95
Tabela de decisão
1
Identificação das Condições e
Variáveis
Identificamos as condições ou variáveis
que afetam o comportamento do
software. Cada condição pode ter dois
ou mais estados possíveis (verdadeiro
ou falso).
TABELA DE DECISÃO
2
Construção da Tabela
Criamos uma tabela que lista todas as
combinações possíveis de estados das
condições.
3
Definição dos Resultados
Esperados
Para cada combinação de estados das
condições, especificamos o resultado
esperado do software.
4
Execução dos Testes
Os testadores executam os casos de
teste conforme definidos na tabela,
verificando se o resultado obtido
corresponde ao resultado esperado.
A Técnica de Tabela de Decisão, também conhecida como
Tabela de Verdade, é uma abordagem de teste de software
que é especialmente útil quando o comportamento do
software depende de diferentes combinações de entradas
ou condições. Essa técnica ajuda a garantir que todas as
combinações possíveis de entradas sejam testadas.
96
Vamos considerar um exemplo de uma aplicação de compras online com
diferentes métodos de pagamento. A tabela de decisão abaixo mostrará
diferentes cenários de seleção de método de pagamento e os resultados
esperados:
TABELA DE DECISÃO
EXEMPLO
TABELA DE DECISÃO
EXEMPLO
1.Se o usuário escolhe pagar com Cartão de Crédito e tem saldo suficiente, a transação deve ser
bem-sucedida.
2.Se o usuário escolhe pagar com Cartão de Crédito, mas não possui saldo suficiente, a transação
deve falhar devido à falta de fundos.
3.Se o usuário escolhe pagar com PayPal e tem saldo suficiente, a transação deve ser bem-sucedida.
4.Se o usuário escolhe pagar com PayPal, mas não possui saldo suficiente, a transação deve falhar
devido à falta de fundos.
5.Se o usuário escolhe pagar com Transferência Bancária e tem saldo suficiente, a transação deve ser
bem-sucedida.
6.Se o usuário escolhe pagar com Transferência Bancária, mas não possui saldo suficiente, a
transação deve falhar devido à falta de fundos.
Explicação
97
TABELA DE DECISÃO
“A Técnica de Tabela de Decisão é uma
abordagem valiosa para garantir uma
cobertura abrangente de cenários de teste,
especialmente quando o comportamento do
software depende de diferentes combinações
de condições.”
BENEFÍCIOS
Garante uma cobertura
completa das combinações
possíveis de estados das
condições.
Ajuda a identificar e corrigir
erros que podem ocorrer em
cenários específicos.
LIMITAÇÕES
Pode se tornar complexa em
sistemas com muitas condições e
estados possíveis.
Requer uma boa compreensão
das condições e do
comportamento esperado do
software.
98
TÉCNICAS:
TESTES DE
MUTAÇÃO
99
Testes de Mutação
1
Introdução de
Mutantes
Mutantes são versões
modificadas do código
fonte original, onde
pequenas mudanças são
feitas, como a inserção de
erros sintáticos ou lógicos.
TESTES DE MUTAÇÃO
2
Execução dos Casos
de Teste
Os casos de teste são
executados no código
modificado com mutantes.
3
Detecção de
Falhas
Se um caso de teste
detectar e relatar a
presença de um mutante
(ou seja, o teste falha), isso
indica que o caso de testeé
eficaz em encontrar a
alteração no código.
TESTES DE MUTAÇÃO
EXEMPLO
A técnica de Testes de Mutação é uma abordagem avançada
de teste de software que envolve a introdução deliberada de
pequenas alterações, conhecidas como "mutantes", no código
fonte para avaliar a eficácia dos casos de teste em detectar
essas alterações.
Suponha que temos uma função muito simples em JavaScript para calcular a soma de dois números:
100
QAZANDO
Agora, podemos introduzir mutantes para avaliar a eficácia dos testes. Por exemplo:
Se um conjunto de casos de teste não detectar o mutante acima,
isso pode indicar uma lacuna nos testes em relação à detecção de
erros de sintaxe.
TESTES DE MUTAÇÃO
BENEFÍCIOS
Identifica a eficácia dos casos de
teste em encontrar erros no
código.
Ajuda a avaliar a robustez dos
testes e a cobertura do código.
LIMITAÇÕES
Pode ser uma técnica intensiva em
termos de tempo e recursos,
especialmente para projetos grandes.
A introdução de mutantes requer um
conhecimento aprofundado do código e
dos mutantes apropriados a serem
aplicados.
101
— TESTES DE MUTAÇÃO
“Os testes de mutação são usados em situações
em que a qualidade e robustez dos testes são
críticas, como em aplicações que lidam com
aspectos de segurança ou em projetos de missão
crítica. Essa técnica ajuda a garantir que os casos
de teste sejam capazes de detectar alterações no
código, garantindo a confiabilidade do software.”
102
TESTES
EXPLORATÓRIOS
103
— TESTES EXPLORATÓRIOS
“Abordagem de teste dinâmica e interativa,
na qual o testador, ao invés de seguir um
roteiro de testes predefinido, explora o
software de maneira ativa e ad-hoc. Essa
abordagem é baseada na experiência,
intuição e conhecimento do testador em
relação ao sistema em teste.”
A principal característica dos testes exploratórios é:
a liberdade dada ao testador para
avaliar o software de forma mais
flexível e encontrar defeitos de
maneira eficiente.
CARACTERÍSTICA
104
QAZANDO
Durante os testes exploratórios, o testador pode
tomar decisões sobre onde focar os testes com
base em sua compreensão do sistema,
mudando de direção conforme necessário.
CARACTERÍSTICA
Os testes exploratórios são
adaptativos e reativos. O testador
pode ajustar sua abordagem
com base nos resultados dos
testes anteriores e nas mudanças
nas condições do software.
Ao contrário dos testes
tradicionais, os testes
exploratórios não seguem
roteiros de teste rigidamente
definidos. O testador tem a
liberdade de explorar diferentes
áreas do software de forma
dinâmica.
Sem Roteiros
Fixos
Adaptação
Contínua
O objetivo principal é descobrir
defeitos de maneira eficiente.
Isso envolve a execução de testes
sem uma predefinição rígida,
permitindo que o testador
identifique áreas de risco e
possíveis problemas.
Foco na
Descoberta
de Defeitos
O testador utiliza sua experiência,
habilidades e conhecimento do
domínio para explorar o software
de maneira mais eficaz.
Como os testes exploratórios são
conduzidos de maneira
interativa, o feedback é imediato.
Isso permite uma rápida
identificação e correção de
defeitos, melhorando a qualidade
do software.
Feedback
Imediato
Uso de
Conhecimento
Pessoal
Enquanto o testador explora o
software, ele documenta suas
atividades, o que pode servir
como uma forma de registro e
pode ser usado para referência
futura.
Documentação
Dinâmica
105
DIFERENÇA
Roteiros de Teste Fixos
Planejamento
Antecipado
Cobertura Planejada
Reprodutibilidade
Documentação Extensiva
Menos Flexibilidade
Sem Roteiros Fixos
Planejamento Dinâmico
Cobertura Adaptativa
Menos Documentação Formal
Ênfase na Descoberta de
Defeitos
Feedback Imediato
Uso de Conhecimento
Pessoal
TRADICIONAL EXPLORATÓRIO
Os testes exploratórios são vistos como uma
abordagem complementar aos testes mais
formais e estruturados. Ambas as abordagens
podem coexistir para fornecer uma cobertura
de teste abrangente. Essa flexibilidade é
particularmente útil em situações em que os
requisitos estão em constante mudança ou
quando é difícil antecipar todos os cenários
de teste possíveis.
106
PLAYWRIGHT
WEB
107
O que é:
Suporte a
múltiplos
navegadores e
dispositivos.
Execução rápida e
estável dos testes.
API moderna
e intuitiva,
fácil de
aprender.
Permite testes
visuais, de API e de
UI no mesmo
projeto.
Gera relatórios
detalhados com
screenshots e
vídeos
automáticos.
Por que usar:
Playwright é uma ferramenta moderna de
automação de testes desenvolvida pela Microsoft.
Ela permite testar aplicações web em múltiplos
navegadores (como Chrome, Firefox e Safari) de
forma rápida, confiável e paralela. É usada para
testes de ponta a ponta (E2E), garantindo que a
aplicação funcione corretamente para o usuário
final.
108
Configuração básica
Rode um teste de exemplo para validar:
Instale o Playwright:
Escolha o tipo de projeto (geralmente TypeScript
ou JavaScript).
Para abrir o relatório dos testes:
109
Comandos básicos
Clicar em um botão:
Abrir uma página:
Digitar em um campo:
Verificar texto na tela:
Tirar um screenshot:
110
O Playwright é uma ferramenta completa e
moderna para testes web automatizados, ideal
para QAs que desejam mais velocidade,
confiabilidade e suporte multiplataforma em seus
testes.
111
CYPRESS WEB
112
O que é:
Configuração
simples e
rápida.
Recarrega
automaticamente
ao salvar
alterações.
Excelente para
testes de UI e
comportamento
do usuário.
Execução visual e
interativa dos
testes.
Possui painel de
execução e
relatórios visuais
com capturas de
tela e vídeos.
Por que usar:
Cypress é uma ferramenta de automação de testes
moderna voltada para aplicações web. Ela permite
escrever e executar testes de ponta a ponta (E2E),
testes de integração e testes unitários diretamente
no navegador, com visualização em tempo real do
que está acontecendo.
113
Configuração básica
Instale o Cypress no projeto:
Abra o Cypress pela primeira vez:
O Cypress criará automaticamente a estrutura de
pastas (cypress/e2e, fixtures, support).
Para rodar os testes no terminal (modo headless):
114
Comandos básicos
Acessar uma página:
Clicar em um elemento:
Preencher um campo:
Verificar texto na tela:
Fazer uma asserção de valor:
115
Acessar uma página:Cypress é uma ferramenta
poderosa e prática para automação web, ideal para
quem quer rapidez, facilidade e feedback visual nos
testes.
116
Robot Framework
(Web)
117
O que é:
Baixa curva de
entrada (palavras-
chave em vez de
código extenso).
Ecosistema
maduro
(relatórios
nativos, libs,
plugins).
Legível para times
multidisciplinares
(QA, PO, Dev).
Escalável
(resource files,
variables,
parallel com
pabot).
Por que usar:
Framework de automação de testes keyword-
driven. Usa sintaxe simples (tabelada/markdown-
like), extensível por bibliotecas — para web, a
principal é a SeleniumLibrary.
1.Pré-requisitos
Python 3.9+
pip habilitado
Como configurar (Web)
118
Instalação:
Estrutura mínima
Executar
Exemplo básico (.robot)
119
5 comandos básicos (Web)
Open Browser – abre o navegador em uma
URL inicial.
Open Browser https://site.com chrome
Input Text – digita em campos.
Input Text id=email usuario@site.com
Click Button – clica em botões.
Click Button css=button[type="submit"]
Wait Until Element Is Visible – espera
elemento aparecer (sincronização).
Wait Until Element Is Visible css=.dashboard
10s
Element Should Contain – valida texto em
um elemento (asserção).
Element Should Contain css=.welcome Bem-
vindo
120
Cypress para API
121
O que é:
Permite testar
frontend e
backend no
mesmo framework
Fácil de
configurar e
executar
Relatórios
integrados
Suporte nativo
para requisições
HTTP
Por que usar:
É o uso do Cypress para testar endpoints de API
(requisições HTTP), validando respostas, status
codes, payloads e regras de negócio sem precisar
abrir interface gráfica.
Integra bem
com CI/CD
122
Como fazer a configuração
Criar o arquivo de teste em:
cypress/e2e/api
Usar o comando cy.request() para chamar
os endpoints.
Ajustar baseUrl (opcional) nocypress.config.js:
123
📌 Comandos básicos (5 principais):
124
Playwright para
API
125
O que é:
Por que usar:
É o uso do Playwright para testar APIs por meio do
recurso request, permitindo enviar requisições HTTP
(GET, POST, PUT, DELETE etc.) sem interface gráfica.
Permite testar
frontend e
backend no
mesmo projeto
Funciona com
TypeScript e
JavaScript
Suporte nativo
para requisições
HTTP
Mais rápido que
testar via UI
Fácil integração
com CI/CD
126
📌 Como fazer a configuração
Instalar o Playwright:
Importar o test e usar request:
Criar um arquivo de teste em:
127
5 comandos básicos
Behaviour Driven
Development.
BDD
128
SOBRE O BDD
O QUE É BDD?
BDD é uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de
programação, focando o comportamento do software.
O foco em BDD é a linguagem e as interações usadas no processo de desenvolvimento de
software.
Desenvolvedores que se beneficiam destas técnicas escrevem os testes em sua língua nativa em
combinação com a linguagem ubíqua (Ubiquitous Language).
"Linguagem Ubíqua: é uma linguagem estruturada
em torno do modelo de domínio e usada por todos os
membros da equipe para conectar todas as suas
atividades com o software."
Quando Dan North apresentou este conceito em 2003, ele sugeriu um padrão para
escrita destes arquivos. Veja na Figura 1.
Este é apenas um modelo, ou seja, não é obrigatório. Entretanto, Dan North denota
que é extremamente importante a equipe seguir um padrão para facilitar a
comunicação entre os envolvidos no projeto.
129
Comunicação entre equipes: BDD possibilita uma integração porque
os testadores podem escrever os cenários de testes para os
desenvolvedores implementarem;
Compartilhamento de conhecimento: com desenvolvedores e
testadores trabalhando juntos, ao longo do tempo, um irá transferir o
seu conhecimento para o outro, criando assim uma equipe
multifuncional;
Documentação dinâmica: usando os frameworks de BDD estes
artefatos são gerados dinamicamente sem nenhum esforço adicional.
Alguns, inclusive, geram relatórios em formato HTML, o que irá facilitar
uma consulta posterior;
Visão do todo: o BDD sugere que os analistas/testadores escrevam os
cenários antes mesmo dos testes serem implementados, e desta
forma os desenvolvedores terão uma visão geral do objetivo do projeto
antes de codificar.
130
Gherkin é um formato que podemos utilizar para padronizar,
documentar, e até reciclar código e funcionalidades.
Sendo assim, se trata de literalmente de uma descrição da regra de
negócio do sistema, em forma passo-a-passo, simples assim.
Por exemplo, para fazer um login na aplicação XPTO, teríamos os
passos definidos na mão, mais ou menos, da seguinte forma:
Pré condição: Possuir uma conta no sistema
Acessar a página de login
Preencher credenciais
Clicar no botão de login
Esperar o login ser completado
SOBRE O GHERKIN
Simples, certo? Agora, vamos converter esse fluxo para o padrão
Gherkin.
Mas, é preciso entender que no Gherkin existem “keywords”
(“palavras-chave”)
Given (pt: Dado): Utilizado para especificar uma pré condição, dentro
desse step é feita a validação de uma condição antes de se
prosseguir para os próximos passos.
When (pt: Quando): Utilizado quando será executada uma ação de
que se espera uma reação vinda do sistema, que será validada no
step “Then” (Então).
Then (pt: Então): Valida se o esperado aconteceu. Segue sempre um
passo do tipo “Quando”, pois aqui é validada a reação da ação
recebida.
And (pt: E): Caso seja necessário mais uma interação com o sistema
para complementar um fluxo, mas que não necessariamente se trata
de uma ação ou reação, se utiliza “And”;
131
Sabendo disso, podemos traduzir a nossa etapa de login no
sistema XPTO para:
Dado que “Fulano” possui uma conta no sistema
E ele acessa a página de login
E ele preenche suas credenciais válidas
Quando ele aciona a opção de realizar login
Então ele deve ser redirecionado para a página inicial logado
132
Cucumber é uma ferramenta que suporta BDD.
O Cucumber interpreta o que foi escrito no BDD, no padrão
Gherkin, e transforma esses comportamentos descritos em
métodos da linguagem utilizada.
Dado que estou na tela de login
@Dado("^que estou na tela de login$")
public void que_estou_na_tela_de_login() {
// faz alguma coisa
}
SOBRE O CUCUMBER
BDD x GHERKIN x CUCUMBER
BDD GHERKIN Cucumber
É a metodologia
utilizada por todo o time!
Formato da escrita dos
cenários
(Dado, Quando Então).
Framework utilizado na
automação para
interpretar o Gherkin e
transformar em métodos
133
API
Interface de Programação de Aplicações
134
Porque testar API?
✅ Frontend é "burro"
✅ Regras de negócio estão no backend
✅ Mais rápido para testar (execução e construção)
Interface de Programação de Aplicações
API
Conjunto de serviços programados em um software,
disponibilizados para que aplicativos possam utilizar
essas funcionalidades diretamente, sem envolver-se
em detalhes da implementação do software.
🔥 Backend é a parte do sistema responsável por lidar
com a lógica de negócios e o processamento de dados
🔥 API é uma maneira de expor as funcionalidades e os
dados do backend para serem acessados por outros
sistemas
API x BACKEND
135
Exemplo mais profundo:
136
API
Projeto
Frontend
137
Projeto
Frontend
Projeto
Backend
Endpoints / URLsProjeto
Frontend
Projeto
Backend
Como acessamos uma API REST?
1⃣ Enviar solicitações HTTP
⬇
2⃣ Endpoints (URLs) específicos da API
⬇
3⃣ Lidar com as respostas retornadas
138
Tipos de roteamento:
https://restful-booker.herokuapp.com/apidoc/index.html
139
Git Para Testers
140
O que é o Git?
Git é um sistema de controle de versões distribuído,
usado principalmente no desenvolvimento de software,
mas pode ser usado para registrar o histórico de edições
de qualquer tipo de arquivo.
Como faço para usar o Git?
Passos:
1 - Ter o Git em seu computador.
2 - Escolher qual site utilizar.
Exemplos: Git Hub, Gitlab, BitBucket……
3 - Configurar seu Projeto.
4 - Subir os arquivos
git status:
Geralmente utilizado para demonstrar o que foi modificado dentro
da pasta/projeto que você está alterando.
git init:
Geralmente para demonstrar que um pacote/projeto vai ser
iniciado o versionamento com os comandos Git.
git merge:
Geralmente utilizado para realizar um merge entre 2 branchs
separadas.
141
git checkout -b nomedasuabranch:
Geralmente utilizado para criar uma nova branch e fazer a
navegação para a mesma.
git fetch:
Geralmente utilizado para realizar o REFRESH de todas as
branchs criadas no repositório.
git checkout nomedasuabranch:
Geralmente utilizado para modificar da sua branch atual para a
branch no qual você está passando no comando.
git commit -m "Descricao do seu Commit":
Geralmente utilizado para DESCREVER o que você está
subindo para o repositório.
git push:
Geralmente utilizado para subir de fato as suas alterações para a
branch que você está e tornar o seu código visível para todos.
O que significa Branch?
Branch, em tradução literal, significa “ramo”. No mundo da programação, ela
tem o mesmo significado: uma branch é uma ramificação do seu projeto. Os
repositórios no GitHub funcionam como uma árvore.
142
O que fazer agora para iniciar minhas
configurações do projeto?
Passo 1: git config --global user.name "Seu Nome"
Passo 2: git config --global user.email "seuemail@exemplo.com"
Primeira vez e única no computador.
Padronização de atividades
Passos para criar uma branch nova:
1 - git checkout master
2 - git pull
3 - git checkout -b nomedabranch
Git stash pop
Git stash pop muito utilizado para salvar mudanças locais e
reaplicar elas em novas branchs sem perder tempo.
git stash = salva
git stash pop = volta as mudanças
143
Cofundador
Eduardo Finotti Herbert Soares
Cofundador
Agradecimentos
A Qazando agradece a cada pessoa
que faz parte desta jornada.
Aos nossos alunos, que confiam no
nosso trabalho e constroem, junto
conosco,