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

Testes de Software

Testes de Software

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