Testes de Software - PHP Vale

Testes de Software - PHP Vale

Palestra realizada no 3º Meetup do PHP Vale, em 2019-03-16 (https://www.meetup.com/pt-BR/PHPVale/events/259016437/).

Link original: https://slides.com/devdrops/testes-de-software#/

049fbbe4e5fb94c45d6ccd656290d6fb?s=128

Davi Marcondes Moreira

March 16, 2019
Tweet

Transcript

  1. Testes de Software Testes de Software (Quase) Tudo O Que

    Você Queria Saber Mas Tinha Medo De Perguntar 2019-03-16 @ 3º PHPVale Meetup Davi Marcondes Moreira - @devdrops
  2. Photo by on Kevin Ku Unsplash

  3. None
  4. Dúvidas Dúvidas Mais Mais Comuns Comuns

  5. Dúvida #1 Dúvida #1 O O que que são testes

    são testes e pra quê e pra quê servem servem? ?
  6. None
  7. Investigação

  8. Investigação Exploração

  9. Investigação Qualidade Exploração

  10. None
  11. Dúvida #2 Dúvida #2 Que conceitos preciso saber Que conceitos

    preciso saber antes de começar a testar? antes de começar a testar?
  12. Single Responsibility Principle Single Responsibility Principle Fazer uma só coisa,

    e fazê-la bem
  13. Planejar antes de agir Planejar antes de agir Afie seu

    machado antes do trabalho
  14. Conheça o projeto Conheça o projeto Saiba onde estão os

    riscos e aceite que eles serão inevitáveis
  15. Separação de ambientes Separação de ambientes Na minha máquina funciona?

    Não pode!!!
  16. Dúvida #3 Dúvida #3 Por onde começar a testar Por

    onde começar a testar uma aplicação? uma aplicação?
  17. Photo by on Harlie Raethel Unsplash

  18. Dores típicas Dores típicas > As entregas demoram muito? >

    Código muito complexo? > O time anda desmotivado? > O site é lento? > Motivos de reclamação no suporte? > Bugs difíceis de encontrar/reproduzir?
  19. Dúvida #4 Dúvida #4 Diferença entre Unitário, Diferença entre Unitário,

    Funcional, E2E e Integração? Funcional, E2E e Integração?
  20. None
  21. Testes Unitários Testes Unitários - Nível mais baixo do código

    - Funções, métodos, classes - Mais baratos - Mais rápidos
  22. Testes de Integração Testes de Integração - Nível médio do

    seu código - Comunicação entre módulos, serviços, banco de dados - Custam mais pelas dependências - Mais lentos
  23. Testes Funcionais Testes Funcionais - Nível acima do código em

    si - Regras de negócio no sistema - Fazem ações de integração, mas não validam a interação entre as ações - Mais lentos
  24. Testes End-To-End (E2E) Testes End-To-End (E2E) - Mais alto nível

    do projeto - Como seu projeto se comunica com o mundo exterior - Endpoints de APIs, navegação completa pelo site - Mais lentos e muito mais caros
  25. Dúvida #5 Dúvida #5 O que são Mocks e Stubs?

    O que são Mocks e Stubs?
  26. Photo by on Nhia Moua Unsplash

  27. Mocks Mocks > Falsificação > Bem completo e pode ser

    usado como substituto de uma dependência do projeto (banco de dados, API etc) $mock = $this->createMock(SomeClass::class); $mock->expects($this->once()) ->method('doSomething') ->with('bar'); $sut->action($mock);
  28. Stubs Stubs > Mais simples, menos complexo > Atende um

    comportamento fixo e previsível $stub = $this->createMock(SomeClass::class); $stub->method('getSomething') ->willReturn('foo'); $sut->action($stub);
  29. Dúvida #6 Dúvida #6 Ninguém da equipe quer Ninguém da

    equipe quer fazer testes e o projeto é só fazer testes e o projeto é só bugs, o que faço? bugs, o que faço?
  30. Dúvida #7 Dúvida #7 Se eu testar Controller ou Se

    eu testar Controller ou Model, eu vou pro inferno? Model, eu vou pro inferno?
  31. Isso, cria teste pra aquele Controller, vai!

  32. Dúvida #8 Dúvida #8 Tenho que ter 100% de Tenho

    que ter 100% de cobertura de testes? cobertura de testes?
  33. Cobertura Cobertura Qualidade Qualidade !== !==

  34. Dúvida #9 Dúvida #9 Como saber a qualidade dos Como

    saber a qualidade dos meus testes? meus testes?
  35. Quebre seus testes! (de propósito)

  36. None
  37. Dúvida #10 Dúvida #10 Eu sou uma fraude, será que

    Eu sou uma fraude, será que só eu não consigo testar? só eu não consigo testar?
  38. None
  39. Dúvida #11 Dúvida #11 Além do código, preciso Além do

    código, preciso testar mais alguma coisa? testar mais alguma coisa?
  40. None
  41. Logs Logs

  42. Logs Logs Health Check de serviços Health Check de serviços

  43. Logs Logs Health Check de serviços Health Check de serviços

    Dependências Dependências
  44. Logs Logs Health Check de serviços Health Check de serviços

    Dependências Dependências Fluxos e Artefatos Fluxos e Artefatos
  45. Dúvida #12 Dúvida #12 Como mostrar a importância Como mostrar

    a importância dos testes para quem não é dos testes para quem não é de tecnologia? de tecnologia?
  46. Photo by on M. B. M. Unsplash

  47. Referências Referências [Software Testing](https://en.wikipedia.org/wiki/Software_testing ) [Testing References](http://www.testingreferences.com/testinghistory.php ) [The Different

    Types of Software Testing](https://www.atlassian.com/continuous- delivery/software-testing/types-of-software-testing) [Testes Unitários: Mocks, Stubs, Spies e Todas Essas Palavras Difíceis] (https://medium.com/trainingcenter/testes-unit%C3%A1rios-mocks-stubs-spies-e- todas-essas-palavras-dif%C3%ADceis-f2765ac87cc8) [Mocks Aren't Stubs](https://martinfowler.com/articles/mocksArentStubs.html)
  48. Muito Muito obrigado obrigado! =D ! =D bit.ly/testes-software @devdrops