praticas_ageis_ferramentas
DESCRIPTION
asTRANSCRIPT
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Práticas Ágeis (IC, TDD, Refactoring)
Ferramentas: Jenkins, Artifactory, Sonar e Maven
Ferramentas de testes: Selenium, Jmeter
Subversion
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Acesse nosso site em
WWW.DOMINANDOTI.COM.BR
Curta o Dominando TI no
e receba nossas dicas sobre concursos!
Cursos Turmas em Brasília, na sua cidade, e cursos online
Livros Edições publicadas, lançamentos e promoções
Fórum Interação direta entre estudantes e com os professores
Simulados Questões inéditas, ranking de notas e correções em vídeo
Blog Dicas e macetes de estudo, indicações de bibliografia, etc.
Materiais Versões atualizadas de notas de aula e listas de exercícios
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Maven
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Maven
Padroniza e simplifica o processo de construção (build) de um projeto de software.
trata compilação, distribuição, documentação, gerenciamento de dependências, gerenciamento de configuração (SCM)
Convention over Configuration
4
Item Padrão
Código fonte /src/main/java
Recursos (arquivos conf.) /src/main/resources
Testes /src/test
Código compilado /target/classes
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
POM – Project Object Model (pom.xml)
Contém metadados do projeto
Super POM
Todos os POMs herdam de algum outro
5
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.dominandoti</groupId>
<artifactId>projetocurso-api</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies/>
<build/>
</project>
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Características
Ciclos de vida
Sequência de fases que definem a ordem que goals são executados.
Ciclos de vida: clean, default (build) e site
Plugins
Profiles
Configurações que sobrescrevem comportamentos padrão do Maven.
6 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Repositórios
Trata-se do local onde são armazenados os artefatos (jars, plugins) utilizados pelo maven.
Há três tipos: local, central e remoto
7
local interno - proxy
(opcional) central
remoto
remoto
c:\users\mpacote\.m2 http://repo1.maven.org/maven2/
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Repositórios - Artifactory
Funciona como um proxy entre o cliente maven e o mundo externo.
Também funciona como repositório interno de bibliotecas.
Aplicação Java EE padrão. Pode ser implantada no Tomcat, WebSphere, Jboss, Glassfish, Jetty, Resin.
8 Professor Marcelo Pacote – [email protected]
Figura extraída de: http://www.jfrog.com/home/v_artifactory_opensource_technology
W W W. D OMI NAND OTI .COM.B R
Gerenciamento de Dependências
Descoberta de dependências transitivas
9
Há dependência transitiva entre A e C
Escopo Descrição
compile (default) indica que a dependência está disponível no classpath do
projeto
provided dependência provida pelo JDK ou Container em tempo de execução.
test dependência utilizada apenas por testes (compilação e execução)
runtime Não é necessário para compilação, apenas para execução.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Práticas Ágeis
IC, TDD e Refactoring +
(Jenkins, Sonar e JUnit)
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Integração Contínua - Conceito
Abordagem para manter todo código integrado
Implantar software a qualquer momento
Software tecnologicamente pronto para o lançamento, ainda que não esteja funcionalmente concluído.
Ciclos curtos de integração
Intervalos de algumas horas tornam o processo menos doloroso.
Professor Marcelo Pacote – [email protected] 11
W W W. D OMI NAND OTI .COM.B R
Integração Contínua
Reduzir escopo de possíveis erros
Apenas o código incluído desde o últimobuild pode ter inserido erro no software.
Evita caçar bugs gerados por outros ou culpar a equipe por erros gerados pelo desenvolvedor
“Estava funcionando em minha máquina!”
A cada integração
Gerar um CD
Armazenar em um repositório
Implantar em um servidor
12 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Integração Contínua - Roteiro
13
1.
Desenvolvimento + compilação+ testes unitários
2. Obter token
3. Update
4. Compilação + testes unitários
5. Commit
6. update
7. Compilação e testes
Servidor de IC
8. [Opciona]Deploy
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Integração Contínua - servidores
CruiseControl (open-source)
Hudson X Jenkins
Team Foundation (comercial – Micro$oft)
TeamCity (comecial - Jetbrains)
Rational Team Concert (comercial)
AntHill (comercial)
Continuum (open-source – Apache Foundation)
Bamboo (comercial)
LuntBuild (open-source) X QuickBuild
14 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Jenkins
Ferramenta de interação contínua
Open source.
Escrita em Java (executa em container de servlets)
Fork do projeto Hudson
Suporte a diversas ferramentas de controle de versão: CVS, SVN, Git, Mercurial, ClearCase.
Se integra com Maven e pode executar scripts ant e shell scripts.
Recurso cron-like para agendamento de execução de tarefas.
15 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Integração Contínua - Exemplo
16 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Integração Contínua – considerações
Ten-minute build
Integração em vários estágios
Necessário: compilação, testes de unidade, integração
Secundário: testes de desempenho, carga e estabilidade
Elementos essenciais para IC
Sistema de controle de versão
Construção em dez minutos
Por que um servidor de integração contínua?
Prova que o sistema funciona em qualquer ambiente
Exemplo: commit de um arquivo é esquecido
17 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(TJ-PI/2009/FCC/Analista/An. Sistemas)
XP (eXtreme Programming) é uma metodologia ágil para equipes pequenas e médias que desenvolverão software com requisitos vagos e em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software. Para aplicar os valores e princípios durante o desenvolvimento de software, a XP propõe uma série de práticas, sendo uma delas: sempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão atual do sistema a fim de evitar o aumento da possibilidade de conflitos e da possibilidade de erros no código fonte. Tal prática é denominada
A - Refatoração. B - Integração Contínua.
C - Desenvolvimento Orientado a Testes.
D - Ritmo Sustentável. E - Time Coeso.
18 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Anac/2013/Cespe/Analista/105)
( ) A integração contínua é uma técnica de alto impacto no levantamento de requisitos.
19 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Sonar
Plataforma para gerenciamento de qualidade de código
Esta ferramenta abrange 7 eixos de qualidade de código: arquitetura e design, duplicidade, testes unitários, complexidade, erros em potencial, regras de codificação e comentários.
Baseado em plugins
Java é a linguagem base, mas há plugins para outras linguagens.
Permite a configuração de alertas, regras, limites.
Licença LGPL 3
20 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Desenvolvimento Orientado a Testes
TDD
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Motivação
Trata-se de um ciclo rápido de testes, codificação e refatoração.
Código de testes é escrito antes do código de produção.
Os testes são escritos em função de uma interface pública
Foco no comportamento e não na implementação
22 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Passos para utilização
1. Pense
Pequenos incrementos por vez
2. Vermelho (falha)
Escreva um teste que falha
3. Verde (sucesso)
Escreva código para passar nos testes
4. Refatore
Revise e código e faça melhorias
5. Repita
Reinicie o ciclo. O segredo são os pequenos incrementos.
23
Novo teste
Falha
Sucesso
Refatore
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo
Tarefa:
Cálculo de Fatorial
Exemplos:
0! = 1 1! = 1
2! = 2 x 1 = 2 3! = 3 x 2 x 1 = 6
JUnit
assertEquals(“Teste”,”test”); //falha
assertEquals(32, 32); //sucesso
24 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo (passos 1 e 2)
25
0! é 1
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo (passo 3, 4 e 5)
26 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo (segunda iteração)
27
1! é 1
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo (terceira iteração) (1/2)
28
2! é 2
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo (terceira iteração) (2/2)
29
Corrigir teste com erro
“limpar” o código
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo (quarta iteração)
30
Escrever o teste
Corrigir o teste com erro
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Exemplo (quinta iteração)
31
Teste
Corrigir o teste com erro
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Ferramentas de Testes
xUnit
nome genérico para qualquer estrutura de testes automáticos unitários.
Junit (java)
Nunit (.net)
TestNG
32 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Teste de unidade
Os testes devem ser rápidos
Menos de 10 segundos
Requisitos
Não se comunicam com bases de dados
Não se comunicam por meio de uma rede
Não acessa sistema de arquivos
Não é necessário configurar ambiente para executá-los
Se não cumprem estes requisitos, são testes de integração.
33 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
TDD – Objetos falsos (Mock Objects)
Mock Objects isolam classes para testes de unidades
Evitam comunicação demorada com bases de dados, web services, sistemas de arquivos.
Adicionam complexidade ao teste
Exemplos de ferramentas
Mockito
EasyMock
JMock
34 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Basa/2012/Cespe/An. Sistemas)
( ) Metodologias de desenvolvimento XP contam com o desenvolvimento orientado a testes, que engloba duas etapas: escrever um teste automatizado e desenvolver um código adequado o suficiente para ter sucesso nesse teste.
35 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Serpro/2013/Cespe/Desv./75)
( ) Usando-se o TDD, as funcionalidades devem estar completas e da forma como serão apresentadas aos seus usuários para que possam ser testadas e consideradas corretas.
36 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(TRE/SP/2012/FCC/Prog. Sistemas)
Sobre desenvolvimento baseado em testes, considere:
I. Este processo requer que desenvolvedores criem unidades de testes para definir os requisitos que um determinado código deve conter. Estes testes devem ser criados assim que uma pequena parte funcional do código esteja disponível.
II. Frequentemente são utilizados frameworks de teste pelos desenvolvedores como o xUnit ou jUnit para a criação de casos de teste automatizados.
III. É importante que o código escrito seja apenas projetado para passar o teste específico. Nenhuma outra funcionalidade deve ser prevista ou permitida fora do escopo do teste em nenhum estágio do processo.
Está correto o que consta em
A - I, apenas. B - II, apenas. C - I e III, apenas.
D - II e III, apenas. E - I, II e III.
37 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(MPOG/2013/Cespe/TI/73)
( ) Ao realizar o TDD (test-driven development), o programador é conduzido a pensar em decisões de design antes de pensar em código de implementação, o que cria um maior acoplamento, uma vez que seu objetivo é pensar na lógica e nas responsabilidades de cada classe.
38 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Bacen/2013/Cespe/Desv./96)
( ) O JUnit e um framework que permite realizar testes unitários de códigos Java, herdando algumas características da própria linguagem. Na versão 4.11, ele permite, entre outros recursos, mudar a ordem de testes, criar testes parametrizados, executar testes de exceção e testes temporizados por meio da palavra-chave timeout.
39 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Refatoração
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração
Refatoração: alteração feita na estrutura interna do software para torná-lo mais fácil de ser entendido e menos custoso de ser modificado sem alterar seu comportamento observável.
O que o software faz permanece inalterado. Apenas o como é modificado.
Identificar melhorias por meio dos “cheiros”
do código
Sintomas de um design ruim
Cada refatoração é como fazer um movimento com cubo mágico.
41 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração
Vantagens:
Melhora o projeto de software.
Torna o software mais fácil de entender.
Ajuda a encontrar falhas.
Momento:
Quando acrescentar funções.
Quando corrigir uma falha.
Quando revisar código.
42 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(PEFOCE/CE /2012/Cespe/Perito)
( ) Na manutenção preventiva por refatoração em determinado software, novas funcionalidades devem ser adicionadas para diminuir sua degradação.
43 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Petrobras/2007/Cespe/An. Sistemas)
( ) Um exemplo de refatoração, técnica que pode ser empregada para melhorar o projeto de um software, é organizar as classes em hierarquias visando usar polimorfismo em vez de enunciados condicionais para escolher entre comportamentos que dependam dos tipos dos objetos.
44 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Inpi/2013/Cespe/Desv./89 e 90)
A documentação da arquitetura de software de sistema facilita a comunicação entre os participantes do desenvolvimento do sistema. A respeito das práticas de arquitetura de software, julgue os itens a seguir.
( ) A refatoração objetiva tornar o código mais claro e limpo.
( ) Ao refatorar um código, altera-se a funcionalidade do sistema.
45 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Anac/2013/Cespe/Analista/101)
( ) A refatoração consiste na mudança do código-fonte do software, de modo a melhorar sua estrutura interna, sem que se altere o seu comportamento externo.
46 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
(Inmetro/2009/Cespe/Desv/68)
( ) As técnicas de refatoração de código compreendem, entre outras, a remoção de número mágicos e a introdução de padrões de desenho.
47 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R 48
(Petro/2010/Cesgranrio/Proc. Negócio)
É comum, na Engenharia de Software, o uso de ferramentas de software que auxiliam na realização de diversas atividades do desenvolvimento. Nesse contexto, ferramentas de
(A) refatoração auxiliam a modificação de uma região do código-fonte de um sistema, com o objetivo de alterar comportamento externo deste último.
(B) análise estática do código permitem obter métricas de qualidade de um produto de software, tais como o grau de dependência entre seus componentes.
(C) integração contínua são destinadas a automatizar a implantação do produto de software no ambiente de produção.
(D) engenharia reversa são destinadas ao controle das diversas versões de um produto de software.
(E) cobertura de código determinam em que grau o código-fonte de um sistema corresponde aos seus requisitos não funcionais.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – “Cheiros”
Alteração divergente (divergent change):
“Uma classe é frequentemente alterada de diferentes maneiras por diferentes razões”.
Exemplo: necessidade de alterar três métodos quando da inclusão de um novo banco de dados.
Refatoração: extrair classe
Cirurgia com rifle ou cirurgia imposta (shotgun surgery):
Oposto da alteração divergente.
Pequenas alterações em muitas classes.
Refatoração: mover método, mover campo e internalizar classe.
49 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Extrair classe
50
Criar uma nova classe e mover atributos e métodos relevantes para ela.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Mover método
51
Criar novo método com funcionalidade similar na classe que mais a utiliza.
A refatoração mover campo é análoga.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Internalizar Classe
52
É o contrário de Extrair Classe
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – “Cheiros”
Obsessão Primitiva (Primitive Obsession):
Exemplo: um decimal representando moeda ou string representando CEP.
Solução é encapsular conceito em uma classe
Refatoração: Substituir Atributo por Objeto, introduzir Objeto Parâmetro, Extrair Classe, entre outros.
Agrupamento de Dados (Data Clumps):
Vários primitivos representam um conceito como um grupo
Exemplo: várias strings poderiam representar um endereço. Em vez de estarem encapsuladas em uma classe, os dados ficam agrupados.
Refatoração: Extrair Classe, Introduzir Objeto Parâmetro e Preservar o Objeto Inteiro
53 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Preservar o Objeto Inteiro
54
Várias informações são recuperadas de um objeto e repassadas como parâmetro em uma chamada de método.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – “Cheiros”
Classes de Dados (Data Class):
Erro comum: dados e código em classes separadas.
Uma classe apenas com métodos get/set é uma Classe de Dados.
Refatoração: Mover Método, Encapsular Campo e Encapsular Coleção.
Comentários (Comments):
Pode indicar código mal estruturado
Refatoração: Extrair Método, Renomear Método e Introduzir Asserções
55 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Encapsular Coleção
56
Um método retorna uma coleção. Torná-la readonly e fornecer métodos de inclusão/remoção.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – “Cheiros”
Código duplicado:
Resultado de copy and paste programming.
Principal problema gerado é a dificuldade de manutenção: alteração em vários pontos de código.
Também pode ocorrer por duplicação de funcionalidade
Refatoração: extrair classe, extrair método, substituir algoritmo (e outros ...)
Lista de parâmetros longa
Baixa legibilidade
Refatoração: Substituir parâmetros por método, preservar objeto inteiro e introduzir objeto parâmetro
57 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Substituir Algoritmo
58
Alterar o corpo de um método com um novo algoritmo.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Introduzir objeto parâmetro
59
Substituir grupos de parâmetros por um objeto.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – Extrair método
60
Transformar um fragmento de código em um método cujo nome explica seu propósito.
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração – “Cheiros”
Inveja de dados (Feature Envy):
Ocorre quando um método faz muitas chamadas a outras classes para obter dados ou funcionalidade.
Refatoração: extrair método, mover método e mover campo
Classes grandes
Classes com excesso de responsabilidades
Tipicamente contém grande número de atributos
Refatoração: extrair classe, extrair subclasse, extrair interface
61 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração
Métodos longos
Comandos Switch:
Use polimorfismo.
Hierarquias paralelas de herança.
Ao criar uma subclasse em uma hierarquia é obrigatório a criação de outra subclasse em outra hierarquia.
Classe ociosa.
Generalidade especulativa.
Atributo temporário.
Cadeia de mensagens .
62 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Refatoração
Intermediário:
Um objeto recorre a outro objeto para responder a uma requisição.
Intimidade inadequada.
Classes alternativas com interfaces diferentes:
Métodos que façam a mesma coisa, mas que tenham assinaturas diferentes.
Biblioteca de classes incompleta.
Introduzir um método em uma classe da biblioteca.
Herança recusada:
Métodos e atributos herdados ficam sem uso
63 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Um programador inexperiente gerou, em determinado sistema, código-fonte de baixa qualidade que foi analisado e reprovado por ferramentas automatizadas de auditoria de código. Considerando-se que existem muitos códigos duplicados nesse sistema, que técnicas de refatoração são indicadas nessa situação?
(A) Introduce Parameter Object e Move Method.
(B) Duplicate Observed Data e Replace Inheritance with Delegation.
(C) Move Method e Move Field.
(D) Extract Method e Substitute Algorithm.
(E) Remove Double Negative e Introduce Parameter Object.
64
(Bacen/2010/Cesgranrio/Desv )
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Gabarito
(TJ-PI/2009/FCC/Analista/An. Sistemas) B
(Anac/2013/Cespe/Analista/105) errado
(Basa/2012/Cespe/An. Sistemas) certo
(Serpro/2013/Cespe/Desv./75) errado
(TRE/SP/2012/FCC/Prog. Sistemas) D
(MPOG/2013/Cespe/TI/73) errado
(Bacen/2013/Cespe/Desv./96) certo
(PEFOCE/CE /2012/Cespe/Perito) errado
(Petrobras/2007/Cespe/An. Sistemas) certo
(Inpi/2013/Cespe/Desv./89 e 90) certo/errado
(Anac/2013/Cespe/Analista/101) certo
(Inmetro/2009/Cespe/Analista/Desv/68) certo
(Petro/2010/Cesgranrio/Proc. Negócio) B
(Bacen/2010/Cesgranrio/Desv ) D
65 Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Gerência de Configuração
(Subversion)
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Gerência de Configuração e controle de versões
Conjunto de atividades de apoio ao desenvolvimento que permitem que mudanças sejam absorvidas de maneira controlada.
Controle de versão
Recuperar versões anteriores
Auditar modificações realizadas (quem, quando e o quê)
Permitir desenvolvimento em paralelo
Prevenir conflito entre desenvolvedores
W W W. D OMI NAND OTI .COM.B R
Subversion
Sistema de controle de versões
Trabalha com qualquer tipo de arquivo (e não apenas códigos –fonte)
Características
Histórico de mudanças em arquivos e diretórios
Controle de acesso
Registro da data, autor e motivo de uma alteração
W W W. D OMI NAND OTI .COM.B R
Subversion – trunk, tags, branches
Branch: linha independente desenvolvimento.
Tag: label do repositório em algum momento do tempo.
W W W. D OMI NAND OTI .COM.B R
Subversion – revisões
Cada transação
que altera o
repositório incrementa
o número da revisão.
W W W. D OMI NAND OTI .COM.B R
Subversion – workflow básico
checkout
(desenvolvimento e testes)
update
commit
servidor cliente
(resolução de conflitos)
W W W. D OMI NAND OTI .COM.B R WWW.DOMINANDOTI .COM.BR
Ferramentas de teste
JMeter e Selenium
Professor Marcelo Pacote – [email protected]
W W W. D OMI NAND OTI .COM.B R
Jmeter
Trata-se de ferramenta open source de testes de carga e estresse automatizados para aplicações WEB.
Suporta diversos tipos de serviço:
FTP, HTTP, HTTPS
JDBC
Objetos Java
SOAP
LDAP
JUnit
JMS
W W W. D OMI NAND OTI .COM.B R
Jmeter - conceitos e características (1/2)
TestPlan
parâmetros ou comportamentos comuns a todos os testes
ThreadGroup
representa os usuários virtuais que simulam a navegação do seu site ou aplicação WEB.
Campos
Number of Threads : número de usuários virtuais
Ramp-Up Period: frequência/tempo de lançamento dos usuários virtuais
Loop Count: quantas vezes o teste será repetido
W W W. D OMI NAND OTI .COM.B R
Jmeter - conceitos e características (2/2)
Permite a criação de asserções para validar os requisitos de performance e funcionalidade
Permite a utilização de pré-processadores e pós-processadores para modificar o comportamento das requisições
Os testes podem ser escritos manualmente ou gravados automaticamente por meio de um Proxy Server
W W W. D OMI NAND OTI .COM.B R
Selenium
Trata-se de framework para realização de testes funcionais em aplicações web.
Componentes
IDE
Plugin firefox para gravação de testes
WebDriver
API Java para escrita dos testes funcionais que enviam comandos para o navegador
Grid
Permite a execução de testes em navegadores executando em máquinas remotas.