www.cnqs.com.br@cnqsbr
Testes e Sistemas Legados
#quemNunca
Fernando Santiago
Eng. Computação – UBC / Eng. Software – UNIS...
Apoio
@scguts gutssc.wordpress.com
scguts@gmail.com
Os SISTEMAS LEGADOS podem vir a apresentar uma lista bem longa de NÃO CONFORMIDADES, tais
como: projetos não extensíveis; ...
gutssc.wordpress.com
Sistemas Legados
... e o Testador de software
gutssc.wordpress.com
Pirâmide de Automação de Testes
+
M
A
N
U
T
E
N
Ç
Ã
O
-
-
V
E
L
O
C
I
D
A
D
E
+
Interface
Integração
...
gutssc.wordpress.com
+
M
A
N
U
T
E
N
Ç
Ã
O
-
-
V
E
L
O
C
I
D
A
D
E
+
Interface
Integração
Unitário
Pirâmide de Automação d...
gutssc.wordpress.com
Case: Sienge
www.softplan.com.br/carreira
Software Integrado de Gestão para a Indústria da Construção...
gutssc.wordpress.com
Framework de Testes: Suricato
Também conhecido como o sentinela da savana, os suricatos revezam-se na...
gutssc.wordpress.com
Suricato
2009 
Alta reutilização de métodos
Relatórios e screenshots de falhas
Automação para não pr...
gutssc.wordpress.com
Suricato: Estrutura
Testes Automatizados
Selenium TestNG
Suricato
driver
xml
annotations
gutssc.wordpress.com
Suricato: Base de Dados
Repositório origem
Repositório espelho Servidor de aplicação
(Cópia)
(Serviço...
gutssc.wordpress.com
Suricato: Principais Keywords
Preenchimento
Ação
Verificação
digitaNoCampo("label_campo", "vl_digitad...
gutssc.wordpress.com
Aplicação
Cenário da Equipe
Planejamento de Testes
Especificação de Testes
Implementação de Testes
Ex...
gutssc.wordpress.com
Aplicação: Cenário da Equipe
Equipe
02 Analistas de sistemas
02 Analistas de testes
08 Desenvolvedore...
gutssc.wordpress.com
Aplicação: Planejamento de Testes
Período de captura de defeitos: 3 meses
TABELA DE DEFEITOS POR FUNC...
gutssc.wordpress.com
Aplicação: Especificação de Testes - Dados
TABELA DE CADASTRO DE DADOS - TÍTULO
tpCorrecao tpCorrecao...
gutssc.wordpress.com
Aplicação: Especificação de Testes - Cenários
TABELA DE CENÁRIOS DE TESTES - INCLUSÃO DE BAIXA
titulo...
gutssc.wordpress.com
Aplicação: Suíte de Testes
<suite name="CNQS">
<parameter name="repositorio" value="C:local"/>
<param...
gutssc.wordpress.com
Aplicação: Implementação de Testes
public class ExtratoClienteTest {
@BeforeClass
public void setUp()...
gutssc.wordpress.com
Aplicação: Implementação de Testes
public class MenuPage {
public void navegarParaExtratoCliente() {
...
gutssc.wordpress.com
Aplicação: Execução de Testes
gutssc.wordpress.com
Aplicação: Evidência de Falha
gutssc.wordpress.com
Se na teoria é bom...
...Na prática é melhor ainda.
Aplicação: Execução
gutssc.wordpress.com
Aplicação: Conclusão
Processo de automação
Período: 15 meses
Horas mensais: 47,1 (média por analista)...
gutssc.wordpress.com
Falhas Prevenidas
0
50
100
150
200
250
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Falhas Falhas Acumuladas
4...
gutssc.wordpress.com
Históricos de Defeitos
0
5
10
15
20
25
30
35
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Média semanal
24 20 ...
gutssc.wordpress.com
Históricos de Defeitos
0
20
40
60
80
100
120
140
160
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Estoque de d...
gutssc.wordpress.com
Integração Contínua: Versão de Cliente
gutssc.wordpress.com
Integração Contínua: Versão de Produção
gutssc.wordpress.com
Cenário Atual
• Queda na quantidade de falhas reportadas pelo cliente;
• Baixa quantidade de defeitos...
Testes e Sistemas Legados. #quemNunca
scguts@gmail.com
Contato
scambaw@gmail.com
/in/fernosantiago
gutssc.wordpress.com
Fe...
Próximos SlideShares
Carregando em…5
×

Testes e Sistemas legados #quemNunca

141 visualizações

Publicada em

Como fazer a manutenção de sistemas legado através de testes automatizados que verifiquem cenários críticos e permitam o refactoring.

Palestra apresentada no evento CNQS - Congresso Nacional de Qualidade de Software.
http://cnqs.com.br

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
141
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Testes e Sistemas legados #quemNunca

  1. 1. www.cnqs.com.br@cnqsbr Testes e Sistemas Legados #quemNunca Fernando Santiago Eng. Computação – UBC / Eng. Software – UNISUL CTFL / CSM
  2. 2. Apoio @scguts gutssc.wordpress.com scguts@gmail.com
  3. 3. Os SISTEMAS LEGADOS podem vir a apresentar uma lista bem longa de NÃO CONFORMIDADES, tais como: projetos não extensíveis; código complicado, documentação pobre ou inexistente; e um histórico de modificações mal gerido. gutssc.wordpress.com + Custo + Problema + Manutenção - Limite de potencial - Rastreabilidade - Testes Sistemas Legados
  4. 4. gutssc.wordpress.com Sistemas Legados ... e o Testador de software
  5. 5. gutssc.wordpress.com Pirâmide de Automação de Testes + M A N U T E N Ç Ã O - - V E L O C I D A D E + Interface Integração Unitário
  6. 6. gutssc.wordpress.com + M A N U T E N Ç Ã O - - V E L O C I D A D E + Interface Integração Unitário Pirâmide de Automação de Testes
  7. 7. gutssc.wordpress.com Case: Sienge www.softplan.com.br/carreira Software Integrado de Gestão para a Indústria da Construção 100% web Mais de 2500 clientes Cliente alvo: Construtoras, incorporadoras, empreiteiras, instaladoras, entre outros + 3.989.855 linhas de código
  8. 8. gutssc.wordpress.com Framework de Testes: Suricato Também conhecido como o sentinela da savana, os suricatos revezam-se nas tarefas de VIGIA e PROTEÇÃO dos indivíduos da comunidade.
  9. 9. gutssc.wordpress.com Suricato 2009  Alta reutilização de métodos Relatórios e screenshots de falhas Automação para não programadores Encapsula e abstrai a implementação do teste Maior velocidade no desenvolvimento e execução de cenários de testes (headless browsers) História Benefícios Biblioteca Keyword Driven Gerenciado por Gradle Desenvolvido em Java Selenium TestNG O que é
  10. 10. gutssc.wordpress.com Suricato: Estrutura Testes Automatizados Selenium TestNG Suricato driver xml annotations
  11. 11. gutssc.wordpress.com Suricato: Base de Dados Repositório origem Repositório espelho Servidor de aplicação (Cópia) (Serviço de banco parado) (Serviço de banco inicializado)
  12. 12. gutssc.wordpress.com Suricato: Principais Keywords Preenchimento Ação Verificação digitaNoCampo("label_campo", "vl_digitado"); selecionaValor("label_campo", " vl_selecionado"); digitaNoCampoDaGrid("nm_grid", linha_grid, "nm_coluna", "vl_digitado"); acessaBase("nome_base", "usuario", "senha", 564); clicaNoBotao("label_botao"); mudaParametroWeb(123, "vl_configuracao"); esperaPaginaCarregar(); (espera explícita) verificaMensagemDeSucesso(); verificaCampoComValor("label_campo", "vl_esperado"); comparaRelatorio("relatorio_esperado.pdf", "relatorio_gerado.pdf");
  13. 13. gutssc.wordpress.com Aplicação Cenário da Equipe Planejamento de Testes Especificação de Testes Implementação de Testes Execução de Testes Conclusão Cenário Atual
  14. 14. gutssc.wordpress.com Aplicação: Cenário da Equipe Equipe 02 Analistas de sistemas 02 Analistas de testes 08 Desenvolvedores Módulos Comercial Financeiro Defeitos registrados Backlog de defeitos: 127 Média semanal de defeitos: 24 Média semanal de falhas: 81 Set/2013 Prazo Uheuheuehuehue
  15. 15. gutssc.wordpress.com Aplicação: Planejamento de Testes Período de captura de defeitos: 3 meses TABELA DE DEFEITOS POR FUNCIONALIDADE Funcionalidade Ocorrência % Cadastro de Título 30 4,3 Inclusão de Baixa 61 8,7 Repactuação 54 7,7 Geração de Cobrança Escritural 111 15,9 Solicitação de Contratos 18 2,6 Cancelamento de Contratos 36 5,2 ... ... ... TOTAL 698 100
  16. 16. gutssc.wordpress.com Aplicação: Especificação de Testes - Dados TABELA DE CADASTRO DE DADOS - TÍTULO tpCorrecao tpCorrecao tpJuros tpAcrescimos txAdm ... Mensal Neutro Nenhum Nenhum False ... Anual Sem retroatividade Simples Mensal simples True ... Com retroatividade Composto Mensal Composto ... Fixo Diário ... ... ... ... Títulos a serem cadastrados na base de dados
  17. 17. gutssc.wordpress.com Aplicação: Especificação de Testes - Cenários TABELA DE CENÁRIOS DE TESTES - INCLUSÃO DE BAIXA titulos* dtBaixa calcVlPresente tpBaixa corrigirVl ... 1 Vencimento False Adiantamento False ... 2 Atrasada True Cancelamento True ... 3 Antecipada Recebimento ... 4 Substituição ... ... ... ... Cenários de testes a serem codificados * Títulos gerados na tela anterior
  18. 18. gutssc.wordpress.com Aplicação: Suíte de Testes <suite name="CNQS"> <parameter name="repositorio" value="C:local"/> <parameter name="baseDados" value="C:local"/> <parameter name="chromePathDriver" value="./local"/> <parameter name="fireBirdService" value="nm_servico_banco_dados"/> <parameter name="caminhoScreenshots" value="C:local"/> <parameter name="caminhoDownloads" value="C:local"/> <parameter name="tearDown" value="true"/> <listeners> <listener class-name="br.com.cnqs.ScreenshotListener"/> </listeners> <test verbose="2" name="TESTE_01" annotations="JDK"> <parameter name="url" value="http://localhost:8080/cnqs/"/> <parameter name="usuario" value="usuario"/> <parameter name="senha" value="usuario!"/> <classes> <class name="br.com.cnqs.NomeClasseTest"> <methods> <include name="nomeMetodo"/> </methods> </classes> </test> </suite>
  19. 19. gutssc.wordpress.com Aplicação: Implementação de Testes public class ExtratoClienteTest { @BeforeClass public void setUp() { acessaBase("BaseCNQS", 0); mudaParametroWeb(001, "S"); } MenuPage menuPage = new MenuPage(); @Test(priority = 1) public void gerarExtratoCliente() { ExtratoClientePage emitirExtrato = menuPage.navegarParaExtratoCliente(); emitirExtrato.preencherTitulo("174"); emitirExtrato.preencherCorrecaoAte("01/01/2013"); emitirExtrato.clicarNoBotaoVisualizar(). compararRelatorios("relatorio.pdf", "relatorio.pdf"); } }
  20. 20. gutssc.wordpress.com Aplicação: Implementação de Testes public class MenuPage { public void navegarParaExtratoCliente() { navegaPara("Financeiro.Contas a Receber.Relatórios..."); esperaPaginaCarregar(); }... public class ExtratoClientePage { public void preencherTitulo(String cdTitulo) { digitaNoCampo("Título", cdTitulo); esperaPaginaCarregar(); } public void preencherCorrecaoAte(String dtCorrecao) { digitaNoCampo("Correção até*", dtCorrecao); } public void clicarNoBotaoVisualizar() { clicaNoBotao("Visualizar"); esperaPaginaCarregar(); }...
  21. 21. gutssc.wordpress.com Aplicação: Execução de Testes
  22. 22. gutssc.wordpress.com Aplicação: Evidência de Falha
  23. 23. gutssc.wordpress.com Se na teoria é bom... ...Na prática é melhor ainda. Aplicação: Execução
  24. 24. gutssc.wordpress.com Aplicação: Conclusão Processo de automação Período: 15 meses Horas mensais: 47,1 (média por analista) Cenários automatizados: 909 Falhas prevenidas: 190
  25. 25. gutssc.wordpress.com Falhas Prevenidas 0 50 100 150 200 250 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Falhas Falhas Acumuladas 4 14 15 4 16 26 8 13 15 7 21 18 6 10 12 4 18 33 37 53 79 87 100 115 122 143 161 167 178 190 mês mês mês mês mês mês mês mês mês mês mês mês mês mês mês
  26. 26. gutssc.wordpress.com Históricos de Defeitos 0 5 10 15 20 25 30 35 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Média semanal 24 20 19 16 15 30 18 17 15 18 10 10 13 15 10 Melhoria: 58% em quedaQueda de defeitos: 58% mês mês mês mês mês mês mês mês mês mês mês mês mês mês mês
  27. 27. gutssc.wordpress.com Históricos de Defeitos 0 20 40 60 80 100 120 140 160 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Estoque de defeitos 127 150 151 125 95 111 92 105 79 73 47 40 20 33 6 Melhoria: 96% em quedaQueda de defeitos: 96% mês mês mês mês mês mês mês mês mês mês mês mês mês mês mês
  28. 28. gutssc.wordpress.com Integração Contínua: Versão de Cliente
  29. 29. gutssc.wordpress.com Integração Contínua: Versão de Produção
  30. 30. gutssc.wordpress.com Cenário Atual • Queda na quantidade de falhas reportadas pelo cliente; • Baixa quantidade de defeitos no backlog corretivo da equipe; • Prioridade no desenvolvimento do backlog evolutivo da equipe; • Maior confiança na refatoração de código legado; • Integração da automação de testes no ciclo de desenvolvimento; • Execução de testes agendados em Integração Contínua; • Redução em 91% de retrabalho durante o ciclo de desenvolvimento aplicado com coach test.
  31. 31. Testes e Sistemas Legados. #quemNunca scguts@gmail.com Contato scambaw@gmail.com /in/fernosantiago gutssc.wordpress.com Fernando Santiago

×