segunda-feira, 23 de março de 2015

Teste automatizado salvou minha vida....ou não

Sei que esse assunto é velho, mas volta e meia me deparo com o mesmo problema. Automação de Teste.

Apesar do assunto já não ser novidade (o que pode ajudar a ter ainda mais problemas), ainda a falta de conhecimento sobre automação é grande.

Mas o que é automação?
É a aplicação de técnicas computadorizadas ou mecânicas para diminuir o uso da mão-de-obra em qualquer processo. 
A automação diminui os custos e aumenta a velocidade da produção.

A automação de teste não foge muito do mesmo conceito. 
É a aplicação de técnicas que utilizam comandos programados para operar um dado processo e determinar que os comandos sejam executados corretamente.
Antes esse processo era executado por humanos, agora executados pelo computador.

Depois de uma rápida ambientação, vamos falar um pouco sobre alguns desses "problemas".

quinta-feira, 8 de janeiro de 2015

Falando um pouco sobre teste manuais em aplicativos mobile - Parte 1

Inseridos no mercado que está em rápido movimento e lotado, como temos hoje, os aplicativos móveis precisam ser desenvolvidos rapidamente com qualidade a um custo ideal. 

Partindo do princípio que os desenvolvedores estão desenvolvendo aplicativos de alta qualidade, cabe nós,  Analistas de Teste "provar" a qualidade do aplicativo. E como podemos provar que há qualidade no aplicativo?

O que podemos provar, é a "falta" de qualidade, testando o aplicativo e mostrando que há falhas.
Mas já sabemos que não há tempo hábil para testar tudo (e também é impossível),  mas temos que tentar testar o máximo possível.

Devemos analisar muito bem os riscos e os danos que podem acontecer se algo der errado nas mãos dos usuários.

terça-feira, 30 de dezembro de 2014

UI AutoMonkey - Teste Automatizado iOS

Pesquisando na internet sobre Teste Automatizado em iOS, me deparei com uma página onde tratava o assunto UI AutoMonkey.

Achei muito interessante. Então baixei o código para estudar como funciona. (o link para o site está no final desse artigo) 

Depois de baixar, abrir o script no Instruments. (clique aqui e saiba mais sobre o Instruments)

No começo o código parece um pouco complexo. Mas com a curiosidade era muito grande, pluguei o dispositivo no cabo e rodei o script do jeito que estava.
Para minha surpresa, funcionou, mas não em sua totalidade.

Fiquei empolgado com a idéia de poder executar esse tipo de teste nos aplicativos.

Então debrucei no código para entender como ele funcionava. Quando falo que debrucei, entende-se cair de cabeça e explorar cada linha de comando.

Mas você pode estar se perguntando: O que é UI AutoMonkey? 

quarta-feira, 10 de dezembro de 2014

Criando Facilidades no seu Teste - Teste Automatizado iOS

Irei falar um pouco da minha experiência até agora com testes automatizados em iOS.

Depois do meu último artigo sobre testes automatizados em iOS, tive algumas idéias que agilizou e muito o meu trabalho.

Uma das coisas que mudou, foi a forma de organizar o script de teste.
Pensei de como seria mais fácil se tivesse um "API" de teste, um script onde pudesse colocar todos os comandos, e no meu teste simplesmente chamasse a função.

No que isso me ajudou? 
Como hoje estou automatizando dois aplicativos em iOS, consegui usar o mesmo script "API" para ambos.

Deixa eu dar um exemplo:
Em um determinado momento, precisei rolar a tela para esquerda e depois a tela para direita.

sexta-feira, 31 de outubro de 2014

Esperas inteligentes - Teste Automatizado iOS

Olá!
Esse é o segundo artigo sobre Teste Automatizado iOS.

Nesse artigo irei falar um pouco sobre um problema que esbarrei e como consegui resolver.

Algumas coisas realmente são diferentes do Selenium. 
O Instruments só aceita a linguagem JavaScript, limitando bastantes comandos que costumava a usar no Selenium.

Mas depois de algumas dificuldades, consegui resolver alguns.

Umas das dificuldades é esperar um elemento ser carregado na tela.
No Selenium, rapidamente usaria o Wait, esperando pelo elemento ser carregado ou sumir da tela, para depois interagir com um elemento.

Usando o Instruments não tem um Wait inteligente. O comando que existe é o Delay, onde você coloca um tempo determinado, e ele espera. É uma pausa na execução do teste.
É uma maneira de resolver o problema, mas não é a melhor.

Imagina o seguinte cenário: 

terça-feira, 14 de outubro de 2014

Primeiro Artigo - Teste Automatizado iOS

Já tem bastante tempo desde o meu último artigo.
Estou em um novo desafio na minha carreira. 
Agora estou implementando testes automatizados para dispositivos móveis.

Depois de estudar, e meter a mão na massa, venho compartilhar alguns do meus conhecimentos.

Esse é o primeiro artigo de uma série que está por vir.
Sendo o primeiro, irei compartilhar uma simples função, mas em outros artigos, irei compartilhar um pouco do meu trabalho.

A essência não muda muita coisa (estruturalmente falando).
Seguindo a mesma linha de organização para testes automatizados (Organizando seu Teste Automatizado - WebDriver C#), vamos ao primeiro artigo sobre Teste Automatizado para iOS (UI Automation).

Ferramenta: Instruments (Xcode)
Linguagem: JavaScript

Como não tem muito material disponível na internet para automatização usando o Instruments, tive que ralar um pouco no começo.

terça-feira, 5 de agosto de 2014

Gerando Print da Tela para Evidência - WebDriver C#

Como prometido no artigo anterior Organizando seu Teste Automatizado, hoje irei mostrar como gero o print das telas de sucesso e erro no teste.

Como já havia explicado que o projeto está no começo, ainda estou usando para gerar os prints uma classe, que mais tarde irá se transformar em um DLL robusta.

Então vamos para o que interessa.
Ela está no diretório EvidenciaTeste com o nome Evidencia_Imagem.cs


O código para gerar o print das telas do teste.