terça-feira, 13 de maio de 2008

Manual do TestLink 1.7 em português

Pessoal,
Está disponível pelo grupo DFTestes (grupo do Yahoo) o manual da ferramenta TestLink 1.7 em português (pt-br) para download.
Agradecimentos a estas moças pela tradução:
  • Marcela Batista Freire
  • Lizandra Carl Nascimento
  • Danielle Rangel
E a Ricardo Castilho.
Para baixar o documento é necessário fazer parte do grupo DFTestes

O TestLink é uma ferramenta web opensource para gerenciar Casos de Teste, bem como organizá-los em Planos de Teste.

Fora este documeto existem muitos outros que valem a pena serem baixados e estudados.

DFTestes: http://br.groups.yahoo.com/group/DFTestes/
TestLink: http://www.teamst.org/

sábado, 3 de maio de 2008

Conhecendo o BadBoy - parte 2

Nesse post iremos aprender a utilizar as ferramentas Data Source e FormPopulator do BadBoy e aplicar um exemplo.
Primeiro explicarei brevemente como funciona cada uma destas ferramentas no BadBoy e depois faremos um exemplo pratico.
No final do post existe uma video-aula mostrando como foi criado o scrip. Você também pode visualizar os scripts diretamente no Youtube pelo link http://br.youtube.com/sembugs


Data Source
Muitas vezes precisamos interagir com um banco de dados ou efetuar consultas para verificar resultados dos nossos testes manuais. O BadBoy traz este ferramenta para que possamos carregar dados de um banco de dados através de uma conexão ODBC do Windows.
Inserimos um Data Source no script arrastando e soltando ele da aba Tools até o ponto que desejamos. Um ponto importante é colocarmos o Data Source ligado a um step sem qualquer outro item no step. Existem alguns requisitos que devem ser atendidos para a correta utilização do Data Source:


  • Todos os valores para todas as variáveis devem aparecer um uma única tabela
  • O nome das colunas deve ser idênticos as das variáveis
  • Se existiram dados repetidos em uma coluna, crie uma coluna de identificação com um numero seqüencial
Quando adicionamos um Data Source podemos ter a conexão ODBC criada ou simplesmente criá-la pela própria interface do BadBoy. A janela de propriedades do Data Source apresenta quatro itens importantes:

  • DataSource: é nele que selecionamos ou criamos a conexão ODBC. No momento que você insere o Data Source (item) é apresentada a tela para criar ou selecionar a conexão ODBC. Se você necessitar alterar a conexão clique no botão Change..
  • Load from Table: Selecione a tabela ou planilha apresentada pela conexão ODBC. É desta tabela que os dados serão carregados
  • Load Using SQL: Se necessitarmos carregar parte dos dados de uma tabela podemos escrever um comando em SQL para carregar estes dados
  • Map Columns to Variables: Se marcado como Automatic o BadBoy pressupõe que o nome das colunas da tabela e das variáveis são idênticas. Com Custom nos selecionamos somente as colunas que desejarmos.



A utilização correta do Data Source para efetuarmos loops no script tem de estar ligada a um step. Para isso devemos entrar nas propriedades do step e marcar o item Repeat for each value of variable e informar a variável. Note que já devemos ter a variável criada. Outro item a ser levado em consideração é que toda a ação na pagina que dependa do loop deve Ester contida neste step.






Form Populator

Em praticamente todas as paginas web que necessitam que o usuário entre com dados nele são utilizados um elemento HTML chamado Form. O Form HTML consiste em caixas de entrada de dados e um botão de submissão destes dados.

O BadBoy trabalha muito bem com esse elemento HTML através do Form Populator. Ele basicamente verifica se existe algum elemento Form na pagina e pega todos os dados dele, trazendo a informação consigo para poder popular com dados.
Não precisamos utilizar o Form Populator para a maioria dos scripts criados, uma vez que os dados já são transmitidos por parâmetros no request (requisição). Utilizamos ele em casos que não conseguimos, de forma fácil, entrar com dados em um formulário.





Para inserir um Form Populator devemos inseri-lo abaixo da requisição que contem o Form.
Podemos clicar sobre cada informação carregada pelo Form e inserir um dado ou atribuir a ele uma variável, como mostra a figura acima. Na propriedade do Form podemos informar o elemento Form alvo e se o método é Populate ou Clear, ou seja, inserir valores ou limpar o Form.

Exemplo de utilização do Data Source e Form Populator
Agora veremos um exemplo pratico de como utilizar estas duas ferramentas. Nosse exemplo será sobre o site de demonstração da ferramenta TestLink, onde criaremos um script que efetua o login com dois usuários, um de cada vez, e no momento do login verificarmos se o usuário que entrou no sistema é o correto. Primeiro teremos que criar um banco de dados no MS Access com duas colunas: login e password e inserir os valores abaixo. A vídeo-aula mostra como criar o banco.

login password
admin testlink
leader leader


Agora é necessário criar uma conexão ODBC com qualquer nome, vamos escolher “BanocBadBoy”. A video-aula mostra como criar a conexão ODBC.
Depois do banco e a conexão ODBC criada vamos partir para a criação do script:



  1. Abra o BadBoy e no primeiro step arraste e solte o item Data Source para ele. Será apresentada a tela para selecionarmos ou criarmos a conexão ODBC. Como já criamos selecionamos a conexão criada (BancoBadBoy ou o nome escolhido por você)
  2. Após selecione a tabela criada segundo a estrutura que falamos acima. Feche a janela de propriedades do Data Source.
  3. Agora insira um step e digite o seguinte endereço na barra de URL: http://testlink.org/demo/login.php. Será criada uma requisição para a página.
  4. Arraste a ferramenta Form Populator para baixo da requisição criada. Será apresentada sua tela de propriedades. Feche a janela. O Form Populator deve apresentar os campos de login e password abaixo dela.
  5. Insira o usuário admin e senha testlink para autenticação no TestLink. Sera criada uma nova requisição.
  6. Seleciona o texto “Role :: [ admin ]” e clique no botão Easy Assertion. Isso servirá depois para validarmos o usuário.
  7. Depois da asserção criada efetue um logoff no sistema.
  8. Agora vá até a requisição abaixo do Form Populate e crie duas variáveis para os parâmetros de login e password clicando com o botão direito sobre cada uma e selecionando Add as variable
  9. Entre nas propriedades do Check da Assertion criada. Dentro do texto do Check substitua “admin” por “${login}”.
  10. Em cada item do Form Populator insira a variável correspondente digitando o nome dela para cada um.
  11. Agora entre nas propriedades do Data Source, selecione o item Custom no painel Map columns to variables e deixe marcado os dois itens: login e password.
  12. Agora basta fazem a repetição do step que contem todas as ações na pagina. Fazemos isso abrindo a janela de propriedades do step e selecionando o item For each value of variable com o valor login.
    Fazendo isso dizemos que o step vai ser executado novamente para cada valor de login diferente no banco de dados.

Agora é só executar o script, na primeira iteração ele ira preencher os dados com o usuário admin e verificar pela Assertion se o nome do usuário é igual ao mostrado na tela. Depois do logoff o valor de login é alterado e o step é executado novamente.


Fontes do exemplo (banco e script) aqui.


Como criar o banco com MS Access



Como criar a conexão ODBC no Vista (semelhando no Windows XP)


Como criar o script de exemplo


domingo, 20 de janeiro de 2008

Conhecendo o BadBoy - parte 1

Bom, depois de um tempo sem postar resolvi escrever sobre uma ferramenta de automação de testes muito boa e facil de usar: o BadBoy <http://www.badboy.com.au/>.
BadBoy é uma ferramenta desenvolvida em C++ (sim, não vai funcionar no linux, infelizmente) que grava todas ações que você faz em uma página web (java, php, ruby, etc...). Ele é capaz de gravar, como uma macro, tudo o que você faz na página web como requests, parâmetros, alert, respostar, etc.. Com ele você pode alterar parâmetros das páginas que você está testando, efetuar asserções por texto (simples ou html), cor, javascript, etc... Veremos então, nesta primeira parte, a estrutura básica do BadBoy e suas principais ferramentas (pelo menos as mais fáceis de utilizar. Segue a tela principal do BadBoy (numeração em vermelho)




  1. Barra de ferramnetas
    Aqui encontramos todos os botões para as principais ações no Badboy, veromos com detalhes cada uma das ações asseguir e nos outros tutoriais.

  2. Barra da URL
    Aqui digitamos o endereço de entrada que iremos gravar o script e onde aparecerão as demais url's enquanto vamos navegando nas paginas.

  3. Estrutura do Script
    Aqui é apresentada a principal estrutura de script do BadBoy com a estrutura de

    • Suites: Organiza seu script da mesma forma de um test, mas com a diferença de ter apenas uma suite (não nesessário, pois o suite e test possuem quase as mesmas funcionalidade).
    • Tests: Organiza o seu script como um teste, podendo transforma-lo em um template (que tambem será apresentado mais tarde). Você pode organizar o Tests como um TestCase ou como partes agrupadas de teste no seu script
    • Steps: Organiza o seu script como passos para execução de determinada ação ou grupo de ação. Um step pode virar uma Thread, pode repetir N vezes, pode ser monitorada e ser transformada em test.

      Uma estrutura básica com um script é apresentada abaixo:



  4. Tools
    Tools apresenta uma série de ferramentas para auxilia-lo na gravação, execução e visualização do seu script.

    • Summary: Apresenta todos os dados referente a execução do seu script (nro de execuções, falhas, sucessos, tempo medio de execução, etc...)
    • Variebles: apresenta todas as variaveis que podem ser utilizadas no script para substituir um determinado parâmetro.
    • Graph: Apresentação do gráfico contendo o tepo medio da execução de cada step do script.
    • Toos: Uma série de ferramentas que podem ser adicionadas no seu script para ajuda-lo a obter o sucesso da execução do seu script.
    • Checkers: Série de analisadores que podem ser inseridos para efetuar alguma verificação na página.
    • References: itens que podem ser adicionados como requirements ou defeacts para ajudar você a visualizar o que precisa see verificado ou ajuda-lo em algum decisão dentro da ferramenta, a fins ilustrativos.

  5. Visualizador da página
    É aqui será exibida a página enquanto você grava sua execução. Você interege com a pagina neste painel, onde também pode aplicar os checkers.
Como Gravar um Script no BadBoy
Os passos para a gravação de um script é bem fácil

  1. Abra o BadBoy. Ele já estará em mode de gravação, que pode ser visualizado pelo botão Record pressionado na barra de ferramentas
  2. Digite a URL na barra de endereço. O BadBoy Automaticamente criará a o request com todos os parâmetros da página requisitada.
  3. Começe a interagir ocm a página no painel de visualização da página. Todas as ações na página serão adicionadas na estrutura do script do BadBoy.

Bom, por enquanto é isso... Você pode ir exercitando a criação de scripts com o BadBoy abrindo o programa selecionando o Menu Help/Tutorial.

Na proxima parte de apresentação do BadBoy iremos aprender a manipular os parâmetros, aplicar asserções na página e salvar um relatório de execução do script.

quinta-feira, 20 de setembro de 2007

Testes pós entrega

Você deve estar se perguntando ao ler o titulo Teste pós entrega: "Porque eu deveria testar a aplicação após a entrega, já que existe um período de testes e homologação para garantir a qualidade (ou parte dela) da minha aplicação"?

Bom, vou citar alguns pontos a favor:
  • Achar aqueles bugs bem "tinhosos" (não é o foco, mas pode acontecer)
  • Garantir, sob condições diversas vários critérios como usabilidade, performance, etc... (após a entrega e, provavelmente quando você estiver verificando a aplicação o cliente está usando)
  • Verificar resultados esperados
  • Continuar achando bugs
Pontos "contra":
  • Pode aumentar o custo de teste
  • Má organização e planejamento de testes
  • Demanda tempo para testes que podem não estar alocados

Bom, eu fiz um processo aqui na empresa não por existir bugs em produção, mas para continuar garantindo a qualidade da aplicação.
A aplicação em questão é um site de serviços, sendo o mesmo para todos os clientes.

Criei uma Matriz de Ciclo Pós Entrega, que consiste em alocar pessoas por dia/semana para efetuar determinado teste na aplicação. Basicamente este matriz possui:
  • Criar um calendário (pode ser agrupado por dias ou semanas)
  • Lista de Recursos
  • Grupos de Tarefas
No exemplo que será apresentado uma matriz com dias da semana (quase um calendário, os recursos e os grupos de funcionalidades para teste).



No caso do exemplo não cobrimos todos os grupos de funcionalidades já no primeiro dia de teste, efetuamos isso gradativamente, na apresentada, por possuir 13 grupos de funcionalidades ela vai iniciar novamente na 3° semana.

Este é um modelo que eu utilizo aqui, e que tem garantido nossa segurança em relação ao sistema, verificação de usabilidade e as demais questões citadas.

Algumas questões levantadas sobre este tema podem visualizadas na lista da QAI Brasil: http://br.groups.yahoo.com/group/qai-brasil/

Você pode visualizar e baixar o template que criei neste link.

Abraços!