A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Universidade Federal de Pernambuco Ambiente para Integração Contínua Rafael Vanderlei de Souza 06/12/2008 Programa de Mestrado em Ciência.

Apresentações semelhantes


Apresentação em tema: "Universidade Federal de Pernambuco Ambiente para Integração Contínua Rafael Vanderlei de Souza 06/12/2008 Programa de Mestrado em Ciência."— Transcrição da apresentação:

1 Universidade Federal de Pernambuco Ambiente para Integração Contínua Rafael Vanderlei de Souza rvs@cin.ufpe.br 06/12/2008 Programa de Mestrado em Ciência da Computação IN1149 – Qualidade, Processos e Gestão

2 Universidade Federal de Pernambuco Agenda Introdução Ambiente de CI Prática Conclusões Referências 2

3 Universidade Federal de Pernambuco Introdução 3

4 Universidade Federal de Pernambuco 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. 4

5 Universidade Federal de Pernambuco 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 5

6 Universidade Federal de Pernambuco Objetivos Se integrar fosse tão simples assim... 6

7 Universidade Federal de Pernambuco Visão Geral 7 A mágica por trás do botão Integrate...

8 Universidade Federal de Pernambuco Visão Geral 8 Processo típico de CI...

9 Universidade Federal de Pernambuco Ferramentas Servidores de CI: ◦ Cruise Control, Apache Continuum, LuntBuild, Hudson, Bamboo, Pulse, Gauntlet Build: ◦ Maven, Ant, NAnt, Rake Controle de Versão ◦ Subversion, CVS, ClearCase, VSS, StarTeam Banco de dados ◦ Oracle, SQL Server, PostgreSQL, MySQL, HSQLDB Teste ◦ JUnit, NUnit, DbUnit, HtmlUnit, Selenium, TestNG Inspeção ◦ Checkstyle, FindBugs, PMD, Cobertura, EMMA, FxCop Feedback ◦ Ambient Device, Jabber, Gtalk, Email, SMS 9

10 Universidade Federal de Pernambuco Ambiente de CI 10

11 Universidade Federal de Pernambuco 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. 11

12 Universidade Federal de Pernambuco JUnit Framework para escrever testes unitários repetitíveis. Instância em Java da arquitetura xUnit para frameworks de testes unitários. Neste ambiente, usaremos JUnit para escrever, executar e reportar os resultados de testes unitários. 12

13 Universidade Federal de Pernambuco 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. 13

14 Universidade Federal de Pernambuco FindBugs Ferramenta que executa uma análise estática do código Java em busca de potenciais problemas críticos, como: ◦ Ocorrência garantida de NullPointerException; ◦ Possível divisão por zero; ◦ Possível loop infinito. Neste ambiente, o FindBugs será utilizado para reportar possíveis erros que podem não ter sido detectados durante a execução de testes unitários. 14

15 Universidade Federal de Pernambuco 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. 15

16 Universidade Federal de Pernambuco Maven Ferramenta de compreensão e gerenciamento de projetos. 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. 16

17 Universidade Federal de Pernambuco Hudson Servidor de Integração Contínua que vêm sendo mais utilizado recentemente. 17 Fonte: http://www.wakaleo.com/polls/18-what-continuous-integration-server-are-you-using-in-2008 http://www.wakaleo.com/polls/18-what-continuous-integration-server-are-you-using-in-2008

18 Universidade Federal de Pernambuco 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. 18

19 Universidade Federal de Pernambuco Prática... 19

20 Universidade Federal de Pernambuco Prática 20

21 Universidade Federal de Pernambuco Prática 21

22 Universidade Federal de Pernambuco Prática 22

23 Universidade Federal de Pernambuco Prática 23

24 Universidade Federal de Pernambuco Prática 24

25 Universidade Federal de Pernambuco Prática 25

26 Universidade Federal de Pernambuco Prática 26

27 Universidade Federal de Pernambuco Prática 27

28 Universidade Federal de Pernambuco Prática 28

29 Universidade Federal de Pernambuco Prática 29

30 Universidade Federal de Pernambuco Prática 30

31 Universidade Federal de Pernambuco Prática 31

32 Universidade Federal de Pernambuco Prática 32

33 Universidade Federal de Pernambuco Prática 33

34 Universidade Federal de Pernambuco Prática 34

35 Universidade Federal de Pernambuco Conclusões 35

36 Universidade Federal de Pernambuco 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. 36

37 Universidade Federal de Pernambuco 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. 37

38 Universidade Federal de Pernambuco Referências 38

39 Universidade Federal de Pernambuco Referências Fowler, Martin. Continuous Integration. ◦ Disponível em http://martinfowler.com/articles/continuousIntegration.html. http://martinfowler.com/articles/continuousIntegration.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/. https://hudson.dev.java.net/ ◦ Último acesso em 30 de novembro de 2008. 39

40 Universidade Federal de Pernambuco Referências Subversion Home ◦ Disponível em http:// subversion.tigris.org.http:// subversion.tigris.org ◦ Último acesso em 30 de novembro de 2008. Maven Home ◦ Disponível em http://maven.apache.org/. http://maven.apache.org/ ◦ Último acesso em 30 de novembro de 2008. Findbugs Home ◦ Disponível em http://findbugs.sourceforge.net/. http://findbugs.sourceforge.net/ ◦ Último acesso em 30 de novembro de 2008. PMD Home ◦ Disponível em http://pmd.sourceforge.net/. http://pmd.sourceforge.net/ ◦ Último acesso em 30 de novembro de 2008. 40

41 Universidade Federal de Pernambuco Referências JUnit Home ◦ Disponível em http://www.junit.org/. http://www.junit.org/ ◦ Último acesso em 30 de novembro de 2008. Cobertura Home ◦ Disponível em http://cobertura.sourceforge.net/. http://cobertura.sourceforge.net/ ◦ Último acesso em 30 de novembro de 2008. Jabber Home ◦ Disponível em http://www.jabber.org/. http://www.jabber.org/ ◦ Último acesso em 30 de novembro de 2008. 41

42 Universidade Federal de Pernambuco Ambiente para Integração Contínua Obrigado! Rafael Vanderlei de Souza rvs@cin.ufpe.br Programa de Mestrado em Ciência da Computação IN1149 – Qualidade, Processos e Gestão


Carregar ppt "Universidade Federal de Pernambuco Ambiente para Integração Contínua Rafael Vanderlei de Souza 06/12/2008 Programa de Mestrado em Ciência."

Apresentações semelhantes


Anúncios Google