Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Testes de Software

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Testes de Software

Avatar for Juliana Fernandes

Juliana Fernandes

May 27, 2022
Tweet

More Decks by Juliana Fernandes

Other Decks in Technology

Transcript

  1. Juliana Fernandes ➔ deva cansada 😂 ➔ viajante & mochileira

    🌎 ➔ devops(SRE) ~ QA ~ líder técnica(TL) 📚
  2. 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
  3. "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
  4. 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.
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. "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
  13. 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)
  14. ➔ 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