Mostrando postagens com marcador testes funcionais. Mostrar todas as postagens
Mostrando postagens com marcador testes funcionais. Mostrar todas as postagens

segunda-feira, 24 de março de 2014

Selenium IDE - "Automação simples na prática!"

Conforme já havia informado anteriormente, passarei a postar de forma simples a utilização de cada ferramenta do Selenium. Portanto, neste post vamos explorar algumas funcionalidades do Selenium IDE, mas antes é interessante sabermos algumas características desta ferramenta.:
  • É um plugin do Firefox que possibilita a automação de testes funcionais, logo será necessário que você possua este browser
  • A utilização é intuitiva, simples e não há a obrigatoriedade de domínio de alguma linguagem de programação
  • Possui comandos específicos chamados "Selenese" que basicamente são divididos em três categorias.: Actions (Operações que o usuário realiza na página web), Accessors (Armazena valores em variáveis, após a análise do estado em que a aplicação se encontra) e Assertions (Verifica o comportamento e se o resultado final da aplicação foi realizado conforme esperado).
Para baixar o Selenium IDE, basta acessar à página oficial do Selenium.
Após realizar o download e instalá-lo, o Selenium já estará acessível no menu principal do Firefox na opção 'Ferramentas'.


Ao executar o Selenium, sua interface se apresentará da seguinte forma.:


Legenda.:
1.  Página da aplicação a ser testada
2.  Velocidade da execução do teste
3.  Executa uma suíte de teste
4.  Executa um caso teste único
5.  Possibilita a definição de regras de agrupamento
6.  Suíte de Casos de Teste
7.  Lista de comandos (Tabela.: Comandos Selenium / Código-fonte.: Linguagem de programação específica)
8.  Botão Gravar.: Ao executar o Selenium, o botão já é acionado automaticamente.
9.  Campo Comando.: Nome que representa sua funcionalidade (obviamente, em inglês) e o mesmo pode ser obtido de três formas distintas.:

  • Realizando a ação manualmente na página após clicar no botão 'Record' de gravação
  • Clicando com o botão direito na página web e vendo a lista de comandos possíveis que o selenium disponibiliza  
  • Inserindo manualmente na própria ferramenta, clicando com o botão direito na aba 'Tabela'
10. Campo Alvo.: Representa o local ou variável na qual o comando está sendo executado ou está direcionando
11. Campo Valor.: intuitivamente sabemos que é o conteúdo associado que terá cada comando quando necessário.
12. Resultado da execução
13. Log de execução
14. Descrições do comando (Reference / UI-Element), são extramente úteis no decorrer da utilização


Agora vamos começar um teste simples de uma busca pelo 'Selenium 2' no Google. Simplesmente entraremos no Google, digitaremos 'selenium 2' na caixa de texto de busca e clicaremos no botão com a lupa representada. Perceba que esta ação, gerou três comandos específicos no Selenium.:



Open.: Abertura da página web
Type.: Entrada de dados
click.: Ação do usuário clicanco na lupa do google

 
Pois bem, agora sim começa a "brincadeira" e a partir destes conceitos acima descritos já é possível ir testando e descobrindo a ferramenta. No caso, realizei a inclusão de alguns comandos simples apenas para dar a noção das possibilidades que a ferramenta fornece ao testador.



No link a seguir, estou fornecendo o arquivo do teste para que você realize em sua máquina e o altere conforme sua necessidade para realização de quantos testes julgar necessário. Neste exemplo de teste, para cada comando inseri comentários que descrevem sua funcionalidade e necessidade dentro da aplicação. 
Download - Teste Busca Google

É importante frisar que as abas 'Mensagens' e 'Reference' são extremamente úteis para elaboração e adequação dos testes, pois indicam os pontos de erros e demonstram claramente a funcão de cada comando. Além disso, os comandos de ponto de início, breakpoint e a possibilidade de regular a velocidade da execução (Fast/Slow) auxiliam na reprodução do teste.

Para finalizar, um grande entusiasta do Selenium na internet, Elias Nogueira, criou alguns desafios que possibilitam o usuário conhecer a ferramenta um pouco mais. Vale a pena conferir.:



Testar é garantir a informação!

sexta-feira, 21 de março de 2014

Automação de Testes Funcionais com Selenium

Ultimamente, venho pesquisando com certa frequência as ferramentas para automação de testes de software disponíveis no mercado. Após uma longa pesquisa na internet, visualização de tutoriais, opiniões e experiências de profissionais da área, optei por estudar e testar a fundo a ferramenta Selenium.

Na realidade, o Selenium é um conjunto de ferramentas "Open Source" para automação de testes em aplicações web, suportando diversos browsers, plataformas e linguagens de programação. Além disso, sua flexibilidade possibilita ao profissional realizar testes funcionais, de regressão e até mesmo de desempenho.

No conjunto de ferramentas Selenium, encontramos os seguintes componentes.:

Selenium IDE.: É um plug-in para o Firefox que permite a captura e reprodução de ações realizadas pelo usuário no navegador.

Selenium RC.: Possui uma API e bibliotecas específicas para várias linguagens de programação, além de um servidor que atua como um proxy para requisições web. O Selenium RC, também chamado de Selenium 1, executa aplicações javascript dentro do navegador.

Selenium WebDriver.: A principal função é automatizar ações de usuários em qualquer navegador utilizando recursos nativos para controlá-lo de forma direta, possibilitando adequação do código-fonte para qualquer necessidade específica juntamente com a integração de algum framework de testes unitários (como por exemplo, o JUnit). Pode-se dizer que é uma evolução do Selenium RC.

Selenium Grid.: Possibilita a distribuição de testes em diversas máquinas para execução em paralelo.



Nos próximos posts, passarei a detalhar a instalação, configuração e a utilização de cada um dos componentes do Selenium. A idéia é explicar de forma simples o conceito de cada componente com exemplos práticos associados.

Testar é garantir a informação!

sexta-feira, 29 de novembro de 2013

Roteiros de Teste Unitário, Integrado e Funcional.: Tão simples assim?

Ao falarmos de forma isolada sobre roteiros de teste, todo analista crê que possui conceitos claramente definidos e completamente embasados em experiências anteriores de mercado, solicitações específicas de determinado cliente ou a aprendizagem de disciplinas em seu curso universitário. No entanto, basta que o analista sente em sua cadeira para modelar os casos unitários, integrados e funcionais de um mesmo projeto para todas as suas dúvidas, que outrora não existiam, começarem a surgir. 

Também não podemos esquecer que há um cenário pior ainda e muito comum.: Após a criação de todos os roteiros de teste, é perceptível que os mesmos possuem divergências, redundâncias e casos de teste desnecessários, mas o analista julga que está tudo correto e nem ao menos levanta dúvidas referente à modelagem dos casos de teste.

Tenho a certeza que você já passou por isso ou já viu ocorrer esta situação em seu local de trabalho. Portanto, iremos demonstrar as principais diferenças entre casos de teste para os roteiros de teste unitário, integrado e funcional, e para isto recorreremos aos principais autores, conceitos e técnicas disponíveis no mercado, bem como criaremos exemplos específicos que demonstrem na prática os diversos conceitos existentes. A intenção não é entrar especificamente na execução dos testes, mas sim demonstrar de forma simples as principais diferenças existentes e consolidar na sua mente todos os conceitos envolvidos. Existem diversas formas de construção para cada roteiro, e tentaremos abordar as melhores práticas para construção de cada um deles.

Utilizaremos um projeto (projetoCalculoSimples) contendo uma tela, 3 classes, 1 stored procedure e 1 acesso DB2 via programa cobol. Veja abaixo imagem detalhada do projeto contendo exemplos de teste unitário (em vermelho), teste integrado (em verde) e teste funcional (em azul).:



Após esta breve introdução, nos próximos 3 posts entraremos em detalhes específicos para a criação de cada roteiro.:

1°) Roteiros de Teste Unitário - "Pequenas partes que garantem a qualidade"
2°) Roteiros de Teste integrado - "Consolidando Relacionamentos"
3°) Roteiros de Teste Funcional - "Visualizando a funcionalidade na prática"

Testar é garantir a informação!