Testes automatizados - CPA
William Melchior Jablonski - 18/01/2013
Rastreabilidade de Casos de teste ao UC no EA
Estamos em processo de definição, é uma necessidade
para podemos saber quais testes devem ser alterados e
reaplicados em caso de mudança do Caso de Uso, Regra de
Negócio, Requisitos Funcionais, ou seja, algo que gere
impacto na aplicação.
Arquitetura do projeto (Projeto Integrado)
+Todos os clientes em um único projeto
+Reusabilidade do código fonte e dados da planilha
-Projeto grande -Alto acoplamento -Código fonte do teste distribuído
Estrutura do projeto
Dados de teste
Utilizar 2 planilhas:
- Dados Comuns a todos clientes;
- Dados de campo especifico do Cliente.
Versionamento do Banco de dados
Versionamento do Banco de dados
Publicação de Versão
Agendar as rotinas de publicação:
- Meio dia e meia noite.
Rodar testes automatizados
1- Baixa o Jboss da VM.
2- Move os arquivos de EAR do 'Server66' para
'ServerTestesAutomatizadosVMJboss‘ (via SSH).
3 - Verifica qual a versão do banco deve ser utilizada para
aquela versão de aplicação
(jbossserverclienteconfversaoBD-config.txt).
4 - Verifica qual a versão atual do banco atual (tabela de log
do liquibase no BD).
5 - Compara a versão do banco no config com o status atual
do banco.
IF(vbanco < vbancoapp) Atualiza o BD até vbancoapp
IF(vbanco > vbancoapp) Destrói o banco e constrói até
vbancoapp ou loga erro e envia e-mail.
6 - IF(vbanco = vbancoapp) Sobe o Jboss da VM.
7 - Verifica se o Selenium Grid não está no ar
IF(!Instancia Selenium_Grid.exits) Start Selenium_Grid.
8 - Dispara a Suíte de Testes pelo Selenium Grid (roda todos
os testes ao mesmo tempo em browser diferentes).
9 - Final de testes... publica resultado.
10 - Resultado tem erros? SIM-> envia e-mail, NÂO->não faz
nada.
Report dos testes automatizados
ReportNG
TestNG-XSLT
Pode-se aferir diariamente a evolução do projeto de testes automatizados.
Processo – Gerar Versão para testes automatizados
Processo – Rodar testes automatizados
Processo – Necessidade de Script BD na implementação
Processo - adequação no Processo de Desenvolvimento
Processo – Implementação de teste para o legado
Como fica os testes automatizados se tivermos
uma correção para a versão que já está em
produção?
V 05.04.00 - Produção
V 05.05.00 - Homologação
V 05.06.00 - Desenvolvimento
Cliente XYZ
Exemplo:
Fluxo de teste automatizado - Magnatas
Máquina que possa trabalhar com:
- 3 bancos ao mesmo (SQL Server, Oracle e DB2);
- Jenkins;
- Serviço SSH;
-Threads de Selenium Server no ar (x<=15 ao mesmo tempo).
Necessidade de Hardware
Necessidade de recursos (Pessoas) com
alocação para as tarefas:
- Implementar testes legado;
- Finalizar ambientes e configurações.
Sugestões?
Obrigado !

Apresentação proposta de processo e estrutura técnica para implantação de testes automatizados Versão 18/01/2013

  • 1.
    Testes automatizados -CPA William Melchior Jablonski - 18/01/2013
  • 2.
    Rastreabilidade de Casosde teste ao UC no EA Estamos em processo de definição, é uma necessidade para podemos saber quais testes devem ser alterados e reaplicados em caso de mudança do Caso de Uso, Regra de Negócio, Requisitos Funcionais, ou seja, algo que gere impacto na aplicação.
  • 3.
    Arquitetura do projeto(Projeto Integrado) +Todos os clientes em um único projeto +Reusabilidade do código fonte e dados da planilha -Projeto grande -Alto acoplamento -Código fonte do teste distribuído
  • 4.
  • 5.
    Dados de teste Utilizar2 planilhas: - Dados Comuns a todos clientes; - Dados de campo especifico do Cliente.
  • 6.
  • 7.
  • 8.
    Publicação de Versão Agendaras rotinas de publicação: - Meio dia e meia noite.
  • 9.
    Rodar testes automatizados 1-Baixa o Jboss da VM. 2- Move os arquivos de EAR do 'Server66' para 'ServerTestesAutomatizadosVMJboss‘ (via SSH). 3 - Verifica qual a versão do banco deve ser utilizada para aquela versão de aplicação (jbossserverclienteconfversaoBD-config.txt). 4 - Verifica qual a versão atual do banco atual (tabela de log do liquibase no BD). 5 - Compara a versão do banco no config com o status atual do banco. IF(vbanco < vbancoapp) Atualiza o BD até vbancoapp IF(vbanco > vbancoapp) Destrói o banco e constrói até vbancoapp ou loga erro e envia e-mail. 6 - IF(vbanco = vbancoapp) Sobe o Jboss da VM. 7 - Verifica se o Selenium Grid não está no ar IF(!Instancia Selenium_Grid.exits) Start Selenium_Grid. 8 - Dispara a Suíte de Testes pelo Selenium Grid (roda todos os testes ao mesmo tempo em browser diferentes). 9 - Final de testes... publica resultado. 10 - Resultado tem erros? SIM-> envia e-mail, NÂO->não faz nada.
  • 10.
    Report dos testesautomatizados ReportNG TestNG-XSLT Pode-se aferir diariamente a evolução do projeto de testes automatizados.
  • 11.
    Processo – GerarVersão para testes automatizados
  • 12.
    Processo – Rodartestes automatizados
  • 13.
    Processo – Necessidadede Script BD na implementação
  • 14.
    Processo - adequaçãono Processo de Desenvolvimento
  • 15.
    Processo – Implementaçãode teste para o legado
  • 16.
    Como fica ostestes automatizados se tivermos uma correção para a versão que já está em produção? V 05.04.00 - Produção V 05.05.00 - Homologação V 05.06.00 - Desenvolvimento Cliente XYZ Exemplo:
  • 17.
    Fluxo de testeautomatizado - Magnatas
  • 18.
    Máquina que possatrabalhar com: - 3 bancos ao mesmo (SQL Server, Oracle e DB2); - Jenkins; - Serviço SSH; -Threads de Selenium Server no ar (x<=15 ao mesmo tempo). Necessidade de Hardware Necessidade de recursos (Pessoas) com alocação para as tarefas: - Implementar testes legado; - Finalizar ambientes e configurações.
  • 19.
  • 20.