Slide 1

Slide 1 text

Qualidade de software Testes

Slide 2

Slide 2 text

Juliana Fernandes ➔ deva cansada 😂 ➔ viajante & mochileira 🌎 ➔ devops(SRE) ~ QA ~ líder técnica(TL) 📚

Slide 3

Slide 3 text

Do que falaremos hoje? Estágio M4U Qualidade de software: Testes ➔ Evolução na área de qualidade(cascata x ágil) ➔ O que são testes? Porque testar? ➔ Manifesto dos testes ágeis ➔ Testes automatizados ➔ Tipos de testes ➔ Ferramental ➔ Pensando em uma estratégia de testes ➔ Quem testa o teste? ➔ Referências

Slide 4

Slide 4 text

"Há uma grande ironia no que diz respeito à qualidade. O time de QA não garante a qualidade. O time de dev garante a qualidade. Cada linha de código torna a experiência do cliente melhor ou pior." Atlassian blog post Estágio M4U Qualidade de software: Testes

Slide 5

Slide 5 text

Evolução na área de qualidade (cascata x ágil) Estágio M4U Qualidade de software: Testes

Slide 6

Slide 6 text

Cascata Estágio M4U Qualidade de software: Testes

Slide 7

Slide 7 text

Ágil Estágio M4U Qualidade de software: Testes

Slide 8

Slide 8 text

Qualidade como parte do processo Estágio M4U Qualidade de software: Testes

Slide 9

Slide 9 text

O que são testes & porque testar? Estágio M4U Qualidade de software: Testes

Slide 10

Slide 10 text

O que são testes? Estágio M4U Qualidade de software: Testes "Melhor um bug na mão da desenvolvedora do que na mão da usuária" Teste de software é um processo que faz parte do desenvolvimento de software e tem como principais objetivos garantir a qualidade da solução desenvolvida, e reduzir os riscos que podem impactar as usuárias finais da aplicação.

Slide 11

Slide 11 text

Porque testar? Estágio M4U Qualidade de software: Testes ➔ Procurar e encontrar bugs ➔ Ajuda a garantir a qualidade do software ➔ Maior confiança para evoluir o produto ➔ Manter custo de desenvolvimento em níveis saudáveis ➔ Evitar perda de dinheiro e comprometimento de imagem

Slide 12

Slide 12 text

O manifesto de testes ágil Estágio M4U Qualidade de software: Testes

Slide 13

Slide 13 text

O manifesto de testes ágil Estágio M4U Qualidade de software: Testes ➔ Testar ao longo do desenvolvimento ao invés de testar apenas no final ➔ Prevenir bugs ao invés de encontrar bugs ➔ Testar o entendimento ao invés de checar funcionalidades ➔ Construir o melhor sistema ao invés de quebrar o sistema ➔ O time é responsável pela qualidade ao invés de pessoas testers serem responsáveis pela qualidade

Slide 14

Slide 14 text

Testes automatizados Estágio M4U Qualidade de software: Testes

Slide 15

Slide 15 text

Testes automatizados Estágio M4U Qualidade de software: Testes ➔ Automação de testes é o uso de ferramentas para controlar a execução dos testes ➔ O objetivos da automação é tornar a prevenção de erros mais rápida e assertiva, com isso também, economizar tempo na execução de tarefas repetitivas ➔ Os testes automatizados também servem como forma de documentar a aplicação e assim facilitar o entendimento do código para novas pessoas

Slide 16

Slide 16 text

O que testar? Código Estágio M4U Qualidade de software: Testes

Slide 17

Slide 17 text

O que testar? Interface Estágio M4U Qualidade de software: Testes

Slide 18

Slide 18 text

Caixa branca Estágio M4U Qualidade de software: Testes ➔ Sem acesso ao código fonte ➔ Baseado em requisitos funcionais Caixa preta ➔ Acesso ao código fonte ➔ Projetado de acordo com a estrutura do código/componente

Slide 19

Slide 19 text

Tipos de testes Estágio M4U Qualidade de software: Testes

Slide 20

Slide 20 text

Testes de unidade/unitários Estágio M4U Qualidade de software: Testes

Slide 21

Slide 21 text

Testes de unidade/unitários Estágio M4U Qualidade de software: Testes ➔ É responsável por validar lógicas individuais da menor parte testável de um software(ex: função, método, lógica de negócio) ➔ Com o objetivo de cobrir os diferentes cenários de retorno para determinado trecho de código, incluindo falhas e casos extremos ➔ Devem ser orientados à comportamento, isso garante que ao haver refatorações os testes não quebrem ➔ A principal característica desse tipo de teste é ser isolado de qualquer dependência externa(banco de dados, serviços externos) e algumas vezes isolados de outras lógicas internas da aplicação, para isso, utilizamos dados fakes quando necessário

Slide 22

Slide 22 text

Testes de unidade/unitários Estágio M4U Qualidade de software: Testes

Slide 23

Slide 23 text

Testes de integração Estágio M4U Qualidade de software: Testes

Slide 24

Slide 24 text

Testes de integração Estágio M4U Qualidade de software: Testes ➔ É o processo para verificar se os componentes de um software, juntos, possuem o comportamento esperado. ➔ Os testes de integração vezes possuem isolamento com dependências(serviços externos) também utilizando dados fake quando necessário ➔ É utilizado para testar o comportamento de uma funcionalidade, diferente do teste de unidade que foca mais em funções/lógicas específicas ➔ Também são conhecidos como teste de componente ou teste de serviços

Slide 25

Slide 25 text

Testes de integração Estágio M4U Qualidade de software: Testes Integration Tests

Slide 26

Slide 26 text

Testes “alto nível” (ponta a ponta/end2end) Estágio M4U Qualidade de software: Testes

Slide 27

Slide 27 text

Testes “alto nível”/end2end Estágio M4U Qualidade de software: Testes ➔ Garantem que o sistema funciona como um todo ➔ Pode ser divididos em alguns subtipos como: testes de aceitação e testes funcionais ➔ Utilizam integrações e dados reais

Slide 28

Slide 28 text

Testes “alto nível”/end2end Estágio M4U Qualidade de software: Testes

Slide 29

Slide 29 text

O escopo de cada teste Estágio M4U Qualidade de software: Testes

Slide 30

Slide 30 text

Ferramental Estágio M4U Qualidade de software: Testes

Slide 31

Slide 31 text

Métricas de qualidade Estágio M4U Qualidade de software: Testes

Slide 32

Slide 32 text

Pensando em uma estratégia de testes Pirâmide de testes Estágio M4U Qualidade de software: Testes

Slide 33

Slide 33 text

"TDD é uma disciplina, e isso significa que não é algo que vem naturalmente" Harry Percival @hjwp Estágio M4U Qualidade de software: Testes ➔ TDD(Test Driven Development) traduzido fica: desenvolvimento orientado a testes ➔ Você pode escrever testes unitários seguindo TDD mas nem todo teste unitário será TDD ➔ TDD é apenas uma das práticas que pode ser utilizada para escrever testes, mas não é a única e não deve ser tratado como se fosse

Slide 34

Slide 34 text

Quem testa o teste? Testes de mutação Estágio M4U Qualidade de software: Testes

Slide 35

Slide 35 text

Qualidade muito além da pirâmide Estágio M4U Qualidade de software: Testes ➔ Outros tipos de testes(teste de contrato, teste de carga..) ➔ Análise de segurança(pentest/scan de vulnerabilidade) ➔ Análise estática de código(lint) ➔ Outros padrões(ice cream cone, etc)

Slide 36

Slide 36 text

➔ The testing manifesto ➔ Testing ➔ The testing pyramid ➔ Intro mutation ➔ Moving from quality assurance to quality assistance ➔ Estratégia de testes em microservices Para aprender mais Referências Estágio M4U Qualidade de software: Testes

Slide 37

Slide 37 text

Obrigada! juliana.fernandes@m4u.com.br