O documento discute os desafios de testar sistemas legados, como código complicado e documentação deficiente. Também apresenta o framework de teste Suricato e seu uso para automatizar testes de um sistema legado complexo de gestão da construção civil, reduzindo defeitos em 96% ao longo de 15 meses.
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
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. 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 é
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)
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. 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. 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. 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
19. gutssc.wordpress.com
Aplicação: Implementação de Testes
public class ExtratoClienteTest {
@BeforeClass
public void setUp() {
acessaBase("BaseQANinja", 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. 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();
}...
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. Testes e Sistemas Legados. #quemNunca
scguts@gmail.com
Contato
scambaw@gmail.com
/in/fernosantiago
/fernosantiago
gutssc.wordpress.com
Fernando Santiago