SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Robotium e Sikuli –Testes Automatizados
Configuração e execução dos scripts
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL
1
Objetivo
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 2
• Utilizar as ferramentas Robotium e Sikuli para automatizar os testes para dispositivos móveis
e/ou auxiliar os testes manuais, gerando massa de dados.
• Configurar o ambiente de testes para ambas ferramentas.
• Obs.: é recomendado que se utilize uma máquina com Windows 64bits e dedicada para os
testes automatizados.
Robotium
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL
3
O que é o Robotium?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 4
• Uma ferramenta de teste open source para dispositivos Android utilizada para White e Black
Box Testing, focando mais o Black Box Testing.
• Realiza testes unitários.
• Testes podem ser executados em dispositivos reais ou AVD sendo desenvolvidos em Java com
suporte ao Junit 3.
O que é preciso para utilizar o Robotium?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 5
• SDK (Android Standard Development Kit).
• Java SE Development Kit.
• Um dispositivo real (Android) ou um AVD.
• Robotium (robotium-solo-X.X.jar)
* Para facilitar o uso do Robotium, obter o Javadoc dele.
Como configurar o ambiente de testes, utilizando a plataforma
Windows?
Dica: Manter todos os arquivos na unidade C.
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 6
1. Instalar o JDK e o SDK e reiniciar a máquina.
2. Criar uma variável do sistema nova para o SDK.
Computador > Propriedades do Computador > Configurações avançadas do sistema > Variáveis de Ambiente
> Novo
• Nome da variável: Android_SDK
• Valor da variável: É o caminho da SDK (Exemplo: C:android-sdk-windows)
3. Adicionar o caminho das pastas platform-tools e tools na variável do sistema Path.
Computador > Propriedades do Computador > Configurações avançadas do sistema > Variáveis de Ambiente
• Procurar pela variável do sistema Path.
• Clicar em Editar e adicionar o caminho das pastas platform-tools e tools.
• Obs.: Deve ser adicionado ‘;’ entre dois caminhos.
• Exemplo:
(...);C:Program FilesJavajdk1.7.0_25bin;C:android-sdk-windowsplatform-tools;C:android-sdk-
windowstools
Após ter feito este processo, reiniciar a máquina.
Como configurar o ADT no Eclipse IDE?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 7
1. Abrir o ADT localizado no mesmo diretório do SDK (geralmente seu ícone é igual ao do eclipse).
2. Com o ADT aberto, ir em: Window > Preferences > Android
3. Verificar se o caminho da SDK está correto.
4. Clicar em OK.
Testes de Caixa Branca (White Box Test) – O que é?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 8
1. Teste Estrutural.
2. É a investigação detalhada da estrutura lógica interna do código.
3. Inserir as entradas e validar o caminho e transformações destas em saídas esperadas.
Testes de Caixa Branca (White Box Test) – Configuração
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 9
É preciso ter o projeto do aplicativo com o código fonte deste.
1. Botão direito em cima do projeto com o código fonte > Android Tools > New Test Project
2. Inserir o nome do projeto de teste e clicar em Next > Selecionar o projeto (que contém o código fonte do
aplicativo) como o test target > Clicar em Finish
3. Botão direito em cima do projeto de teste > Build Path > Configure Build Path > Selecionar a aba Libraries
4. Clicar em Add External JAR’s > Selecionar o jar do Robotium (robotium-solo-X.X.jar)
5. Clicar na seta ao lado de robotium-solo-X.X.jar, para abrir as opções deste.
6. Clique duplo em Javadoc location > Selecionar a opção Javadoc in archieve > Clicar em Browse (lado
direito de Archieve path) > Selecionar o Javadoc robotium-solo-X.X-javadoc.jar > Clicar em OK
Testes de Caixa Branca (White Box Test) – Estrutura
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 10
package br.cits.componentes.test;
import com.robotium.solo.Solo;
import br.cits.componentes.MainActivity;
import android.test.ActivityInstrumentationTestCase2;
import junit.framework.TestCase;
public class CheckBox2 extends ActivityInstrumentationTestCase2<MainActivity> {
private Solo rob = null;
public CheckBox2(){
super(MainActivity.class);
}
protected void setUp() throws Exception {
super.setUp();
rob = new Solo(getInstrumentation(), getActivity());
rob.clickOnButton("Check Box");
}
protected void tearDown() throws Exception {
rob.finishOpenedActivities();
super.tearDown();
}
}
Testes de Caixa Branca (White Box Test) – O que é?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 11
1. Teste Funcional.
2. É a técnica de testar sem ter conhecimento da estrutura lógica interna do código.
3. O tester não tem acesso ao código e geralmente interage com a UI do aplicativo, providenciando entradas e
examinando as saídas sem saber como e aonde as entradas são processadas.
Testes de Caixa Branca (White Box Test) – Configuração
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 12
É preciso ter o APK assinado para testes. Como assinar um APK?
No ADT, segue os passos abaixo:
1. File > New > Other > Android Test Project
2. Inserir o nome do projeto de teste e clicar em Next > Selecionar a opção This project > Clicar em Finish
3. Botão direito em cima do projeto de teste > Build Path > Configure Build Path > Selecionar a aba Libraries
4. Clicar em Add External JAR’s > Selecionar o jar do Robotium (robotium-solo-X.X.jar)
5. Clicar na seta ao lado de robotium-solo-X.X.jar, para abrir as opções deste.
6. Clique duplo em Javadoc location > Selecionar a opção Javadoc in archieve > Clicar em Browse (lado direito de
Archieve path) > Selecionar o Javadoc robotium-solo-X.X-javadoc.jar > Clicar em OK
Testes de Caixa Branca (White Box Test) – Estrutura
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 13
package com.teste;
import com.robotium.solo.By;
import com.robotium.solo.Solo;
import android.annotation.SuppressLint;
import android.test.ActivityInstrumentationTestCase2;
import junit.framework.TestCase;
@SuppressLint("NewApi")
@SuppressWarnings("rawtypes")
public class Discador extends ActivityInstrumentationTestCase2 {
@SuppressWarnings("unchecked")
public Discador() {
super(launcherActivityClass);
}
private Solo rob;
private static final String LAUNCH_ACTIVITY_NAME = "com.dexetra.dialer.ui.KitkatActivity";
private static Class launcherActivityClass;
static {
try {
launcherActivityClass = Class.forName(LAUNCH_ACTIVITY_NAME);
} catch (Exception e) {
e.printStackTrace();
}
}
Pacote e Activity juntos
Como assinar um APK?
Obs.: Ter o WinRar instalado na máquina.
Voltar para o Teste de Caixa Preta
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 14
1. Criar uma pasta no C.
2. Adicionar o APK e o debug.keystore (C:UsersUSUÁRIO.androiddebug.keystore) na pasta criada.
3. Renomear o APK, trocando a sua extensão de .apk para .zip
4. Abrir o arquivo .zip com o WinRar > Excluir a pasta META-INF
5. Dentro da pasta criada, pressionar a tecla shift e clicar com o botão direito do mouse > Selecionar Abrir uma
janela de comando aqui
6. No CMD, inserir o comando abaixo, substituindo APK pelo nome do APK: jarsigner -keystore debug.keystore -
storepass android -keypass android sigalg MD5withRSA digestalg SHA1 APK.apk androiddebugkey
7. Pressionar a tecla ENTER > Ao terminar o primeiro comando, inserir o abaixo, substituindo APK pelo nome do
APK:
8. zipalign 4 APK.apk Temp APK.apk
9. APK assinado com sucesso!
Considerações e Dicas – Geral
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 15
Para realizar testes em aplicativos embarcados, o dispositivo deve ter Root.
Para que um método seja um teste, seu nome deve ter “test” no ínicio (Ex.: testInserirNota).
Separar os testes por funcionalidade do APK, através de métodos.
Para facilitar a criação do script, conversar com o Robotium.
Exemplo: (sendo private Solo rob;)
Rob, please, click on button. = rob.clickOnButton();
Rob, is check box checked? = rob.isCheckBoxChecked();
Utilizar try catch para apontar um possível erro no código (de acordo com a estrutura mostrada na figura abaixo).
Para a validação de uma funcionalidade apontada pelo teste, usa-se os Asserts.
Exemplo:
assertEquals: garante que o valor de algum objeto na tela é igual ao esperado .
assertTrue e assertFalse: garante que o retorno de alguma função (pesquisa, comparação, etc...) é true ou false.
Para validar se ao clicar no texto 1, o número 1 foi inserido.
Considerações e Dicas – Testes de Caixa Branca
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 16
Os ID’s presentes no código podem ser encontrados em: Projeto (que contém o código fonte) > res > layout
Executar o projeto (que contém o código fonte) como Android Aplication para verificar o fluxo do aplicativo.
Considerações e Dicas – Testes de Caixa Preta
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 17
Para descobrir o nome do pacote e da activity do aplicativo, usar o logcat do próprio ADT. Inserir displayed na
busca do logcat.
O nome do pacote tem o formato (Ex.: br.cits.teste).
A activity vem depois de uma barra ‘/’ (Ex. /.Discador).
É preciso adicionar a regra abaixo no manifest do projeto de black box.
<instrumentation android:targetPackage=" br.cits.teste"
android:name="android.test.InstrumentationTestRunner"/>
Os ID’s presentes no código podem ser encontrados no DDMS (Window > Show View > DDMS).
Utilizando o DDMS, é possível saber o tipo do botão (image button ou button, por exemplo).
Considerações e Dicas – Testes de Caixa Preta
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 18
DDMS
Sikuli
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL
19
O que é o Sikuli?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 20
• Uma ferramenta de teste capaz de automatizar tudo que se vê na tela do computador.
• A ferramenta é orientada por imagens capturadas na tela.
• Sua instalação é extremamente fácil e é desejável sua integração com a ferramenta Mobizen.
O que é preciso para utilizar o Sikuli em dispositivos móveis?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 21
• Java SE Development Kit.
• Mobizen
• Um dispositivo real (Android).
Como configurar o ambiente de testes, utilizando a plataforma
Windows?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 22
1. Instalar o JDK e reiniciar a máquina.
2. Instalar o Mobizen e seguir os passos indicados pelo instalador deste.
3. Instalar o Sikuli IDE e seguir os passos indicados pelo instalador deste.
Como criar os scripts de teste?
©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 23
1. Com o Mobizen sincronizado e
espelhado com o dispositivo a
ser testado, realizar o passo 2;
2. Com o Sikuli aberto, selecionar
as opções de ação localizadas
no menu esquerdo e capturar
o screenshot da área desejada;
3. Após ter criado o script e salvá-
lo, clicar em Executar.
Robotium e Sikuli –Testes Automatizados
Lucas Cortazzo
Analista de Teste Jr.
lucas.cortazzo@citsamazonas.br
55 92 98464-3636
Avenida Açaí, 875 - Bloco E, Distrito Industrial 1 | CEP 69.075-020 - Manaus/AM - Brasil | Tel. +55 92 3308-7200 | Fax. +55 92 3308-8200

Contenu connexe

Tendances

Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Tchelinux
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 
Jugday - Java Básico
Jugday - Java BásicoJugday - Java Básico
Jugday - Java Básico
Paloma Costa
 

Tendances (20)

Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
 
Androi studio
Androi studioAndroi studio
Androi studio
 
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Reduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com LombokReduzindo o boilerplate code com Lombok
Reduzindo o boilerplate code com Lombok
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 
Grails
GrailsGrails
Grails
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Jugday - Java Básico
Jugday - Java BásicoJugday - Java Básico
Jugday - Java Básico
 
Aula 2
Aula 2Aula 2
Aula 2
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para Android
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 

Similaire à Robotium_Sikuli

Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
Eliane Collins
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
Thiago Ghisi
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 

Similaire à Robotium_Sikuli (20)

TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na Cloud
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Como testar sua aplicação Android com Robotium
Como testar sua aplicação Android com RobotiumComo testar sua aplicação Android com Robotium
Como testar sua aplicação Android com Robotium
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimento
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Testes de Sofware
Testes de SofwareTestes de Sofware
Testes de Sofware
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 

Robotium_Sikuli

  • 1. Robotium e Sikuli –Testes Automatizados Configuração e execução dos scripts ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 1
  • 2. Objetivo ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 2 • Utilizar as ferramentas Robotium e Sikuli para automatizar os testes para dispositivos móveis e/ou auxiliar os testes manuais, gerando massa de dados. • Configurar o ambiente de testes para ambas ferramentas. • Obs.: é recomendado que se utilize uma máquina com Windows 64bits e dedicada para os testes automatizados.
  • 3. Robotium ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 3
  • 4. O que é o Robotium? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 4 • Uma ferramenta de teste open source para dispositivos Android utilizada para White e Black Box Testing, focando mais o Black Box Testing. • Realiza testes unitários. • Testes podem ser executados em dispositivos reais ou AVD sendo desenvolvidos em Java com suporte ao Junit 3.
  • 5. O que é preciso para utilizar o Robotium? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 5 • SDK (Android Standard Development Kit). • Java SE Development Kit. • Um dispositivo real (Android) ou um AVD. • Robotium (robotium-solo-X.X.jar) * Para facilitar o uso do Robotium, obter o Javadoc dele.
  • 6. Como configurar o ambiente de testes, utilizando a plataforma Windows? Dica: Manter todos os arquivos na unidade C. ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 6 1. Instalar o JDK e o SDK e reiniciar a máquina. 2. Criar uma variável do sistema nova para o SDK. Computador > Propriedades do Computador > Configurações avançadas do sistema > Variáveis de Ambiente > Novo • Nome da variável: Android_SDK • Valor da variável: É o caminho da SDK (Exemplo: C:android-sdk-windows) 3. Adicionar o caminho das pastas platform-tools e tools na variável do sistema Path. Computador > Propriedades do Computador > Configurações avançadas do sistema > Variáveis de Ambiente • Procurar pela variável do sistema Path. • Clicar em Editar e adicionar o caminho das pastas platform-tools e tools. • Obs.: Deve ser adicionado ‘;’ entre dois caminhos. • Exemplo: (...);C:Program FilesJavajdk1.7.0_25bin;C:android-sdk-windowsplatform-tools;C:android-sdk- windowstools Após ter feito este processo, reiniciar a máquina.
  • 7. Como configurar o ADT no Eclipse IDE? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 7 1. Abrir o ADT localizado no mesmo diretório do SDK (geralmente seu ícone é igual ao do eclipse). 2. Com o ADT aberto, ir em: Window > Preferences > Android 3. Verificar se o caminho da SDK está correto. 4. Clicar em OK.
  • 8. Testes de Caixa Branca (White Box Test) – O que é? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 8 1. Teste Estrutural. 2. É a investigação detalhada da estrutura lógica interna do código. 3. Inserir as entradas e validar o caminho e transformações destas em saídas esperadas.
  • 9. Testes de Caixa Branca (White Box Test) – Configuração ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 9 É preciso ter o projeto do aplicativo com o código fonte deste. 1. Botão direito em cima do projeto com o código fonte > Android Tools > New Test Project 2. Inserir o nome do projeto de teste e clicar em Next > Selecionar o projeto (que contém o código fonte do aplicativo) como o test target > Clicar em Finish 3. Botão direito em cima do projeto de teste > Build Path > Configure Build Path > Selecionar a aba Libraries 4. Clicar em Add External JAR’s > Selecionar o jar do Robotium (robotium-solo-X.X.jar) 5. Clicar na seta ao lado de robotium-solo-X.X.jar, para abrir as opções deste. 6. Clique duplo em Javadoc location > Selecionar a opção Javadoc in archieve > Clicar em Browse (lado direito de Archieve path) > Selecionar o Javadoc robotium-solo-X.X-javadoc.jar > Clicar em OK
  • 10. Testes de Caixa Branca (White Box Test) – Estrutura ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 10 package br.cits.componentes.test; import com.robotium.solo.Solo; import br.cits.componentes.MainActivity; import android.test.ActivityInstrumentationTestCase2; import junit.framework.TestCase; public class CheckBox2 extends ActivityInstrumentationTestCase2<MainActivity> { private Solo rob = null; public CheckBox2(){ super(MainActivity.class); } protected void setUp() throws Exception { super.setUp(); rob = new Solo(getInstrumentation(), getActivity()); rob.clickOnButton("Check Box"); } protected void tearDown() throws Exception { rob.finishOpenedActivities(); super.tearDown(); } }
  • 11. Testes de Caixa Branca (White Box Test) – O que é? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 11 1. Teste Funcional. 2. É a técnica de testar sem ter conhecimento da estrutura lógica interna do código. 3. O tester não tem acesso ao código e geralmente interage com a UI do aplicativo, providenciando entradas e examinando as saídas sem saber como e aonde as entradas são processadas.
  • 12. Testes de Caixa Branca (White Box Test) – Configuração ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 12 É preciso ter o APK assinado para testes. Como assinar um APK? No ADT, segue os passos abaixo: 1. File > New > Other > Android Test Project 2. Inserir o nome do projeto de teste e clicar em Next > Selecionar a opção This project > Clicar em Finish 3. Botão direito em cima do projeto de teste > Build Path > Configure Build Path > Selecionar a aba Libraries 4. Clicar em Add External JAR’s > Selecionar o jar do Robotium (robotium-solo-X.X.jar) 5. Clicar na seta ao lado de robotium-solo-X.X.jar, para abrir as opções deste. 6. Clique duplo em Javadoc location > Selecionar a opção Javadoc in archieve > Clicar em Browse (lado direito de Archieve path) > Selecionar o Javadoc robotium-solo-X.X-javadoc.jar > Clicar em OK
  • 13. Testes de Caixa Branca (White Box Test) – Estrutura ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 13 package com.teste; import com.robotium.solo.By; import com.robotium.solo.Solo; import android.annotation.SuppressLint; import android.test.ActivityInstrumentationTestCase2; import junit.framework.TestCase; @SuppressLint("NewApi") @SuppressWarnings("rawtypes") public class Discador extends ActivityInstrumentationTestCase2 { @SuppressWarnings("unchecked") public Discador() { super(launcherActivityClass); } private Solo rob; private static final String LAUNCH_ACTIVITY_NAME = "com.dexetra.dialer.ui.KitkatActivity"; private static Class launcherActivityClass; static { try { launcherActivityClass = Class.forName(LAUNCH_ACTIVITY_NAME); } catch (Exception e) { e.printStackTrace(); } } Pacote e Activity juntos
  • 14. Como assinar um APK? Obs.: Ter o WinRar instalado na máquina. Voltar para o Teste de Caixa Preta ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 14 1. Criar uma pasta no C. 2. Adicionar o APK e o debug.keystore (C:UsersUSUÁRIO.androiddebug.keystore) na pasta criada. 3. Renomear o APK, trocando a sua extensão de .apk para .zip 4. Abrir o arquivo .zip com o WinRar > Excluir a pasta META-INF 5. Dentro da pasta criada, pressionar a tecla shift e clicar com o botão direito do mouse > Selecionar Abrir uma janela de comando aqui 6. No CMD, inserir o comando abaixo, substituindo APK pelo nome do APK: jarsigner -keystore debug.keystore - storepass android -keypass android sigalg MD5withRSA digestalg SHA1 APK.apk androiddebugkey 7. Pressionar a tecla ENTER > Ao terminar o primeiro comando, inserir o abaixo, substituindo APK pelo nome do APK: 8. zipalign 4 APK.apk Temp APK.apk 9. APK assinado com sucesso!
  • 15. Considerações e Dicas – Geral ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 15 Para realizar testes em aplicativos embarcados, o dispositivo deve ter Root. Para que um método seja um teste, seu nome deve ter “test” no ínicio (Ex.: testInserirNota). Separar os testes por funcionalidade do APK, através de métodos. Para facilitar a criação do script, conversar com o Robotium. Exemplo: (sendo private Solo rob;) Rob, please, click on button. = rob.clickOnButton(); Rob, is check box checked? = rob.isCheckBoxChecked(); Utilizar try catch para apontar um possível erro no código (de acordo com a estrutura mostrada na figura abaixo). Para a validação de uma funcionalidade apontada pelo teste, usa-se os Asserts. Exemplo: assertEquals: garante que o valor de algum objeto na tela é igual ao esperado . assertTrue e assertFalse: garante que o retorno de alguma função (pesquisa, comparação, etc...) é true ou false. Para validar se ao clicar no texto 1, o número 1 foi inserido.
  • 16. Considerações e Dicas – Testes de Caixa Branca ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 16 Os ID’s presentes no código podem ser encontrados em: Projeto (que contém o código fonte) > res > layout Executar o projeto (que contém o código fonte) como Android Aplication para verificar o fluxo do aplicativo.
  • 17. Considerações e Dicas – Testes de Caixa Preta ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 17 Para descobrir o nome do pacote e da activity do aplicativo, usar o logcat do próprio ADT. Inserir displayed na busca do logcat. O nome do pacote tem o formato (Ex.: br.cits.teste). A activity vem depois de uma barra ‘/’ (Ex. /.Discador). É preciso adicionar a regra abaixo no manifest do projeto de black box. <instrumentation android:targetPackage=" br.cits.teste" android:name="android.test.InstrumentationTestRunner"/> Os ID’s presentes no código podem ser encontrados no DDMS (Window > Show View > DDMS). Utilizando o DDMS, é possível saber o tipo do botão (image button ou button, por exemplo).
  • 18. Considerações e Dicas – Testes de Caixa Preta ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 18 DDMS
  • 19. Sikuli ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 19
  • 20. O que é o Sikuli? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 20 • Uma ferramenta de teste capaz de automatizar tudo que se vê na tela do computador. • A ferramenta é orientada por imagens capturadas na tela. • Sua instalação é extremamente fácil e é desejável sua integração com a ferramenta Mobizen.
  • 21. O que é preciso para utilizar o Sikuli em dispositivos móveis? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 21 • Java SE Development Kit. • Mobizen • Um dispositivo real (Android).
  • 22. Como configurar o ambiente de testes, utilizando a plataforma Windows? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 22 1. Instalar o JDK e reiniciar a máquina. 2. Instalar o Mobizen e seguir os passos indicados pelo instalador deste. 3. Instalar o Sikuli IDE e seguir os passos indicados pelo instalador deste.
  • 23. Como criar os scripts de teste? ©2015 CITS AMAZONAS - CENTRO INTERNACIONAL DE TECNOLOGIA DE SOFTWARE DO AMAZONAS. ALL RIGHTS RESERVED - CONFIDENTIAL 23 1. Com o Mobizen sincronizado e espelhado com o dispositivo a ser testado, realizar o passo 2; 2. Com o Sikuli aberto, selecionar as opções de ação localizadas no menu esquerdo e capturar o screenshot da área desejada; 3. Após ter criado o script e salvá- lo, clicar em Executar.
  • 24. Robotium e Sikuli –Testes Automatizados Lucas Cortazzo Analista de Teste Jr. lucas.cortazzo@citsamazonas.br 55 92 98464-3636 Avenida Açaí, 875 - Bloco E, Distrito Industrial 1 | CEP 69.075-020 - Manaus/AM - Brasil | Tel. +55 92 3308-7200 | Fax. +55 92 3308-8200