Java Imersão em Testes
O que é?
Trata-se de um serviço pré-formatado de consultoria, para empresas
que adotam a tecnologia Java, preparando um sistema piloto da empresa
para a automação de diversos tipos de teste: funcional de interface
usuário, unitário e de desempenho, fornecendo assim um ponto de
partida para a implantação de procedimentos de teste.
Como funciona?
Durante um prazo pré-estabelecido, um consultor experiente em
arquitetura Java, teste de software e metodologia de desenvolvimento,
implanta em conjunto com a equipe do cliente a infraestrutura necessária
para os processos de integração contínua com teste automatizado.
Todas as atividades são feitas colaborativamente com membros da
equipe, permitindo uma transferência de conhecimento efetiva
para a implantação de processos de teste.
Uma grande vantagem deste formato é que todas as configurações e
detalhes de implementação ocorrem no ambiente real utilizado pelo
time de desenvolvimento, queimando a etapa de adaptação das
tecnologias para o ambiente específico.
O que será entregue?
Ao término dos serviços, o cliente terá uma base para implantação de
um ambiente de testes adequado ao seu core business, definida por
especialistas da Globalcode que trabalham há anos no mercado de
desenvolvimento de software, com ênfase em metodologias e
ferramentas para teste de software.
Além de minimizar os riscos tecnológicos, a produtividade ficará
otimizada o cliente não dispenderá tempo excessivo pesquisando sobre
tendências, detalhes de ferramentas e boas práticas de teste no
desenvolvimento de aplicações Java.
|
|
Veja abaixo, os entregáveis deste serviço:
|
|
|
|
|
|
1. Workshop Inicial
- Esta introdução é ministrada em sala de aula, com projetor, para
os profissionais da equipe de desenvolvimento, para o responsável
pela infraestrutura e para o responsável pela gestão. A comunicação
é de duas vias. De um lado, o consultor expõe a teoria de testes
de software sob uma perspectiva ágil, as características das
ferramentas de automação e a dinâmica proposta para as atividades
seguintes. Do outro lado, há o aspecto de oficina, que ajuda o
consultor a entender melhor o ambiente da empresa, podendo
debater a aplicabilidade de uma ou outra ferramenta no contexto
da equipe.
|
|
|
2. Implantação do ambiente test-in-a-box
- O ambiente test-in-a-box é a implantação de um PC virtual dentro
de um dos computadores do cliente, que fornece o ambiente
pré-configurado de um servidor de testes automatizados com
integração contínua. Esta implantação é feita em conjunto
com um responsável pela infraestrutura do cliente.
- Este ambiente permite suportar as outras atividades da imersão e
a posterior continuação das atividades de teste automatizado na
equipe, havendo a passagem de conhecimento on-the-job e a documentação
adequada para o responsável pela infraestrutura na organização.
As ferramentas incluidas são fornecidas sob licença open-source
e não possuem restrições de uso para qualquer tipo de operação.
|
|
|
3. Adequação parcial do projeto para teste automatizado
- A implantação de procedimentos de teste automatizado não assistidos
requer adaptações aos arquivos de projeto. Isto permite também um
melhor controle dos processos de implantação do software sendo
desenvolvido, uniformizando a implantação em ambientes de desenvolvimento,
homologação e produção.
- Todo este trabalho é feito pelo consultor em colaboração com o líder
técnico e/ou arquiteto da equipe. Como o tempo necessário para migrar
a base de código varia de acordo com as características de cada projeto,
estabelece-se um periodo fixo (timebox) em que o projeto é parcialmente
migrado para o novo formato, decidindo-se em conjunto com o cliente o
escopo mais relevante dentro da restrição de tempo estabelecida.
|
|
|
4. Escrita de conjunto inicial de testes unitários
- Nesta etapa, o consultor realizará uma atividade de mentoring para os
desenvolvedores, que implantarão um conjunto de testes unitários
automatizados baseados em JUnit. O foco é tratar dos casos que dificultam
a testabilidade das classes: o mentoring inclui a utilização de dublês
de teste (mocks e similares) para este fim.
- O resultado desta atividade é um conjunto inicial de testes unitários
executando no processo automatizado de construção do software. Estes
testes fornecem exemplos concretos, no ambiente real de desenvolvimento,
para apoiar a implantação posterior de um conjunto abrangente de testes
unitários.
|
|
|
5. Escrita de conjunto inicial de testes de interface web
- Nesta etapa, o consultor treinará e colaborará com um membro da equipe
responsável por testes, que deve ter conhecimento de programação em Java,
para gerar um conjunto inicial de testes de interface web baseados em
ferramentas da família Selenium, incluindo programação com lógica de
controle de fluxo.
- O resultado desta atividade é um conjunto inicial de testes funcionais
de interface usuário web, integradas ao processo automatizado de
build, e no contexto específico do projeto.
|
|
|
6. Escrita de conjunto inicial de testes de regras de negócio
- Um especialista na lógica do domínio será mentorizado pelo consultor.
Dependendo da equipe, poderá ser um analista de negócio, um analista
de sistemas ou um usuário final. Será necessária também a participação
de um profissional técnico, que fará a ponte com a programação em Java.
- Testes referentes à lógica do negócio serão especificados e automatizados
com o uso da ferramenta FitNesse, amigável a usuários não técnicos.
No entanto, é necessário que o desenvolvedor escreva classes específicas
que adaptam a aplicação para poder ser testada automáticamente.
|
|
|
7. Escrita de conjunto inicial de testes de desempenho (08 horas)
- Esta atividade visa familiarizar o responsável pelos testes de
desempenho com a ferramenta open source JMeter, e fornecer subsídio
para a montagem de roteiros de teste de desempenho e a análise
crítica de seus resultados. São feitas simulações com poucos
usuários, dado que para um teste de desempenho mais realista,
seria necessária a montagem de um ambiente mais controlado e
específico de cada projeto. Os scripts gerados, no entanto,
serão aptos para reaproveitamento posterior.
|
|
|
|
|
 |
|