3 Processo de Teste. 3.1.Visão Geral do Processo

Documentos relacionados
7 Conclusão e Trabalhos Futuros

5 Mini Casos. 5.1.Campos Numéricos Interface e Especificação

4 Ferramentas. 4.1.Editor de Tabela de Decisão

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 29

InfoMix Tecnologia. SYSFARM Sistema de Gerenciamento de Farmácias UC003 Manter Produto Caso de Testes. Versão 1.00

Marcos Borges Pessoa. Geração e execução automática de scripts de teste para aplicações web a partir de casos de uso direcionados por comportamento

2 Estado da Arte. 2.1.Geração automática de casos de teste

Ferramenta para Manutenção, Interfaces. Rodrigo Zimmermann

ESTRUTURA DO ARQUIVO PARA IMPORTAÇÃO DOS DADOS CONTÁBEIS

DT Geração Automática Informações Adicionais da Apuração Geração Informações Adicionais da Apuração

Manual de Integração Web Service Administradora de Cartões

3 Uma Arquitetura Distribuída via WEB

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

Teste de software. Engenharia de software Profª karine sato da silva

2 Estado da arte 2.1. Desenvolvimento dirigido por comportamentos

Especificação do Trabalho Prático

4 Caso de Uso no Ambiente Oracle

Tutorial de Administração de sites do Portal C3

JUnit. Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues

4 Processo de Transformação

1 Objetivo. 2 Descrição do domínio. Primeiro Trabalho - Segundo semestre de 2007 Sistema de Apoio a Jogos Lotéricos. 2.1 Caracterização dos jogos

WebZine Manager. Documento de Protótipo. Versão 2.0. Histórico de Revisão

Processos de software

José Carlos Ramalho Alda Reis Lopes Pedro Rangel Henriques

Documento de Requisitos SISTEMA DE APOIO À ESCRITA (SAPES)

Manual de utilização do CSPSNet Versão 3.0

Software Para Geração de Consultas e Relatórios

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

Treinamento do Censo da Educação Superior Módulo Migração

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

Implementação do framework de testes automáticos Fates Web no contexto do projeto SIGA-EDU

Ubiratam Carvalho de Paula Junior Rafaelli de Carvalho Coutinho

Censo da Educação Superior - Módulo Migração

Manual de Versão Sistema Condomínio21

Testes Automatizados. Cursos de Verão 2007 IME/USP Dairton Bassi & Paulo Cheque

Manual do Usuário Webmail SoftSul

edictor 1.0 beta 010 M a n u a l F e v e r e i r o, Paixão de Sousa, Kepler & Faria 2010 Versão 2014 do Manual: Igor Leal

30% a 50% dos custos desenvolvimento A complexidade torna impossível teste completo (cobertura total) Mas...

Tutorial sobre o MineraFórum

Introdução a Teste de Software

SISTEMA ATENA INSTITUIÇÕES DE ENSINO

Fundamentos de Teste de Software

Ferramenta: Spider-CoCoMo

Sankhya Web Connection. Versão: 02 Criado em: 28/03/2017

Importador de Notas Fiscais Eletrônicas

Visual Basic.NET Image Lists, Tree e List Views, Toolbars, Status e Progress Bars e Tab Controls Lista de Exercícios

Carregar Documentos Fiscais - Fornecedor (Modelo 57) - Conhecimento de Transporte Eletrônico. Última Atualização 11/01/2019

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Sistema de Controle de Pedidos SISCOP. SISCOP Sistema de Controle Pedidos RT002 Incluir Ponto Remoto Estratégia de Testes. Versão 2.

E-Dictor 1.0 beta. M a n u a l. F e v e r e i r o, Paixão de Sousa, Kepler & Faria 2010

Carregar Documentos Fiscais Fornecedor (Modelo 93) Fatura de Conhecimento de Transporte. Última Atualização 11/01/2019

Guia Doxygen. Emanuel Filipe Galdino Alves

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

2 Conceitos. 2.1 Sistema Multiagentes Abertos e Abordagens de Leis

M A N U A L D O ADMINISTRADOR

Aprendizado de Máquina

Especificações de Casos de Uso e Regras de Negócio

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão

FLUXO ELETRÔNICO DE TCC Orientação de TCC

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Algoritmos e Estruturas de Dados II. Trabalho Prático 3

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

Versão 6.04 Novembro/2013

Manual de Utilização (Fluxo)

Manual Pedido Eletrônico Orgafarma

Boletim Técnico. Plano de Desenvolvimento Individual (PDI) Desenvolvimento/Procedimento. Produto : Totvs Gestão de Pessoas Versão 12.1.

QEA Integração entre a ferramenta para desenvolvimento de sistemas web Quellon e o Enterprise Architect

6 Ferramenta para a Especialização de Mecanismos de Persistência

Teste de Software. Karen Frigo Busolin Novembro / 2010

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Introdução ao ProjectLibre

GUIA DE INÍCIO RÁPIDO

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Manual de Utilização. Atualização Versão 3.6. Este documento tem como objetivo explicar o funcionamento das novidades que compõem a versão 3.6.

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Tutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto

Apêndice 1. Recomendações para testes de módulos

DEMONSTRATIVOS DO DIPR

Uma Abordagem para Testes de Acessibilidade dos Sistemas Desenvolvidos no CPD-UFRGS

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

3 Arquitetura do Sistema

Primeiros passos das Planilhas de Obra v2.5 Instalação, configuração e primeiros passos para uso das planilhas de obra

Upgrade SRM 7.0 Comprador/Contratador

Manual de Operacionalização do Módulo de Prestação de Contas PCS

MANUAL. Certificado de Origem Digital PERFIL PRODUTOR. Versão

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]

Netbeans 8.1 (Ubuntu / Mint / Debian)

Documento de Protótipo

Computação II MAB EPT/EP1. Interface Gráfica - Tkinter. Brunno Goldstein.

Liberação de Atualização

Manual do Usuário SinFAT Web

MANUAL DE INSTRUÇÕES SISTEMA OPERACIONAL MÉTODO QUANTUM 2014

Transcrição:

3 Processo de Teste Nesse capítulo será apresentado um processo de teste que foi desenvolvido para que diminua o retrabalho e o esforço gasto no processo de teste tradicional. Inicialmente é mostrada uma visão geral do processo e cada macro atividade desse processo será detalhada em uma seção específica. 3.1.Visão Geral do Processo A figura 3 apresenta um processo de teste desenvolvido que possibilita a transformação da especificação dos requisitos em scripts de teste de maneira semiautomática. Interface designer User Interface Architect Interface sketch Architect Specifier Standard use cases Transformation Marked up use cases State machine editor State machines Reviewer Data dictionary Designer Decision table generator Test case selection criterion Test case generator Typed decision tables Decision table editor Decision tables Test cases Boundary conditions adder Boundary conditions criterion Format & print Figura 3 Processo de Testes Performable test cases Manual test cases Test script generator Test tool specification tool Automated test scripts

26 Esse trabalho irá contémplar uma parte desse processo, sendo que futuramente serão realizados trabalhos para completar o processo. O processo de teste utilizado neste trabalho é o apresentado na figura 4. Cada um dos módulos apresentados são independentes um dos outros e a única comunicação existente é realizada através de arquivos. Essa independência permite que qualquer um dos módulos possa ser substituído, desde que a saída, ou seja, o arquivo obedeça ao formato estabelecido. Por exemplo, em um processo de teste que gera scripts JUnit, caso se queira substituir o formato do script utilizado para passar a utilizar Selenium, é necessário somente criar um módulo de geração de scripts para esse formato e substituir o gerador de scripts JUnit utilizado anteriormente. Isso é importante, pois garante uma maior flexibilidade ao processo. Figura 4 Processo de Testes O processo inicia com a criação de uma tabela de decisão. Essa tabela de decisão irá representar o comportamento de uma determinada interface do sistema a ser testado e será armazenada em um arquivo. A segunda atividade tem como responsabilidade atribuir tipos para os campos da interface descrita na tabela de decisão e gera um arquivo que contém a tabela de decisão tipada. Esse segundo arquivo é utilizado como entrada para a próxima atividade, que é a geração dos casos de teste. Esse módulo irá gerar um arquivo que contém todos os casos de teste e cada caso de teste possui o valor de cada campo e o oráculo do teste. A descrição mais detalhada de cada uma das atividades está descrita nas seções subseqüentes. Para a realização de cada uma dessas etapas foi

27 desenvolvida uma ferramenta que auxilia o processo. Todas essas ferramentas estão descritas no capítulo 3. 3.2.Criação de Tabela de Decisão A primeira atividade do processo é a geração da tabela de decisão. Para tal, é necessário que um integrante da equipe de teste leia os requisitos para uma determinada funcionalidade e descreva as condições e ações associadas à funcionalidade em uma tabela de decisão. Como foi dito anteriormente uma das características mais importantes da tabela de decisão é a possibilidade da verificação de completeza e não ambigüidade. O resultado desse processo será uma tabela de decisão descrita em um arquivo. Para auxiliar essa atividade foi desenvolvida a ferramenta ETD em Java para fazer a criação de tabelas de decisão e a verificação da completeza e não ambigüidade da mesma. 3.3.Edição de Tabela de Decisão Para possibilitar a geração dos casos de teste e correspondentes scripts de teste, é necessária a adição de algumas informações relativas aos campos da interface e que inicialmente não estão descritas na tabela de decisão. As informações sobre o campos são relativos aos tipos de valores assumidos e também de comportamento individuais que serão detalhadas no próximo parágrafo. Para adicionar essas informações foi desenvolvida a ferramenta ETD que permite a gerar um arquivo contendo informações da tabela de decisão igual estava descrito no primeiro arquivo e informações adicionais relativa aos campos. Essas informações adicionais estão sempre relacionadas com os campos da interface a ser testada. Para todos os campos é informado qual seu tipo de componente gráfico, sendo que as opções possíveis são: campo texto, botão, lista, combo box, radio button ou check box. Além disso, alguns componentes gráficos possuem características especiais. Quando o componente é do tipo campo texto, existem duas informações adicionais: o tipo de valor que o campo aceita e a regra de preenchimento do

28 campo. Essa regra só é preenchida quando o tipo do valor é string e essa regra é na verdade uma expressão regular para representar a formatação do campo. O componente do tipo lista e combo box tem três informações adicionais: os valores válidos, os valores não válidos e se o campo permite seleção múltipla. 3.4.Geração Automática de Casos de Teste Para a geração automática dos casos de teste são necessários dois passos: a geração de quais serão os casos de teste e os dados para cada caso. Os casos de teste são extraídos da tabela de decisão. Cada coluna da tabela de decisão representa um caso de teste. Para realizar a geração automática de dados de teste, serão utilizadas as condições da tabela de decisão criada anteriormente. É importante ressaltar que os dados são sempre gerados a partir de uma tabela verificada, ou seja, completa e não ambígua. Por esse motivo, os relacionamentos entre as condições não restringem a geração dos dados, já que eles são controlados quando do preenchimento e validação da tabela realizada na primeira etapa. A geração de dados é realizada de acordo com o tipo de campo descrito no arquivo da tabela de decisão tipada. Quando o tipo do campo é numérico uma restrição é a faixa limite. Para gerar esse dado, é necessário apenas gerar um número aleatório que respeite o limite do caso de teste. Lembrando que como são gerados dados para cada caso de teste, os limites de cada variável irão variar. Quando o campo for do tipo String serão utilizadas gramáticas para gerar valores para esse campo. Essas gramáticas serão recuperadas do arquivo. A geração de dados também depende do tipo de componente da interface que está sendo testado. Para os dois tipos apresentados anteriormente, será utilizado o componente campo de texto. Para geração de dados para componentes do tipo radio button, check box só é informado qual opção deve ser selecionada. Por último, quando o componente é do tipo lista, existirá no arquivo de entrada a definição de quais elementos da lista são válidos, quais não são e se é possível selecionar mais de um elemento. No final, essa ferramenta irá gerar um arquivo contendo todos os casos de teste.

29 3.5.Geração Automática de Scripts de Teste Para realizar testes funcionais, existem duas formas: utilizar a técnica de capture e replay ou programar teste para interfaces gráficas. Como os scripts são gerados automaticamente utilizamos a segunda forma. A segunda forma é normalmente utilizada para processo de desenvolvimento baseado em testes, ou seja, quando uma interface é desenvolvida ela já é testada. Isso acarretará algumas modificações do script e também do código, já que utilizamos em nosso experimento um sistema legado. Essas modificações serão detalhadas na seção de experimento. A primeira atividade da etapa foi uma pesquisa das ferramentas existentes para que se pudesse escolher a mais adequada para o projeto. Foram encontradas diversas ferramentas que fazem teste de interfaces gráficas para Java. A tabela 3.1 apresenta as características das ferramentas. Das 8 ferramentas grátis avaliadas, apenas 3 delas possuem todas as características importantes para o projeto, são elas: FEST, Abbot e UISpect4J. Essas três ferramentas foram testadas e a escolhida foi a FEST, apenas por permitir a geração dos scripts de maneira mais fácil. Softwares Recuperação de Suporta Suporta Faz Capture Gera Funcionalidades elementos da JUnit TestNG Replay Relatório Adicionais interface FEST X X X X Gera scripts Abbot X X X Possui Editor próprio Frankestein X X Interligação com linguagem Ruby Jemmy X JFCUnit X Marathon X X Script gerados em python ou ruby UISpect4J X X X Possibilita integração com dados escritos em CSV,. Jacareto X Tabela 3.1 Comparativo entre ferramentas de teste automatizado. Será gerado um script de teste no formato JUnit em um arquivo.java para cada tabela de decisão, e cada caso de teste está descrito em um método dentro do script. Para realizar a geração automática dos scripts de teste foi utilizado como

30 arquivo de entrada o arquivo contendo os casos de teste e dele foram extraídos todas as informações necessárias para a construção do script. Como foi dito anteriormente, existem algumas modificações que são necessárias antes de executar o script. Uma delas é a inserção da instanciação da interface a ser testada no script gerado. Essa linha não é gerada automaticamente porque seria necessário o conhecimento dos parâmetros para instanciar a interface. Outra modificação necessária, só que nesse caso não é no script gerado e sim no código da aplicação, é inserir para todos os elementos gráficos um nome especifico que é o nome das condições descritas na tabela de decisão. Esse nome é utilizado no script para reconhecimento dos componentes gráficos. Essas modificações são um trabalho manual que precisa ser realizado, mas que só precisa ser realizado uma vez por versão de software. Acredita-se que o tempo gasto com esse trabalho manual seja bem inferior ao trabalho manual de geração de testes, logo o processo de teste apresentado nesse trabalho ainda seria melhor do que a geração manual. 3.6. Validação do Processo Para realizar a validação do processo foram realizados dois tipos de experimentos. O primeiro tipo consiste na construção de seis pequenos programas para testar se o processo de teste funciona. Cada um dos programas tem como objetivo testar um componente gráfico diferente. Os componentes gráficos testados foram: campo numérico, campo string, checkbox, combobox, lista e radio button. No capítulo 5 são apresentados, para cada um desse programas desenvolvidos, os outputs do processo de teste desenvolvido nesta dissertação que são: a tabela de decisão, o arquivo da tabela de decisão, o arquivo com os casos de teste e o arquivo contendo o script de teste gerado. O segundo tipo de experimento era fazer a validação do processo em um sistema em produção.