100
Importância de testes automatizados para sustentar Continuous Delivery e DevOps @samantacicil ia

[DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Embed Size (px)

Citation preview

Page 1: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Importância de testes automatizados para sustentar Continuous Delivery e DevOps

@samantacicilia

Page 2: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Sobre mim

Importância de Testes Automatizados

Quadrante de Testes

Pirâmide de Testes & Antipadrões

Tipos de Teste & Continuous Delivery

Demo

Referências

@samantacicilia

Page 3: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Sobre mim

@samantacicilia

Page 4: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps
Page 5: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps
Page 6: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

insideoutproject.com.br

Page 7: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Mulheres Palestrantes

http://insideoutproject.com.br/mulheres-palestrantes

Page 8: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps
Page 9: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Importância de Testes Automatizados

@samantacicilia

Page 10: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps
Page 11: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes automatizados?

Page 12: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes automatizados?

- Feedback rápido;

Page 13: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes automatizados?

- Feedback rápido;

- Menos passível de erro de execução;

Page 14: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes automatizados?

- Feedback rápido;

- Menos passível de erro de execução;

- Executar testes automatizados no decorrer do pipeline ++ qualidade;

Page 15: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes automatizados?

- Feedback rápido;

- Menos passível de erro de execução;

- Executar testes automatizados no decorrer do pipeline ++ qualidade;

- Melhoria Contínua na Estratégia de Testes;

Page 16: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes automatizados?

- Feedback rápido;

- Menos passível de erro de execução;

- Executar testes automatizados no decorrer do pipeline ++ qualidade;

- Melhoria Contínua na Estratégia de Testes;

- Testes = especificação executável do comportamento do sistema;

Page 17: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes automatizados?

- Feedback rápido;

- Menos passível de erro de execução;

- Executar testes automatizados no decorrer do pipeline ++ qualidade;

- Melhoria Contínua na Estratégia de Testes;

- Testes = especificação executável do comportamento do sistema;

- Feedback, Feedback, Feedback;

Page 18: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Quadrante de Testes

@samantacicilia

Page 19: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

@samantacicilia

Page 20: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Pirâmide de Testes

@samantacicilia

Page 21: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

@samantacicilia

Page 22: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

@samantacicilia

Page 23: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Antipadrões

@samantacicilia

Page 24: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

@samantacicilia

Page 25: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

@samantacicilia

Page 26: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Tipos de Teste &

Continuous Delivery

@samantacicilia

Page 27: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

Page 28: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

Page 29: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

Page 30: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

Page 31: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

- Testes de valores limite, diferentes combinações, excessões…

Page 32: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

- Testes de valores limite, diferentes combinações, excessões…

- Cobertura de Código;

Page 33: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

- Testes de valores limite, diferentes combinações, excessões…

- Cobertura de Código;

- Segurança para fazer mudanças (eXtreme Programming);

Page 34: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

- Testes de valores limite, diferentes combinações, excessões…

- Cobertura de Código;

- Segurança para fazer mudanças (eXtreme Programming);

- Qualidade também nos testes unitários!

Page 35: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

- Testes de valores limite, diferentes combinações, excessões…

- Cobertura de Código;

- Segurança para fazer mudanças (eXtreme Programming);

- Qualidade também nos testes unitários!

- Test Driven Development;

Page 36: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

- Testes de valores limite, diferentes combinações, excessões…

- Cobertura de Código;

- Segurança para fazer mudanças (eXtreme Programming);

- Qualidade também nos testes unitários!

- Test Driven Development;

- Design de Código que permita testes;

Page 37: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Unitários

@samantacicilia

- Feedback extremamente rápido;

- 10-minute build (eXtreme Programming);

- Testes de valores limite, diferentes combinações, excessões…

- Cobertura de Código;

- Segurança para fazer mudanças (eXtreme Programming);

- Qualidade também nos testes unitários!

- Test Driven Development;

- Design de Código que permita testes;

- Mocks;

Page 38: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Ferramentas

@samantacicilia

Page 39: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Links das Ferramentas

@samantacicilia

- http://junit.org/junit4/

- http://www.nunit.org/

- http://testng.org/doc/index.html

- https://phpunit.de/

- http://jasmine.github.io/

- https://mochajs.org/

- http://robolectric.org/

- http://rspec.info/

- https://docs.python.org/2.7/library/unittest.html

Page 40: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Mutação

@samantacicilia

Page 41: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Mutação

@samantacicilia

- Testar seus Testes Unitários;

Page 42: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Mutação

@samantacicilia

- Testar seus Testes Unitários;

- Ferramenta introduz mutações no seu código e executa os testes unitários;

Page 43: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Mutação

@samantacicilia

- Testar seus Testes Unitários;

- Ferramenta introduz mutações no seu código e executa os testes unitários;

- Se os testes falharem = OK!

Page 44: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Mutação

@samantacicilia

- Testar seus Testes Unitários;

- Ferramenta introduz mutações no seu código e executa os testes unitários;

- Se os testes falharem = OK!

- Se os testes passarem = NOK!

Page 45: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Mutação

@samantacicilia

Page 46: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Ferramentas

@samantacicilia

Page 47: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Links das Ferramentas

@samantacicilia

- http://pitest.org/

- https://pypi.python.org/pypi/MutPy

- https://ninjaturtles.codeplex.com/

- http://visualmutator.github.io/web/

- https://github.com/mbj/mutant

- http://jumble.sourceforge.net/

Page 48: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviços

@samantacicilia

Page 49: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

Page 50: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

- Depois dos Testes de Unidade e antes dos Testes de UI;

Page 51: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

- Depois dos Testes de Unidade e antes dos Testes de UI;

- Testar seu app + módulos, componentes, banco de dados;

Page 52: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

- Depois dos Testes de Unidade e antes dos Testes de UI;

- Testar seu app + módulos, componentes, banco de dados;

- Sem interface;

Page 53: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

- Depois dos Testes de Unidade e antes dos Testes de UI;

- Testar seu app + módulos, componentes, banco de dados;

- Sem interface;

- Stubs;

Page 54: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

Page 55: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

- Integração/Componentes

Page 56: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

- Integração/Componentes

- Contratos

Page 57: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Serviço

@samantacicilia

- Integração/Componentes

- Contratos

- API/Webservices

Page 58: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Ferramentas

@samantacicilia

Page 59: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Links das Ferramentas

@samantacicilia

- https://www.soapui.org/

- https://github.com/jayway/rest-assured

- http://flask-restless.readthedocs.io/en/stable/

- http://frisbyjs.com/

- https://github.com/visionmedia/supertest

- https://github.com/svanoort/pyresttest

- https://github.com/rest-client/rest-client

- https://github.com/brooklynDev/airborne

Page 60: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de UI

@samantacicilia

Page 61: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Funcionais

@samantacicilia

Page 62: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Funcionais

@samantacicilia

- Lentos :(

Page 63: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Funcionais

@samantacicilia

- Lentos :(

- Fluxos principais da aplicação;

Page 64: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Funcionais

@samantacicilia

- Lentos :(

- Fluxos principais da aplicação;

- Diferentes browsers (IE, Firefox, Chrome, Safari & Headless);

Page 65: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes Funcionais

@samantacicilia

- Lentos :(

- Fluxos principais da aplicação;

- Diferentes browsers (IE, Firefox, Chrome, Safari & Headless);

- Mobile;

Page 66: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Ferramentas

@samantacicilia

Page 67: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Links das Ferramentas

@samantacicilia

- http://www.seleniumhq.org/

- https://github.com/jnicklas/capybara

- http://angular.github.io/protractor/#/

- https://github.com/RobotiumTech/robotium

- http://calaba.sh/

- http://appium.io/

Page 68: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Regressão Visual

@samantacicilia

- Comparação de Imagens;

Page 69: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Regressão Visual

@samantacicilia

- Comparação de Imagens;

Page 70: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Ferramentas

@samantacicilia

Page 71: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Links das Ferramentas

@samantacicilia

- https://github.com/yahoo/kobold

- https://github.com/Huddle/PhantomCSS

- https://applitools.com/

- https://dpxdt-test.appspot.com/

- https://github.com/BBC-News/wraith

- https://github.com/xebia/VisualReview

Page 72: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Bônus

@samantacicilia

Page 73: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Performance

@samantacicilia

Page 74: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Performance

@samantacicilia

- Comportamento da aplicação diante de uma carga conhecida;

Page 75: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Performance

@samantacicilia

- Comportamento da aplicação diante de uma carga conhecida;

- Baselines;

Page 76: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Performance

@samantacicilia

- Comportamento da aplicação diante de uma carga conhecida;

- Baselines;

- Ter um ambiente para esses testes;

Page 77: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Performance

@samantacicilia

- Comportamento da aplicação diante de uma carga conhecida;

- Baselines;

- Ter um ambiente para esses testes;

- Definir as métricas;

Page 78: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes de Performance

@samantacicilia

- Comportamento da aplicação diante de uma carga conhecida;

- Baselines;

- Ter um ambiente para esses testes;

- Definir as métricas;

- Análise automática???

Page 79: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Ferramentas

@samantacicilia

Page 80: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Links das Ferramentas

@samantacicilia

- http://www.radview.com/pt-br/baixe-o-webload/

- https://smartbear.com/product/loadcomplete/overview/

- http://www.neotys.com/neoload/overview

- http://jmeter.apache.org/

- http://grinder.sourceforge.net/

- http://locust.io/

- http://gatling.io/

- https://www.loadui.org/

Page 81: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

E Continuous Delivery?

@samantacicilia

Page 82: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes X Estágios

@samantacicilia

Page 83: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes X Estágios

@samantacicilia

- Estágio de Commit:

- Testes Unitários

- Testes de Mutação

Page 84: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes X Estágios

@samantacicilia

- Estágio de Commit:

- Testes Unitários

- Testes de Mutação

- Estágio de Aceite (primeiro ambiente):

- Testes de Serviço

Page 85: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Testes X Estágios

@samantacicilia

- Estágio de Commit:

- Testes Unitários

- Testes de Mutação

- Estágio de Aceite (primeiro ambiente):

- Testes de Serviço

- Estágio de Aceite (pré-produção):

- Testes de UI

- Testes de Regressão Visual

- Testes de Performance

Page 86: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Demo

@samantacicilia

Page 87: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Ruby:- Unitário (Rspec)

- Mutação (mutant-rspec)

https://github.com/samycici/mutation_example

@samantacicilia

Page 88: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Exemplo 1

Page 89: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Exemplo 1

Page 90: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Exemplo 1

Page 91: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Exemplo 1

Page 92: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Exemplo 2

Page 93: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Exemplo 2

Page 94: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Exemplo 2

Page 95: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

App em Python usando Flask:- Unitário (unittest + fixtures)- Integração (unittest + sqlite)

- API (pyresttest)- Funcional (selenium)

- Performance (locust.io)

https://github.com/samycici/todoapp-flask

@samantacicilia

Page 96: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Referências

@samantacicilia

Page 97: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

@samantacicilia

Page 98: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

http://www.guru99.com/mutation-testing.html

http://blog.arkency.com/2015/05/mutation-testing-and-continuous-integration/

http://blog.arkency.com/2015/06/how-good-are-your-ruby-tests-testing-your-tests-with-mutant/

https://blog.blockscore.com/how-to-write-better-code-using-mutation-testing/

http://www.slideshare.net/stefanteixeira/vr-dev-summit-2016-primeiros-passos-em-automao-de-testes

http://pt.slideshare.net/fredoriginal/palestra-de-como-testar-sua-api-rest-no-grupo-de-teste-carioca

https://css-tricks.com/visual-regression-testing-with-phantomcss/

http://www.softwaretestinghelp.com/performance-testing-tools-load-testing-tools/

https://talkingabouttesting.com/2015/08/19/mao-na-massa-com-visual-review-e-protractor/

https://robots.thoughtbot.com/how-to-stub-external-services-in-tests

Page 99: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps
Page 100: [DevOps Summit]Importância de testes automatizados para sustentar Continuous Delivery & DevOps

Contatos➔ testedesoftware.com➔ rtstreinamentos.com.br➔ medium.com/@samantacicilia

➔ Linkedin: Samanta Cicilia➔ Twitter: @samantacicilia➔ Slideshare: pt.slideshare.net/samantacicilia/➔ Email: [email protected]