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

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#/

Avatar for Davi Marcondes Moreira

Davi Marcondes Moreira

March 16, 2019
Tweet

More Decks by Davi Marcondes Moreira

Other Decks in Programming

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. Dúvida #1 Dúvida #1 O O que que são testes

    são testes e pra quê e pra quê servem servem? ?
  3. 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?
  4. Conheça o projeto Conheça o projeto Saiba onde estão os

    riscos e aceite que eles serão inevitáveis
  5. Dúvida #3 Dúvida #3 Por onde começar a testar Por

    onde começar a testar uma aplicação? uma aplicação?
  6. 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?
  7. 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?
  8. Testes Unitários Testes Unitários - Nível mais baixo do código

    - Funções, métodos, classes - Mais baratos - Mais rápidos
  9. 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
  10. 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
  11. 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
  12. 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);
  13. 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);
  14. 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?
  15. 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?
  16. Dúvida #8 Dúvida #8 Tenho que ter 100% de Tenho

    que ter 100% de cobertura de testes? cobertura de testes?
  17. Dúvida #9 Dúvida #9 Como saber a qualidade dos Como

    saber a qualidade dos meus testes? meus testes?
  18. 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?
  19. 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?
  20. Logs Logs Health Check de serviços Health Check de serviços

    Dependências Dependências Fluxos e Artefatos Fluxos e Artefatos
  21. 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?
  22. 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)