Ferramenta de automação de testes de UI – Selenium

Dezembro 29, 2007

Uma ferramenta que efetua testes em sua aplicação web como se um usuário a estivesse usando.

Permite que vc bole um script descrevendo os passos que o teste deve seguir e descubra se o teste foi bem sucedido.
Fantástico, não precisamos mais ficar fazendo aquele trabalho de macaco adestrado, testando manualmente uma interface de cadastro… Será???
Bom, para a ferramenta funcionar vc terá que bolar um script, poutz… só mudamos a forma de trabalho de nosso bichinho. Mas e se algo pudesse gravar as minhas ações perante a interface web que estou utilizando… clique aqui, digite a usuário e senha, clique em confirmar, clique lá, clique cá, verifique se foi escrita a mensagem informando que o usuário está logado? hummm Genial!!!
Seu pedido é uma ordem… o Selenium IDE faz isso pra vc… como um gravador de macros do M$ Office. Vc instala um complemento no FireFox e pode gravar seus passos ao usar seu site…

Agora pense naquela idéia maluca que seu professor sempre dizia sobre os testes regressivos onde a qualquer mudança em seu sistema o correto seria testá-lo completamente para certificar-se que está tudo nos conformes… bom conseguiram resolver este probleminha massante…

Mas eu ainda terei que efetuar ao menos uma vez aquele trabalhinho de macaco… e se eu mudar a interface, opa… faça o teste novamente para alterar o antigo script…

Então tá… temos o Selenium Remote Control…

Pronto… agora está completo e não podemos reclamar de nada. Com o Selenium RC, podemos contruir uma aplicação que efetue os testes, ou seja, imagine que um programador muito bão (um mineirinho esperto) desenvolveu uma interface que é montada dinamicamente através de reflection, onde os ids dos campos tem o nome dos atributos das classes, utilizando reflection também é possível montar os testes dinamicamente… Vc consulta esta classe, obtém o tipo, tamanho do campo e etc. com isso podemos efetuar testes aleatórios inserindo textos e caractéres especiais em campos numéricos e ver como o site se comporta… apareceu aquela bunita telinha do tomcat… tchanammm um erro…

O Selenium Core lhe fornece toda a biblioteca para efetuar a interação com a pagina via programação…

Exemplo:

import com.thoughtworks.selenium.*;
import junit.framework.*;
public class GoogleTest extends TestCase {
    private Selenium browser;
    public void setUp() {
        browser = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com");
        browser.start();
    }

    public void testGoogle() {
        browser.open("http://www.google.com/webhp?hl=en");
        browser.type("q", "hello world");
        browser.click("btnG");
        browser.waitForPageToLoad("5000");
        assertEquals("hello world - Google Search", browser.getTitle());
    }

    public void tearDown() {
        browser.stop();
    }
}

O pessoal do OpenQA está de parabéns…

http://www.openqa.org/selenium/


Vamos descomplicar essa avalanche de inovações que nos bombardeiam?

Dezembro 29, 2007

Navegando pela net a procura de ferramentas que facilitem meu dia-a-dia como programador me deparei com uma série de blogs, sites de fabricantes e geniais inventores focados cada um em vender seu belo peixe ou demosntrar que em sua lista existem as mais novas bugigangas lançadas no mercado… ooohhh isso é muito divertido… descobrir este monte de inovações as quais exigiram boa parte de seu tempo. Mas qual o verdadeiro ganho? demonstrar para os seus que é um profissional atualizado e está na crista da onda? Resolver velhos problemas com uma nova perspectiva de uma solução?

Bom, acabei descobrindo que saber do ultimo modelo do pen drive que vem pintadinho com um personagem engraçadinho ou ver que exite uma ferramenta que tira de vc aquele suspiro de “poutz… pq não pensei nisso antes” mas na hora H deixa a desejar… não evoluem meu ambiente de trabalho, não melhoram minha produtividade, não aumentam o tempo que dedico a minha família e as tantas coisas saudáveis que por desperdício deste deixamos de lado…

Então inicio este projeto com o intuito de refletir sobre uso destas inovações relacionando aos ganhos que realmente contribuem para o enrigecimento dos pilares que dão significado as nossas vidas.

Bom…… boa viagem a todos nós…