Programa de Mestrado em Cincia da Computao IN
- Slides: 42
Programa de Mestrado em Ciência da Computação IN 1149 – Qualidade, Processos e Gestão Ambiente para Integração Contínua Rafael Vanderlei de Souza rvs@cin. ufpe. br 06/12/2008 Universidade Federal de Pernambuco
Agenda �Introdução �Ambiente �Prática de CI �Conclusões �Referências Universidade Federal de Pernambuco 2
Introdução Universidade Federal de Pernambuco 3
Definição “Integração contínua é uma prática de desenvolvimento de software onde os membros de uma equipe integram seu trabalho freqüentemente (pelo menos uma vez por dia). Cada integração passa por um processo de build automatizado (incluindo testes) para detectar erros de integração o mais cedo possível. ” Martin Fowler. Universidade Federal de Pernambuco 4
Objetivos � Aumentar a qualidade do software ◦ Testes automatizados ◦ Inspeção automatizada � Reduzir ◦ ◦ riscos do projeto Ter sempre um executável Descobrir e corrigir erros rapidamente Automatizar processos repetitivos e sujeitos a erros Ter visibilidade do projeto facilmente � Tornar a integração um “nonevent” ◦ Dedicar o tempo para tarefas mais importantes Universidade Federal de Pernambuco 5
Objetivos Se integrar fosse tão simples assim. . . Universidade Federal de Pernambuco 6
Visão Geral A mágica por trás do botão Integrate. . . Universidade Federal de Pernambuco 7
Visão Geral Processo típico de CI. . . Universidade Federal de Pernambuco 8
Ferramentas � Servidores de CI: ◦ Cruise Control, Apache Continuum, Lunt. Build, Hudson, Bamboo, Pulse, Gauntlet � Build: ◦ Maven, Ant, NAnt, Rake � Controle de Versão ◦ Subversion, CVS, Clear. Case, VSS, Star. Team � Banco de dados ◦ Oracle, SQL Server, Postgre. SQL, My. SQL, HSQLDB � Teste ◦ JUnit, NUnit, Db. Unit, Html. Unit, Selenium, Test. NG � Inspeção ◦ Checkstyle, Find. Bugs, PMD, Cobertura, EMMA, Fx. Cop � Feedback ◦ Ambient Device, Jabber, Gtalk, Email, SMS Universidade Federal de Pernambuco 9
Ambiente de CI Universidade Federal de Pernambuco 10
Subversion � Sistema de controle de versão projetado para resolver problemas existentes no CVS, como: ◦ Falta de versionamento de diretórios; ◦ Commits atômicos; ◦ Entre outros. � Neste ambiente, o SVN será o repositório de código que será observado pelo servidor de Integração Contínua. ◦ Sempre que houver uma mudança neste repositório, o servidor de CI irá gerar um novo build. Universidade Federal de Pernambuco 11
JUnit � Framework repetitíveis. para escrever testes unitários � Instância em Java da arquitetura x. Unit para frameworks de testes unitários. � Neste ambiente, usaremos JUnit para escrever, executar e reportar os resultados de testes unitários. Universidade Federal de Pernambuco 12
Cobertura � Ferramenta que executa uma análise estática do código Java em busca de trechos de código que não estão sendo testados. � Neste ambiente, o Cobertura será utilizado para reportar os percentuais de código testado, buscando melhorar a qualidade dos testes escritos. Universidade Federal de Pernambuco 13
Find. Bugs � Ferramenta que executa uma análise estática do código Java em busca de potenciais problemas críticos, como: ◦ Ocorrência garantida de Null. Pointer. Exception; ◦ Possível divisão por zero; ◦ Possível loop infinito. � Neste ambiente, o Find. Bugs será utilizado para reportar possíveis erros que podem não ter sido detectados durante a execução de testes unitários. Universidade Federal de Pernambuco 14
PMD � Ferramenta que executa uma análise estática do código Java em busca de problemas menores, como: ◦ Variáveis locais, atributos e métodos não utilizados; ◦ Expressões muito complicadas, como ifs e loops aninhados; ◦ Duplicação de código. � Neste ambiente, o PMD será utilizado para reportar ocorrências como as anteriores, visando o aumento da qualidade do código. Universidade Federal de Pernambuco 15
Maven � Ferramenta de projetos. de compreensão e gerenciamento � Gerencia dependências, geração de build e criação de relatórios e de documentação sobre o projeto. � Neste ambiente, toda a configuração para a geração do build está centralizada no Maven. Universidade Federal de Pernambuco 16
Hudson � Servidor de Integração Contínua que vêm sendo mais utilizado recentemente. Fonte: http: //www. wakaleo. com/polls/18 -what-continuous-integration-server-are-you-using-in 2008 Universidade Federal de Pernambuco 17
Hudson � Monitora a execução de tarefas repetíveis, como geração de build. � Permite agendar para gerar builds periodicamente ou apenas quando houver mudanças no repositório. � Permite fornecer feedback através de RSS, Email ou Instant Messaging � Possui gráficos que facilitam a visualização do status do projeto. Universidade Federal de Pernambuco 18
Prática. . . Universidade Federal de Pernambuco 19
Prática Universidade Federal de Pernambuco 20
Prática Universidade Federal de Pernambuco 21
Prática Universidade Federal de Pernambuco 22
Prática Universidade Federal de Pernambuco 23
Prática Universidade Federal de Pernambuco 24
Prática Universidade Federal de Pernambuco 25
Prática Universidade Federal de Pernambuco 26
Prática Universidade Federal de Pernambuco 27
Prática Universidade Federal de Pernambuco 28
Prática Universidade Federal de Pernambuco 29
Prática Universidade Federal de Pernambuco 30
Prática Universidade Federal de Pernambuco 31
Prática Universidade Federal de Pernambuco 32
Prática Universidade Federal de Pernambuco 33
Prática Universidade Federal de Pernambuco 34
Conclusões Universidade Federal de Pernambuco 35
Conclusões � Com um ambiente de Integração Contínua, podemos deixar de nos preocuparmos com a geração manual de build. � Reduzimos os recursos que antes estavam alocados para realizar tarefas manuais e repetitivas. � Reduzimos os riscos associados à execução de tarefas repetitivas e sujeitas as erros. Universidade Federal de Pernambuco 36
Conclusões � Aumentamos a qualidade do produto, utilizando ferramentas que automatizaram a execução de testes e a inspeção de código. � Reduzimos o tempo decorrido entre a detecção e a correção de falhas, com o rápido feedback gerado após a ocorrência de uma falha. Universidade Federal de Pernambuco 37
Referências Universidade Federal de Pernambuco 38
Referências � Fowler, Martin. Continuous Integration. ◦ Disponível em http: //martinfowler. com/articles/continuous. Integration. html. ◦ Último acesso em 30 de novembro de 2008. Duvall, Paul. Continuous Integration – Improving Software Quality and Reducing Risk. Addison-Wesley, 2007. � Integração Contínua. Rafael Vanderlei – Apresentação de Seminário da disciplina de Qualidade do Mestrado no Cin/UFPE, 2008. 2. � Hudson Home � ◦ Disponível em https: //hudson. dev. java. net/. ◦ Último acesso em 30 de novembro de 2008. Universidade Federal de Pernambuco 39
Referências � Subversion Home ◦ Disponível em http: //subversion. tigris. org. ◦ Último acesso em 30 de novembro de 2008. � Maven Home ◦ Disponível em http: //maven. apache. org/. ◦ Último acesso em 30 de novembro de 2008. � Findbugs Home ◦ Disponível em http: //findbugs. sourceforge. net/. ◦ Último acesso em 30 de novembro de 2008. � PMD Home ◦ Disponível em http: //pmd. sourceforge. net/. ◦ Último acesso em 30 de novembro de 2008. Universidade Federal de Pernambuco 40
Referências � JUnit Home ◦ Disponível em http: //www. junit. org/. ◦ Último acesso em 30 de novembro de 2008. � Cobertura Home ◦ Disponível em http: //cobertura. sourceforge. net/. ◦ Último acesso em 30 de novembro de 2008. � Jabber Home ◦ Disponível em http: //www. jabber. org/web/Main_Page. ◦ Último acesso em 30 de novembro de 2008. Universidade Federal de Pernambuco 41
Programa de Mestrado em Ciência da Computação IN 1149 – Qualidade, Processos e Gestão Ambiente para Integração Contínua Obrigado! Rafael Vanderlei de Souza rvs@cin. ufpe. br Universidade Federal de Pernambuco
- A cincia
- Passei no mestrado e agora
- Economia internacional e estudos europeus
- Direito forense e arbitragem
- Agradecimento capes artigo
- Mestrado utfpr londrina
- Slidetodoc.com
- Programa recreativo ejemplo
- Estructura basica de un programa en c
- Programa dfd
- Halimbawa ng banyagang salita
- Bienvenidos programa
- A aula de zumba mistura varios ritmos
- Programa resea
- Dsd programa
- Que es un plan programa y proyecto
- Como se hacen los programas de radio
- Programa de orden y aseo
- Programa de relacionamento
- Programa de saneamiento fiscal y financiero
- Programa de seguridad electrica
- Estructura de un programa en c
- Opste osnove predskolskog programa
- Programa ahora turabo
- Programa crecer felices en familia
- Programas de ajuste estructural
- Rol del tens en aps
- Pausas activas visuales arl sura
- 98
- Ciclo stop seguridad industrial
- Programa de asignación familiar (praf) tegucigalpa fotos
- Programa habilidades digitales para todos
- Kinatawan ng hari at pinakamataas na pinuno ng kolonya
- Olweus programa
- Programa familias saludables
- Edificar programa
- Ikki programa
- Programa interno de protección civil escolar
- Exploit.in combo list
- Programa mi abogado caj bio bio
- Rutinas estandarizadas
- Mnt programa