SlideShare a Scribd company logo
1 of 33
Download to read offline
Suricato – Automatizando Testes de Interface
Leonardo – Analista de Testes
0 5 D E D E Z E M B R O D E 2 0 1 4
Fernando – Analista de Testes
Introdução
T E C H D A Y | T E S T E S D E S O F T W A R E
• UNIC
• Sistemas Legados
• Teste Ideal
• TesteNG
• Selenium
• Suricato
• Conclusão - Gerenciamento de Falhas
• Desafios Futuros
UNIC – Unidade Indústria da Construção
• Software Integrado de Gestão para a Indústria da Construção
• 100% WEB
• Mais de 2mil clientes
• Público-alvo: construtoras, incorporadoras, empreiteiras,
instaladoras, entre outros
T E C H D A Y | T E S T E S D E S O F T W A R E
Sistemas Legados
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. (PRESSMAN, 2006)
Manutenção
Substituição
Modernização
Carência de Testes
Rastreabilidade
T E C H D A Y | T E S T E S D E S O F T W A R E
Pirâmide de Testes Ideal
UI
INTEGRAÇÃO
UNITÁRIOS
T E C H D A Y | T E S T E S D E S O F T W A R E
-Manutenção+
-Velocidade+
Pirâmide de Testes Ideal – UNIC
UI
INTEGRAÇÃO
UNITÁRIOS
Por que?
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato
Também conhecido como o sentinela da savana, vivem em
colônias de até 40 indivíduos. Dentro do grupo, os animais
revezam-se nas tarefas de vigia e proteção dos indivíduos da
comunidade.
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato
• Biblioteca Keyword Driven para facilitar a automação de testes
• Desenvolvido em Java usando Selenium
• Gerenciado através do Maven
• Relatórios e screenshots de erros
• Automação para não programadores
• Encapsula e abstrai a implementação do teste
• Alta reutilização de métodos
• Maior velocidade no desenvolvimento de testes
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Bases de DadosEstação
•Repositório
•Cópia do
repositório
Servidor
•Repositório
•Cópia do
repositório
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – TestNG
• Verificação de código seguro em um ambiente multithread
• Suporta testes com data-driven (@DataProvider)
• Suporte a parâmetros
• Dependência de métodos e grupos de métodos de testes
• Suporte para ferramentas e plugins (Eclipse, IDEA, Maven, etc)
• Relatório de execução de testes - Maven Surefire Plugin
O TestNG é um framework de testes inspirado no Junit e NUnit,
mas com novas funcionalidades, tornando este framework mais
eficiente e fácil de usar.
T E C H D A Y | T E S T E S D E S O F T W A R E
TestNG – Relatório de Execução
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Selenium
Selenium se refere ao Acceptance Testing (Teste de Aceitação)
que envolve rodar testes em um sistema finalizado. Os testes
rodam diretamente em um browser, exatamente como o usuário
faria.
• API de criação/execução de testes automatizados em sistemas
web
• Testes de compatibilidade entre browser e plataformas
diferentes
• Testes de funcionalidades da aplicação web
• Suporte a várias linguagens de programação
T E C H D A Y | T E S T E S D E S O F T W A R E
Selenium
public class SeleniumTest{
private static final String TITULO = "Tech Day";
private static final String TEMA = "Testes de Software";
WebDriver driver = new ChromeDriver();
SeleniumMenu menu = new SeleniumMenu(driver);
@Test
public void loginTest() throws Exception {
SeleniumPage teste = menu.acessaPagina();
teste.preencheLogin("nome.sobrenome");
teste.preencheSenha("mudar123");
teste.entrar();
teste.verificaCabecalho(TITULO);
List<String> resultadosEsperados = Arrays.asList(TEMA);
assertEquals(resultadosEsperados, teste.carregarGrid());
}
}
T E C H D A Y | T E S T E S D E S O F T W A R E
Selenium
public class SeleniumPage{
private final WebDriver driver;
WebDriver driver = new ChromeDriver();
public void preencheLogin(String nmLogin) {
driver.findElement(By.name("id_login")).sendKeys(nmLogin);
}
public void preencheSenha(String vlSenha) {
driver.findElement(By.name("id_senha")).sendKeys(vlSenha);
}
public void entrar() {
driver.findElement(By.id("botao")).click();
this.waitForPageToLoad();
}
public void verificaCabecalho(String nmCabecalho) {
assertTrue(driver.findElement(By.cssSelector("BODY")).
getText().matches("^[sS]*"+nmCabecalho+"[sS]*$"));
}
...
}
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Estrutura
Fluxos Automatizados
Suricato
Selenium TestNG
Driver
XML
Annotations
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Keywords
T E C H D A Y | T E S T E S D E S O F T W A R E
Preenchimento
•digitaNoCampo("Título", "123");
•selecionaValor("Tipo de correção*", "Anual");
•digitaNoCampoDaGrid("Apropriação", 1, "Valor", "3");
Ação
•clicaNoBotao("Salvar");
•clicaNoLink("Clientes");
Verificação
•verificaMensagemDeSucesso();
•verificaCampoComValor("Título", "123");
•comparaRelatorio("relatorioTitulo01.pdf",
"relatorioTitulo01.pdf");
Suricato – Evidencia de Falha
T E C H D A Y | T E S T E S D E S O F T W A R E
Equipe COMCRC
Set/2013
2 Analistas de Sistemas
8 Analistas Desenvolvedores
2 Analista de Testes
SITUAÇÃO DE ERROS DA EQUIPE
Estoque Média/Semana
+ 127 ± 24
Comercial
Financeiro
Sienge
T E C H D A Y | T E S T E S D E S O F T W A R E
Case – Suricato
Planejamento
Especificação
Implementação
Execução
Conclusão
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Planejamento de Testes
TABELA DE ERROS POR FUNCIONALIDADE
Funcionalidade Ocorrências % por ocorrência
Título 30 4,3
Inclusão de Baixa 61 8,7
Repactuação 54 7,7
Cobrança Escritural 111 15,9
Solicitação de Contratos 18 2,6
Cancelamento de Contratos 36 5,2
... ... ...
Total de Ocorrências 698 100
Período de captura de erros: 3 meses
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Especificação de Testes
dt_baixa fl_calcVlPresente cd_titulo fl_apresSomenAmortizacao ...
01/02/2013 false 279mensal false ...
01/01/2013 true 281anual true ...
10/12/2012 282anualResid ...
dt_baixa fl_calcVlPresente cd_titulo fl_apresSomenAmortizacao ...
01/02/2013 false 279mensal false ...
01/01/2013 false 281anual true ...
... ... ... ... ...
Tabela de pares
Ferramentas utilizadas: Hexawise, Pairwise, etc
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Implementação de Testes
public class ExtratoClienteTest {
MenuPage menuPage = new MenuPage();
@BeforeGroups("clienteComum")
public void setUp() {
acessaBase("SiengeCrcTesteInterno", 0);
}
@Test(groups = "clienteComum", priority = 1)
public void gerarExtratoClienteCaso01() {
ExtratoClientePage emitirExtrato = menuPage.extrato();
emitirExtrato.preencherTitulo("123");
emitirExtrato.preencherDtCorrecao("01/01/2013");
emitirExtrato.clicarNoBotaoVisualizar();
comparaRelatorio("relatorio01.pdf", "relatorio.pdf");
}
}
Test
Page
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Implementação de Testes
public class ExtratoClientePage {
public void preencherTitulo(String cdTitulo) {
digitaNoCampo("Título", cdTitulo);
esperaAjaxCarregar();
}
public void preencherDtCorrecao(String dtCorrecao) {
digitaNoCampo("Correção até*", dtCorrecao);
}
public void clicarNoBotaoVisualizar() {
clicaNoBotao("Visualizar");
esperaPaginaCarregar();
}
} Page
Test
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Execução de Testes
Relatório de Extrato de Cliente – Consulta do extrato
T E C H D A Y | T E S T E S D E S O F T W A R E
Suricato – Execução de Testes
Relatório de Extrato de Cliente – Relatório para comparação
T E C H D A Y | T E S T E S D E S O F T W A R E
Conclusão – Processo de Automação
Período: 15 meses
Horas/Mês: ±47,1
Testes: 685 + 224
Defeitos Prevenidos: +190
T E C H D A Y | T E S T E S D E S O F T W A R E
Conclusão – Defeitos Prevenidos
0
50
100
150
200
250
set-13 out-13 nov-13 dez-13 jan-14 fev-14 mar-14 abr-14 mai-14 jun-14 jul-14 ago-14 set-14 out-14 nov-14
Falhas acumuladas
Falhas
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
T E C H D A Y | T E S T E S D E S O F T W A R E
Conclusão – Eficácia dos Testes
0
5
10
15
20
25
30
35
40
45
set-13 out-13 nov-13 dez-13 jan-14 fev-14 mar-14 abr-14 mai-14 jun-14 jul-14 ago-14 set-14 out-14 nov-14
% dos defeitos detectados pela automação
5,1 15,7 25 7,5 33,3 27,6 15,6 20 26,3 10 42,8 40 16,2 20 42,8
T E C H D A Y | T E S T E S D E S O F T W A R E
Conclusão – Histórico de Erros
0
5
10
15
20
25
30
35
set/13 out/13 nov/13 dez/13 jan/14 fev/14 mar/14 abr/14 mai/14 jun/14 jul/14 ago/14 set/14 out/14 nov/14
Média semanal
24 20 19 16 15 30 18 17 15 18 10 10 13 15 10
- 58%
T E C H D A Y | T E S T E S D E S O F T W A R E
Conclusão – Histórico de Erros
0
20
40
60
80
100
120
140
160
set/13 out/13 nov/13 dez/13 jan/14 fev/14 mar/14 abr/14 mai/14 jun/14 jul/14 ago/14 set/14 out/14 nov/14
Estoque de erros
127 150 151 125 95 111 92 105 79 73 47 40 20 33 6
- 96%
T E C H D A Y | T E S T E S D E S O F T W A R E
Cenário Atual
T E C H D A Y | T E S T E S D E S O F T W A R E
• Queda na quantidade de erros reportados pelo cliente
• Baixa quantidade de erros no estoque da equipe
• Prioridade no desenvolvimento de novas implementações
• 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
• Execução de testes automatizados para versão interna e de
envio
• Prioridade para especificação de testes de novas
implementações
Desafios
• Atualizar e manter o projeto do Suricato
• Manter testes existentes
• Manter base de dados
• Execução de testes em paralelo
• Validar duplicação entre testes de UI, Serviço e Unitários
• Trabalho em conjunto entre analistas de testes e
desenvolvedores
• Elaboração de especificação de testes para todas as
implementações da versão
T E C H D A Y | T E S T E S D E S O F T W A R E
Dúvidas?
OBRIGADO!
leonardo.giacomini@softplan.com.br
Fernando Santiago
Leonardo Giacomini
Analistas de Testes
fernando.santiago@softplan.com.br

More Related Content

Similar to Tech Day Softplan - Automatizando Testes de Interface

PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlinkslides_teltools
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização UnivemAndré Abe Vicente
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...Rafael Kanaoka
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerAlan Carlos
 
QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016
QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016
QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016Fernando Santiago
 
Beneficios dos Testes Ágeis
Beneficios dos Testes ÁgeisBeneficios dos Testes Ágeis
Beneficios dos Testes ÁgeisFernando Santiago
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testeselliando dias
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesRogerio P C do Nascimento
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfRodolphoCesar2
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...GUTS-RS
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoflavio1110
 

Similar to Tech Day Softplan - Automatizando Testes de Interface (20)

PDC - Testes - Usando o Testlink
PDC - Testes - Usando o TestlinkPDC - Testes - Usando o Testlink
PDC - Testes - Usando o Testlink
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização Univem
 
Alats Seminario V03 3
Alats Seminario V03 3Alats Seminario V03 3
Alats Seminario V03 3
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Metricas ageis
Metricas ageisMetricas ageis
Metricas ageis
 
Práticas do Agile Testing
Práticas do Agile TestingPráticas do Agile Testing
Práticas do Agile Testing
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test Manager
 
QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016
QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016
QA Ninja - Testes e Sistemas legados #quemNunca - ONLINE/2016
 
Beneficios dos Testes Ágeis
Beneficios dos Testes ÁgeisBeneficios dos Testes Ágeis
Beneficios dos Testes Ágeis
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e Planificações
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
Palestra Ufpb
Palestra UfpbPalestra Ufpb
Palestra Ufpb
 
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...[GUTS-RS] Evento julho 2017 -  Como iniciar os testes de performance em uma a...
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 

More from Fernando Santiago

Reunião Diária - Como uma cerimônia orientada a fluxo
Reunião Diária - Como uma cerimônia orientada a fluxoReunião Diária - Como uma cerimônia orientada a fluxo
Reunião Diária - Como uma cerimônia orientada a fluxoFernando Santiago
 
Escalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de softwareEscalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de softwareFernando Santiago
 
Escalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de softwareEscalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de softwareFernando Santiago
 
TDC - Saia da rotina e seja o owner da qualidade - SC/2018
TDC - Saia da rotina e seja o owner da qualidade - SC/2018TDC - Saia da rotina e seja o owner da qualidade - SC/2018
TDC - Saia da rotina e seja o owner da qualidade - SC/2018Fernando Santiago
 
Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018
Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018
Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018Fernando Santiago
 
State of Quality - Testes Exploratórios
State of Quality - Testes ExploratóriosState of Quality - Testes Exploratórios
State of Quality - Testes ExploratóriosFernando Santiago
 
TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017
TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017
TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017Fernando Santiago
 
Agile Trends - O que eu aprendi com Agile Testing - SC/2017
Agile Trends - O que eu aprendi com Agile Testing - SC/2017Agile Trends - O que eu aprendi com Agile Testing - SC/2017
Agile Trends - O que eu aprendi com Agile Testing - SC/2017Fernando Santiago
 
GUTS-SC - O que eu aprendi com Agile Testing - SC/2017
GUTS-SC - O que eu aprendi com Agile Testing - SC/2017GUTS-SC - O que eu aprendi com Agile Testing - SC/2017
GUTS-SC - O que eu aprendi com Agile Testing - SC/2017Fernando Santiago
 
MTC - O que eu aprendi com Agile Testing - MG/2017
MTC - O que eu aprendi com Agile Testing - MG/2017MTC - O que eu aprendi com Agile Testing - MG/2017
MTC - O que eu aprendi com Agile Testing - MG/2017Fernando Santiago
 
TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017
TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017
TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017Fernando Santiago
 
CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016
CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016
CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016Fernando Santiago
 
GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016
GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016
GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016Fernando Santiago
 

More from Fernando Santiago (15)

Reunião Diária - Como uma cerimônia orientada a fluxo
Reunião Diária - Como uma cerimônia orientada a fluxoReunião Diária - Como uma cerimônia orientada a fluxo
Reunião Diária - Como uma cerimônia orientada a fluxo
 
Escalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de softwareEscalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de software
 
Escalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de softwareEscalando Qualidade - Superando os desafios de transição em testes de software
Escalando Qualidade - Superando os desafios de transição em testes de software
 
Definition of Ready
Definition of ReadyDefinition of Ready
Definition of Ready
 
Culturas Ágeis
Culturas ÁgeisCulturas Ágeis
Culturas Ágeis
 
TDC - Saia da rotina e seja o owner da qualidade - SC/2018
TDC - Saia da rotina e seja o owner da qualidade - SC/2018TDC - Saia da rotina e seja o owner da qualidade - SC/2018
TDC - Saia da rotina e seja o owner da qualidade - SC/2018
 
Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018
Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018
Agile Trends - Saia da rotina e seja o owner da qualidade - SP/2018
 
State of Quality - Testes Exploratórios
State of Quality - Testes ExploratóriosState of Quality - Testes Exploratórios
State of Quality - Testes Exploratórios
 
TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017
TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017
TDC - [CUIDADO] Pareando dados com o uso de ferramentas pairwise - RS/2017
 
Agile Trends - O que eu aprendi com Agile Testing - SC/2017
Agile Trends - O que eu aprendi com Agile Testing - SC/2017Agile Trends - O que eu aprendi com Agile Testing - SC/2017
Agile Trends - O que eu aprendi com Agile Testing - SC/2017
 
GUTS-SC - O que eu aprendi com Agile Testing - SC/2017
GUTS-SC - O que eu aprendi com Agile Testing - SC/2017GUTS-SC - O que eu aprendi com Agile Testing - SC/2017
GUTS-SC - O que eu aprendi com Agile Testing - SC/2017
 
MTC - O que eu aprendi com Agile Testing - MG/2017
MTC - O que eu aprendi com Agile Testing - MG/2017MTC - O que eu aprendi com Agile Testing - MG/2017
MTC - O que eu aprendi com Agile Testing - MG/2017
 
TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017
TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017
TDC - [Cuidado] Pareando dados com o uso de ferramentas pairwise - SP/2017
 
CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016
CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016
CNQS - Testes e Sistemas legados #quemNunca - ONLINE/2016
 
GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016
GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016
GUTS-SC - A Qualidade Contínua e seus Resultados - SC/2016
 

Tech Day Softplan - Automatizando Testes de Interface

  • 1. Suricato – Automatizando Testes de Interface Leonardo – Analista de Testes 0 5 D E D E Z E M B R O D E 2 0 1 4 Fernando – Analista de Testes
  • 2. Introdução T E C H D A Y | T E S T E S D E S O F T W A R E • UNIC • Sistemas Legados • Teste Ideal • TesteNG • Selenium • Suricato • Conclusão - Gerenciamento de Falhas • Desafios Futuros
  • 3. UNIC – Unidade Indústria da Construção • Software Integrado de Gestão para a Indústria da Construção • 100% WEB • Mais de 2mil clientes • Público-alvo: construtoras, incorporadoras, empreiteiras, instaladoras, entre outros T E C H D A Y | T E S T E S D E S O F T W A R E
  • 4. Sistemas Legados 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. (PRESSMAN, 2006) Manutenção Substituição Modernização Carência de Testes Rastreabilidade T E C H D A Y | T E S T E S D E S O F T W A R E
  • 5. Pirâmide de Testes Ideal UI INTEGRAÇÃO UNITÁRIOS T E C H D A Y | T E S T E S D E S O F T W A R E -Manutenção+ -Velocidade+
  • 6. Pirâmide de Testes Ideal – UNIC UI INTEGRAÇÃO UNITÁRIOS Por que? T E C H D A Y | T E S T E S D E S O F T W A R E
  • 7. Suricato Também conhecido como o sentinela da savana, vivem em colônias de até 40 indivíduos. Dentro do grupo, os animais revezam-se nas tarefas de vigia e proteção dos indivíduos da comunidade. T E C H D A Y | T E S T E S D E S O F T W A R E
  • 8. Suricato • Biblioteca Keyword Driven para facilitar a automação de testes • Desenvolvido em Java usando Selenium • Gerenciado através do Maven • Relatórios e screenshots de erros • Automação para não programadores • Encapsula e abstrai a implementação do teste • Alta reutilização de métodos • Maior velocidade no desenvolvimento de testes T E C H D A Y | T E S T E S D E S O F T W A R E
  • 9. Suricato – Bases de DadosEstação •Repositório •Cópia do repositório Servidor •Repositório •Cópia do repositório T E C H D A Y | T E S T E S D E S O F T W A R E
  • 10. Suricato – TestNG • Verificação de código seguro em um ambiente multithread • Suporta testes com data-driven (@DataProvider) • Suporte a parâmetros • Dependência de métodos e grupos de métodos de testes • Suporte para ferramentas e plugins (Eclipse, IDEA, Maven, etc) • Relatório de execução de testes - Maven Surefire Plugin O TestNG é um framework de testes inspirado no Junit e NUnit, mas com novas funcionalidades, tornando este framework mais eficiente e fácil de usar. T E C H D A Y | T E S T E S D E S O F T W A R E
  • 11. TestNG – Relatório de Execução T E C H D A Y | T E S T E S D E S O F T W A R E
  • 12. Suricato – Selenium Selenium se refere ao Acceptance Testing (Teste de Aceitação) que envolve rodar testes em um sistema finalizado. Os testes rodam diretamente em um browser, exatamente como o usuário faria. • API de criação/execução de testes automatizados em sistemas web • Testes de compatibilidade entre browser e plataformas diferentes • Testes de funcionalidades da aplicação web • Suporte a várias linguagens de programação T E C H D A Y | T E S T E S D E S O F T W A R E
  • 13. Selenium public class SeleniumTest{ private static final String TITULO = "Tech Day"; private static final String TEMA = "Testes de Software"; WebDriver driver = new ChromeDriver(); SeleniumMenu menu = new SeleniumMenu(driver); @Test public void loginTest() throws Exception { SeleniumPage teste = menu.acessaPagina(); teste.preencheLogin("nome.sobrenome"); teste.preencheSenha("mudar123"); teste.entrar(); teste.verificaCabecalho(TITULO); List<String> resultadosEsperados = Arrays.asList(TEMA); assertEquals(resultadosEsperados, teste.carregarGrid()); } } T E C H D A Y | T E S T E S D E S O F T W A R E
  • 14. Selenium public class SeleniumPage{ private final WebDriver driver; WebDriver driver = new ChromeDriver(); public void preencheLogin(String nmLogin) { driver.findElement(By.name("id_login")).sendKeys(nmLogin); } public void preencheSenha(String vlSenha) { driver.findElement(By.name("id_senha")).sendKeys(vlSenha); } public void entrar() { driver.findElement(By.id("botao")).click(); this.waitForPageToLoad(); } public void verificaCabecalho(String nmCabecalho) { assertTrue(driver.findElement(By.cssSelector("BODY")). getText().matches("^[sS]*"+nmCabecalho+"[sS]*$")); } ... } T E C H D A Y | T E S T E S D E S O F T W A R E
  • 15. Suricato – Estrutura Fluxos Automatizados Suricato Selenium TestNG Driver XML Annotations T E C H D A Y | T E S T E S D E S O F T W A R E
  • 16. Suricato – Keywords T E C H D A Y | T E S T E S D E S O F T W A R E Preenchimento •digitaNoCampo("Título", "123"); •selecionaValor("Tipo de correção*", "Anual"); •digitaNoCampoDaGrid("Apropriação", 1, "Valor", "3"); Ação •clicaNoBotao("Salvar"); •clicaNoLink("Clientes"); Verificação •verificaMensagemDeSucesso(); •verificaCampoComValor("Título", "123"); •comparaRelatorio("relatorioTitulo01.pdf", "relatorioTitulo01.pdf");
  • 17. Suricato – Evidencia de Falha T E C H D A Y | T E S T E S D E S O F T W A R E
  • 18. Equipe COMCRC Set/2013 2 Analistas de Sistemas 8 Analistas Desenvolvedores 2 Analista de Testes SITUAÇÃO DE ERROS DA EQUIPE Estoque Média/Semana + 127 ± 24 Comercial Financeiro Sienge T E C H D A Y | T E S T E S D E S O F T W A R E
  • 20. Suricato – Planejamento de Testes TABELA DE ERROS POR FUNCIONALIDADE Funcionalidade Ocorrências % por ocorrência Título 30 4,3 Inclusão de Baixa 61 8,7 Repactuação 54 7,7 Cobrança Escritural 111 15,9 Solicitação de Contratos 18 2,6 Cancelamento de Contratos 36 5,2 ... ... ... Total de Ocorrências 698 100 Período de captura de erros: 3 meses T E C H D A Y | T E S T E S D E S O F T W A R E
  • 21. Suricato – Especificação de Testes dt_baixa fl_calcVlPresente cd_titulo fl_apresSomenAmortizacao ... 01/02/2013 false 279mensal false ... 01/01/2013 true 281anual true ... 10/12/2012 282anualResid ... dt_baixa fl_calcVlPresente cd_titulo fl_apresSomenAmortizacao ... 01/02/2013 false 279mensal false ... 01/01/2013 false 281anual true ... ... ... ... ... ... Tabela de pares Ferramentas utilizadas: Hexawise, Pairwise, etc T E C H D A Y | T E S T E S D E S O F T W A R E
  • 22. Suricato – Implementação de Testes public class ExtratoClienteTest { MenuPage menuPage = new MenuPage(); @BeforeGroups("clienteComum") public void setUp() { acessaBase("SiengeCrcTesteInterno", 0); } @Test(groups = "clienteComum", priority = 1) public void gerarExtratoClienteCaso01() { ExtratoClientePage emitirExtrato = menuPage.extrato(); emitirExtrato.preencherTitulo("123"); emitirExtrato.preencherDtCorrecao("01/01/2013"); emitirExtrato.clicarNoBotaoVisualizar(); comparaRelatorio("relatorio01.pdf", "relatorio.pdf"); } } Test Page T E C H D A Y | T E S T E S D E S O F T W A R E
  • 23. Suricato – Implementação de Testes public class ExtratoClientePage { public void preencherTitulo(String cdTitulo) { digitaNoCampo("Título", cdTitulo); esperaAjaxCarregar(); } public void preencherDtCorrecao(String dtCorrecao) { digitaNoCampo("Correção até*", dtCorrecao); } public void clicarNoBotaoVisualizar() { clicaNoBotao("Visualizar"); esperaPaginaCarregar(); } } Page Test T E C H D A Y | T E S T E S D E S O F T W A R E
  • 24. Suricato – Execução de Testes Relatório de Extrato de Cliente – Consulta do extrato T E C H D A Y | T E S T E S D E S O F T W A R E
  • 25. Suricato – Execução de Testes Relatório de Extrato de Cliente – Relatório para comparação T E C H D A Y | T E S T E S D E S O F T W A R E
  • 26. Conclusão – Processo de Automação Período: 15 meses Horas/Mês: ±47,1 Testes: 685 + 224 Defeitos Prevenidos: +190 T E C H D A Y | T E S T E S D E S O F T W A R E
  • 27. Conclusão – Defeitos Prevenidos 0 50 100 150 200 250 set-13 out-13 nov-13 dez-13 jan-14 fev-14 mar-14 abr-14 mai-14 jun-14 jul-14 ago-14 set-14 out-14 nov-14 Falhas acumuladas Falhas 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 T E C H D A Y | T E S T E S D E S O F T W A R E
  • 28. Conclusão – Eficácia dos Testes 0 5 10 15 20 25 30 35 40 45 set-13 out-13 nov-13 dez-13 jan-14 fev-14 mar-14 abr-14 mai-14 jun-14 jul-14 ago-14 set-14 out-14 nov-14 % dos defeitos detectados pela automação 5,1 15,7 25 7,5 33,3 27,6 15,6 20 26,3 10 42,8 40 16,2 20 42,8 T E C H D A Y | T E S T E S D E S O F T W A R E
  • 29. Conclusão – Histórico de Erros 0 5 10 15 20 25 30 35 set/13 out/13 nov/13 dez/13 jan/14 fev/14 mar/14 abr/14 mai/14 jun/14 jul/14 ago/14 set/14 out/14 nov/14 Média semanal 24 20 19 16 15 30 18 17 15 18 10 10 13 15 10 - 58% T E C H D A Y | T E S T E S D E S O F T W A R E
  • 30. Conclusão – Histórico de Erros 0 20 40 60 80 100 120 140 160 set/13 out/13 nov/13 dez/13 jan/14 fev/14 mar/14 abr/14 mai/14 jun/14 jul/14 ago/14 set/14 out/14 nov/14 Estoque de erros 127 150 151 125 95 111 92 105 79 73 47 40 20 33 6 - 96% T E C H D A Y | T E S T E S D E S O F T W A R E
  • 31. Cenário Atual T E C H D A Y | T E S T E S D E S O F T W A R E • Queda na quantidade de erros reportados pelo cliente • Baixa quantidade de erros no estoque da equipe • Prioridade no desenvolvimento de novas implementações • 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 • Execução de testes automatizados para versão interna e de envio • Prioridade para especificação de testes de novas implementações
  • 32. Desafios • Atualizar e manter o projeto do Suricato • Manter testes existentes • Manter base de dados • Execução de testes em paralelo • Validar duplicação entre testes de UI, Serviço e Unitários • Trabalho em conjunto entre analistas de testes e desenvolvedores • Elaboração de especificação de testes para todas as implementações da versão T E C H D A Y | T E S T E S D E S O F T W A R E