Google+ Followers

sexta-feira, 21 de setembro de 2012

Por que implantar Testes na sua empresa?



 Nos últimos anos, temos visto as empresas desenvolvedoras de software colocar um esforço substancial na melhoria da qualidade de seus produtos. De acordo com o Ministério da Ciência e tecnologia em 2009 cerca de 53% das organizações desenvolvedoras de software tem metas ou diretrizes para qualidade . Este tem sido um trabalho difícil, já que cada vez o tamanho e a complexidade do software crescem e os clientes estão se tornando cada vez mais exigentes. Apesar dos resultados obtidos serem encorajadores, os softwares desenvolvidos ainda está longe de ter defeitos zero.
Nesse cenário toda a variável envolvida no processo de desenvolvimento de software tem um nível crescente de complexidade. Muitas empresas não percebem que implantar um processo de qualidade de software não é uma opção, e sim uma estratégia de se manter no mercado cada vez mais competitivo.
Segundo (Pressman, 2002) “A crescente visibilidade do software como um elemento de sistema e os custos de atendimento associados com uma falha são forças motivadoras para o teste vigoroso e bem planejado.” Diante disso podemos dizer que o teste de software é um dos principais elementos da garantia da qualidade de software. A atividade de testes permite que seu projeto alcance:

·         Garante que o software atende aos requisitos de negócio;
·         Minimização do risco ao negócio;
·         Redução do custo;
·         Agilidade no desenvolvimento e entrega da aplicação;
·         Diminuição de retrabalho;
·         Redução do tempo de homologação de novas versões;
·         Sistemas mais confiáveis, com alto grau de qualidade.


Sendo assim, vale a pena pensar antes de decidir não colocar uma etapa de testes no seu projeto. Motivos não faltam para incluir agora mesmo a etapa de testes.

quinta-feira, 20 de setembro de 2012



 Twiiter: @latinoware
IX Conferência Latino Americana de SL - no Parque Tecnológico Itaipu
Foz do Iguaçu - PR · http://latinoware.org

sexta-feira, 14 de setembro de 2012

Conhecendo o BadBoy (Data Source e Form Populator)

Badboy é uma ferramenta paga e free de automação de testes funcionais, que tem como finalidade automatizar por capture/replay na web e muito fácil de usar. Pode ser baixada e obter mais informações em http://www.badboy.com.au/download
Badboy foi desenvolvida em C++ que grava todas as ações que você faz em uma página web (Java, php, ruby, etc). Ela possui as seguintes características:
·                   Modo de gravação em internet Explorer e Firefox;
·                   É uma ferramenta de teste funcional e teste de carga;
·                   Tem capacidade de exportar para o Jmeter.
Veremos então, neste post como utilizar as ferramentas Data Source e Form Populator e aplicar um exemplo.
Explicarei de forma breve como funciona cada uma destas ferramentas no Badboy e depois faremos um exemplo prático.
A versão do Badboy utilizada para este post foi 2.1.3

Data Source

Diversas vezes precisamos interagir com um banco de dados ou efetuar consultas para verificar resultados de nossos testes manuais. No Badboy existe a ferramenta Data Source 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 o mesmo da aba Tools e soltando ele no ponto que desejamos. Um fator importante a ser dito aqui é que o Data Source é ligado a um step (passo) sem qualquer outro item no step. Existem alguns requisitos que devem ser atendidos para a utilização correta do Data Source:
·                    Os valores de todas as variáveis devem estar contidos em uma única tabela.
·                    Os nomes das colunas devem ser idênticos aos das variáveis
·                    Caso exista dados repetidos em uma coluna, deve-se criar uma coluna de identificação com um seqüencial.

Ao adicionar um Data Source podemos ter a conexão ODBC já criada ou simplesmente podemos criá-la utilizando a interface do Badboy. A janela de propriedades do Data Source apresenta quatro itens importantes, como mostra a Figura 1.

  • 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.



Figura 1 – Propriedades do Data Source

O Data Source deve está ligado a um passo para efetuarmos loops no script. Para isso devemos entrar nas propriedades do step e marcar o item Repeat for each value of variable e informar a variável. Outra questão que deve ser levada em consideração é que toda ação na página que dependa do loop deve está contida neste step, como mostra a Figura 2.

Figura 2 – Repetindo cada valor da variável

Form Populator


Em praticamente todas as páginas web que necessitam que o usuário entre com dados nele são utilizados um elemento HTML chamado Form. Os Form HTML são estruturas que permitem que usuários submetam dados em uma página.
O Badboy trabalha com esse elemento HTM através do Form Populator, como mostra a Figura 3. Verificando se existe algum elemento Form na página e pega todos os dados dele, trazendo a informação consigo para poder popular com dados. Não é necessária a sua utilização para a maioria dos scripts criados, uma vez que os dados já são transmitidos por parâmetros no request (requisição). Utilizamos o Form Populator em casos que não conseguimos, de forma fácil, entrar com dados em um formulário.


Figura 3 – Form Populator

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 prático de como utilizar o Data Source e Form Populator. Nosso exemplo será sobre uma aplicação na qual estou testando, onde criaremos um script que efetua o login, e no momento do login verificaremos se o usuário que entrou no sistema é o correto. Primeiro temos que criar um banco de dados, neste caso utilizaremos uma planilha Excel com duas colunas: txtMatricula e txtSenha e inserir os valores, como mostra a Figura 4.

Figura 4 – Criando o banco de dados
Agora é necessário criarmos uma conexão ODBC com qualquer nome, vamos escolher Badboy_tests. Depois do banco e a conexão criada vamos partir para a criação do script.

Em File selecionar New, será exibido na janela Script uma nova Suíte de teste (Test Suite 1). Renomear de acordo com o desejado, como mostra a Figura 5.
Figura 5 – Criando uma Suíte de Teste

Na aba Tools selecionar o componente Data Source e arrastar abaixo do step criado, como mostra a Figura 6.
Figura 6 – Propriedades do Data Source

Em Attach variable data source selecionar Excel Files e clicar em OK. Será exibido a janela Selecionar pasta de trabalho. Selecionar a planilha Excel criada e clicar em OK, como mostra a Figura 7.


Figura 7 – Selecionando o banco de dados

Será exibida a janela Select a Table para seleção da tabela que irá utilizar. Selecionar a tabela criada e clicar em OK, como mostra a Figura 8.

Figura 8 – Selecionando uma tabela

Será exibida a janela Item Properties, como mostra a Figura 9. Clicar em OK para continuar.


Figura 9 – Propriedades do data source

Depois de criada a conexão com o ODBC, vamos criar o script.
Insira um novo step e selecione o comando Record para gravar. Insira a url desejada e clique na seta verde. Será criada uma requisição para a página, como mostra a Figura 10.

Figura 10 – Inserindo um step

Selecionar na tela de login a Label referente ao usuário, por exemplo, no sistema que estou testando é utilizado a Label: [Login] e clique em Create Easy Assertion, como mostra a Figura 11. Repita o mesmo para a password (no meu caso a Label é [Senha]. Isso servirá depois para validarmos o usuário.

Figura 11 – Comando Create Easy Assertion

Agora vá em Tools, selecione a ferramenta Form Populator e arraste para baixo da requisição criada. Será exibida a janela Item Properties, como mostra a Figura 12.

Figura 12 – Propriedades do Form Populator

Depois da asserção criada, insira o usuário e senha para autenticação no sistema. Será criada uma nova requisição. Selecionar o comando Navigation (Figura 13) e selecionar o comando do modo de gravação e só então realizar o logon no sistema. No momento em que se efetuar o login o Badboy irá capturar o nome dos campos da sua tela.

Figura 13 – Comando Navigation
Entre nas propriedades do Check da Assertion criada. Dentro do texto do Check, como mostra a Figura 14 na coluna The following expression substitua o conteúdo pelo nome dado ao campo referente ao usuário do sistema, por exemplo, eu substitui o texto por ${txtMatricula} e a senha por ${txtSenha}, como mostra a Figura 15.

Figura 14 – Selecionando o Check da Assertion criada

Figura 15 – Substituindo o conteúdo pelo nome informado na tabela

Ainda na janela de propriedades da Check criada, na aba The response must selecione a opção Not contain, como mostrado na Figura 15.

Agora dê dois cliques no Data Source criado, será exibida a janela de propriedades do Data Source. Selecionar na coluna Map Columns to Variables a opção Custom e marque os itens referentes aos campos da sua tabela, como mostra a Figura 16.

Figura 16 – Selecionando as variáveis

Agora basta fazermos a repetição do step que contém todas as ações da página. Fazemos isso abrindo a janela de propriedades do segundo step e selecionando na janela de propriedades do step na coluna Repeat a opção For each value of variable com o valor login, como mostra a Figura 17. Desta forma estamos informando que o passo deve ser executado para cada valor de login inserido no banco de dados.

 
Figura 17 – Selecionando a coluna para repetir o valor da variável

Agora execute o script. Na primeira ele irá preencher os dados com o valor informado e verificar pela Assertion se o nome do usuário é igual ao mostrado na tela, como mostra o exemplo da Figura 18. Depois do logoff o valor do login será alterado e o step será executado novamente.


Figura 18 – Exemplo de utilização do Data Source

Esperamos que este post seja de grande utilidade para os entusiastas por qualidade de software e admiradores de ferramentas open source.


Um abraço e até o próximo post.

Para elaboração deste post foi utilizado às seguintes referências:

Sara Meireles e Regina Rodrigues
Analistas de Testes

 

Conhecendo o BadBoy (Data Source e Form Populator)

Badboy é uma ferramenta paga e free de automação de testes funcionais, que tem como finalidade automatizar por capture/replay na web e muito fácil de usar. Pode ser baixada e obter mais informações em http://www.badboy.com.au/download
Badboy foi desenvolvida em C++ que grava todas as ações que você faz em uma página web (Java, php, ruby, etc). Ela possui as seguintes características:
·                   Modo de gravação em internet Explorer e Firefox;
·                   É uma ferramenta de teste funcional e teste de carga;
·                   Tem capacidade de exportar para o Jmeter.
Veremos então, neste post como utilizar as ferramentas Data Source e Form Populator e aplicar um exemplo.
Explicarei de forma breve como funciona cada uma destas ferramentas no Badboy e depois faremos um exemplo prático.
A versão do Badboy utilizada para este post foi 2.1.3

Data Source

Diversas vezes precisamos interagir com um banco de dados ou efetuar consultas para verificar resultados de nossos testes manuais. No Badboy existe a ferramenta Data Source 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 o mesmo da aba Tools e soltando ele no ponto que desejamos. Um fator importante a ser dito aqui é que o Data Source é ligado a um step (passo) sem qualquer outro item no step. Existem alguns requisitos que devem ser atendidos para a utilização correta do Data Source:
·                    Os valores de todas as variáveis devem estar contidos em uma única tabela.
·                    Os nomes das colunas devem ser idênticos aos das variáveis
·                    Caso exista dados repetidos em uma coluna, deve-se criar uma coluna de identificação com um seqüencial.

Ao adicionar um Data Source podemos ter a conexão ODBC já criada ou simplesmente podemos criá-la utilizando a interface do Badboy. A janela de propriedades do Data Source apresenta quatro itens importantes, como mostra a Figura 1.

  • 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.



Figura 1 – Propriedades do Data Source

O Data Source deve está ligado a um passo para efetuarmos loops no script. Para isso devemos entrar nas propriedades do step e marcar o item Repeat for each value of variable e informar a variável. Outra questão que deve ser levada em consideração é que toda ação na página que dependa do loop deve está contida neste step, como mostra a Figura 2.

Figura 2 – Repetindo cada valor da variável

Form Populator


Em praticamente todas as páginas web que necessitam que o usuário entre com dados nele são utilizados um elemento HTML chamado Form. Os Form HTML são estruturas que permitem que usuários submetam dados em uma página.
O Badboy trabalha com esse elemento HTM através do Form Populator, como mostra a Figura 3. Verificando se existe algum elemento Form na página e pega todos os dados dele, trazendo a informação consigo para poder popular com dados. Não é necessária a sua utilização para a maioria dos scripts criados, uma vez que os dados já são transmitidos por parâmetros no request (requisição). Utilizamos o Form Populator em casos que não conseguimos, de forma fácil, entrar com dados em um formulário.


Figura 3 – Form Populator

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 prático de como utilizar o Data Source e Form Populator. Nosso exemplo será sobre uma aplicação na qual estou testando, onde criaremos um script que efetua o login, e no momento do login verificaremos se o usuário que entrou no sistema é o correto. Primeiro temos que criar um banco de dados, neste caso utilizaremos uma planilha Excel com duas colunas: txtMatricula e txtSenha e inserir os valores, como mostra a Figura 4.

Figura 4 – Criando o banco de dados
Agora é necessário criarmos uma conexão ODBC com qualquer nome, vamos escolher Badboy_tests. Depois do banco e a conexão criada vamos partir para a criação do script.

Em File selecionar New, será exibido na janela Script uma nova Suíte de teste (Test Suite 1). Renomear de acordo com o desejado, como mostra a Figura 5.
Figura 5 – Criando uma Suíte de Teste

Na aba Tools selecionar o componente Data Source e arrastar abaixo do step criado, como mostra a Figura 6.
Figura 6 – Propriedades do Data Source

Em Attach variable data source selecionar Excel Files e clicar em OK. Será exibido a janela Selecionar pasta de trabalho. Selecionar a planilha Excel criada e clicar em OK, como mostra a Figura 7.


Figura 7 – Selecionando o banco de dados

Será exibida a janela Select a Table para seleção da tabela que irá utilizar. Selecionar a tabela criada e clicar em OK, como mostra a Figura 8.

Figura 8 – Selecionando uma tabela

Será exibida a janela Item Properties, como mostra a Figura 9. Clicar em OK para continuar.


Figura 9 – Propriedades do data source

Depois de criada a conexão com o ODBC, vamos criar o script.
Insira um novo step e selecione o comando Record para gravar. Insira a url desejada e clique na seta verde. Será criada uma requisição para a página, como mostra a Figura 10.

Figura 10 – Inserindo um step

Selecionar na tela de login a Label referente ao usuário, por exemplo, no sistema que estou testando é utilizado a Label: [Login] e clique em Create Easy Assertion, como mostra a Figura 11. Repita o mesmo para a password (no meu caso a Label é [Senha]. Isso servirá depois para validarmos o usuário.

Figura 11 – Comando Create Easy Assertion

Agora vá em Tools, selecione a ferramenta Form Populator e arraste para baixo da requisição criada. Será exibida a janela Item Properties, como mostra a Figura 12.

Figura 12 – Propriedades do Form Populator

Depois da asserção criada, insira o usuário e senha para autenticação no sistema. Será criada uma nova requisição. Selecionar o comando Navigation (Figura 13) e selecionar o comando do modo de gravação e só então realizar o logon no sistema. No momento em que se efetuar o login o Badboy irá capturar o nome dos campos da sua tela.

Figura 13 – Comando Navigation
Entre nas propriedades do Check da Assertion criada. Dentro do texto do Check, como mostra a Figura 14 na coluna The following expression substitua o conteúdo pelo nome dado ao campo referente ao usuário do sistema, por exemplo, eu substitui o texto por ${txtMatricula} e a senha por ${txtSenha}, como mostra a Figura 15.

Figura 14 – Selecionando o Check da Assertion criada

Figura 15 – Substituindo o conteúdo pelo nome informado na tabela

Ainda na janela de propriedades da Check criada, na aba The response must selecione a opção Not contain, como mostrado na Figura 15.

Agora dê dois cliques no Data Source criado, será exibida a janela de propriedades do Data Source. Selecionar na coluna Map Columns to Variables a opção Custom e marque os itens referentes aos campos da sua tabela, como mostra a Figura 16.

Figura 16 – Selecionando as variáveis

Agora basta fazermos a repetição do step que contém todas as ações da página. Fazemos isso abrindo a janela de propriedades do segundo step e selecionando na janela de propriedades do step na coluna Repeat a opção For each value of variable com o valor login, como mostra a Figura 17. Desta forma estamos informando que o passo deve ser executado para cada valor de login inserido no banco de dados.

 
Figura 17 – Selecionando a coluna para repetir o valor da variável

Agora execute o script. Na primeira ele irá preencher os dados com o valor informado e verificar pela Assertion se o nome do usuário é igual ao mostrado na tela, como mostra o exemplo da Figura 18. Depois do logoff o valor do login será alterado e o step será executado novamente.


Figura 18 – Exemplo de utilização do Data Source

Esperamos que este post seja de grande utilidade para os entusiastas por qualidade de software e admiradores de ferramentas open source.


Um abraço e até o próximo post.

Para elaboração deste post foi utilizado às seguintes referências:

Sara Meireles e Regina Rodrigues
Analistas de Testes