8. Integração Contínua - o que é?
“Prática de desenvolvimento de
software na qual os membros de um
time integram seu trabalho
frequentemente. Cada pessoa
integra pelo menos diariamente,
podendo haver múltiplas
integrações em um dia” -
Martin Fowler
10. Considerações
- Build a cada mudança no versionamento
- Peça chave de qualidade
- Automação de processos
- Esforço maior no começo
- Menor esforço com o tempo
- Menos dor de cabeça com integração no futuro
11. Por que fazer?
- Reduzir riscos
- Defeitos encontrados mais cedo
- Saúde do software mensurado
- Evita o “funcionava na minha máquina"
- Reduzir processos manuais repetitivos
- Diminui desgaste
- Permite foco em atividades de maior valor
12. Por que fazer?
- Gerar deploy a qualquer hora/lugar
- Build completo e deploy a qualquer momento
- Mais benefício para o cliente
- Aumenta a visibilidade do projeto pelo time
- Informações gerenciais (métricas)
- Tomadas de decisões efetivas
- Aumento da confiança do time
- Compilações, testes e integrações a cada mudança.
13. O que precisa?
- Conexão com um repositório de controle
de versão;
- Script de build;
- Mecanismo de feedback;
- Processo para integrar as mudanças no
código fonte (CI server)
17. Validação contínua: O que é?
“Certificação de que o sistema atende às
necessidades e expectativas do cliente,
continuamente”
18. Especificação por exemplo: o que é?
"Abordagem colaborativa de definição de
requisistos e testes funcionais por meio de
exemplos realistas ao invés de declarações
abstratas."
21. Servidor de CI: Jenkins
- Antigo Hudson
- Fácil de instalar
- java -jar jenkins.war
- Fácil de configurar
– Web GUI amigável
- Sistema de plugins flexível
- Plugin fácil de extender
- Builds distribuídos