Palestra ministrada no TestTalk Curitiba em setembro de 2015. O objetivo foi apresentar aos participantes conceitos de DevOps e como os testadores podem ser beneficiado e como eles podem influenciar.
2. Instrutor
Júlio de Lima
Especialista em teste de software com ênfase em automação de testes
de software, possui formação em Tecnologia da Informação e
certificações internacionais (CTFL e CTAL-TM pelo ISTQB) e nacional
(CBTS pela ALATS). Professor convidado em cursos de pós graduação
em universidades do Paraná e Santa Catarina ministrando disciplinas
relacionadas a testes e qualidade de software.
julio.lima@qualister.com.br
twitter.com/juliodelimas
br.linkedin.com/in/juliodelimas
goldtips.by/juliodelimas
4. Desenvolvimento
DevOps para Teste de Software
4
O papel da equipe de desenvolvimento é
desenvolver ou evoluir softwares com o
objetivo de entregá-los ao cliente final de
modo a fornecer valor a eles.
5. Operações
DevOps para Teste de Software
5
Já a equipe de operações tem seu foco
voltado a garantir que o software se mantém
funcionando de maneira confiável, estável e
eficiente em produção.
6. DevOps para Teste de Software
6
Operações tende a evitar evoluções do
software, uma vez que na maioria das vezes,
estas vem acompanhadas com falhas que
prejudicam a aplicação que já está em
produção.
Conflito de interesses
7. DevOps para Teste de Software
7
O resultado é que os clientes
demoram mais tempo para receber
novas versões do software e a
companhia e o produto tornam-se
menos competitivos
9. DevOps para Teste de Software
9
DevOps é um movimento dividido em
quatro eixos: Cultura, Automação,
Monitoração e Compartilhamento
E prega a maximização da comunicação e interação entre
equipes de desenvolvimento e operações, além da
automação da infraestrutura e a monitoração do software
entregue.
10. DevOps para Teste de Software
10
A automação da infraestrutura é,
basicamente, a utilização de uma
série de softwares para construir,
sob medida, o ambiente onde a
aplicação final será utilizada
As ferramentas podem ser dividas em Orquestradores,
Gerenciadores de Configuração e Bootstrap e
Provisionamento.
11. DevOps para Teste de Software
11
"Ferramentas que nos permitem executar
comandos e controlar nodes/instâncias de
nosso parque em tempo real. Algumas destas
são Fabric, Capistrano e Mcollective."
Orquestradores
Fonte: http://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal/
12. DevOps para Teste de Software
12
“Ferramentas que controlam estados de seu
sistema, ajudam a centralizar toda as
configurações e facilitam a administração e
criação de novos ambientes. Algumas delas
são Puppet, Chef, Cfegine e Salt."
Gerenciamento de configuração
Fonte: http://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal/
13. DevOps para Teste de Software
13
"Ferramentas que nos ajudam a instalar um
sistema operacional seja em uma máquina
física, seja em um máquina virtual, seja em
uma instância na nuvem, dentre elas temos
alguns provedores de CLOUD como AWS e
Rackspace que já oferecem isso nativamente,
existem também ferramentas como o Kickstart
e Cobbler que atuam neste segmento."
Bootstrap e Provisionamento
Fonte: http://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal/
14. DevOps para Teste de Software
14
Jenkins, Frameworks BDD, WebDriver, xUnit,
Flapjack, Visage, Collectd, Docker, Git,
Subversion, entre outras.
Outras ferramentas muito utilizadas
15. DevOps para Teste de Software
15
๏ Agilidade na preparação do ambiente para
testes, uma vez que o processo é automatizado
๏ Ambiente confiável
๏ Redução na dependência de outras áreas
para criação do ambiente de testes
A automação da infraestrutura traz
uma série de benefícios para os
testadores:
16. DevOps para Teste de Software
16
๏ Execução de testes na aplicação que foi
criada ou alterada
๏ Automação dos testes que serão executados
durante o ciclo de entrega automatizado
๏ Monitoração do uso da aplicação em
produção
No contexto de DevOps a equipe de
teste contribui em uma série de
fatores, entre eles:
17. DevOps para Teste de Software
17
Automação de testes e de
infraestrutura ganham uma enorme
relevância, trazendo aos testadores
um papel mais técnico, onde a
prática de codificação dos scripts é
uma atividade comum em seu dia a
dia
18. DevOps para Teste de Software
18
๏ Unidade
๏ Integração
๏ API
๏ Interface gráfica
๏ Performance
A automação dos testes aqui pode
ser feita sob diversos pontos de
vista, entre elas:
19. DevOps para Teste de Software
19
Uma vez automatizados, os testes
são executados durante o ciclo de
entrega
São eles que darão mais confiança na
entrega do software em produção, pois caso
surjam falhas, elas serão reveladas por estes
testes de forma quase imediata.