scieee AI-readable full text Open interactive document viewer

Teste de Desempenho em Aplicações SIG Web

Torres-Zenteno, Arturo H.; Martins, Eliane; S. Torres, Ricardo da; Escalona Cuaresma, María José

Abstract

Este artigo propõe um modelo de processo de teste de desempenho para aplicações SIG Web. O modelo considera os casos de uso mais críticos ou de maior risco quanto ao desempenho de um sistema para a criação de cenários de testes. Além disso, prevê a utilização de ferramentas livres para automatização de etapas do processo de avaliação. O modelo foi aplicado ao projeto WebMaps, que é uma aplicação SIG Web cuja finalidade é auxiliar seus usuários no planejamento agrícola a partir de regiões de interesse. Os resultados preliminares obtidos indicam que os testes foram úteis na identificação de problemas da arquitetura preliminar do sistema.

Full text

Teste de Desempenho em Aplicações SIG Web Arturo H. Torres-Zenteno1, Eliane Martins1, Ricardo da S. Torres1, Marí a J. Escalona Cuaresma2 1Instituto de Computação – Universidade Estadual de Campinas (UNICAMP) Caixa Postal 6176, 13084-971 – Campinas – SP – Brasil. {arturo.zenteno,eliane,rtorres}@ic.unicamp.br 2 Departamento de Linguagens e Sistemas Informáticos – Universidade de Sevilla Av. Reina Mercedes s/n. 401012 – Sevilla – Espanha. [email protected] Resumo. Este artigo propõe um modelo de processo de teste de desempenho para aplicações SIG Web. O modelo considera os casos de uso mais críticos ou de maior risco quanto ao desempenho de um sistema para a criação de cenários de testes. Além disso, prevê a utilização de ferramentas livres para automatização de etapas do processo de avaliação. O modelo foi aplicado ao projeto WebMaps, que é uma aplicação SIG Web cuja finalidade é auxiliar seus usuários no planejamento agrícola a partir de regiões de interesse. Os resultados preliminares obtidos indicam que os testes foram úteis na identificação de problemas da arquitetura preliminar do sistema. 1Introdução Um Sistema de Informação Geográfica (SIG) é um software voltado para o gerenciamento de dados geo-referenciados. Os SIG’s são sistemas automatizados usados para armazenar, analisar e manipular dados geográficos, ou seja, dados que representam objetos e fenômenos em que a localização geográfica é uma caracterí stica inerente e indispensável para analisá-los [1, 2]. Neste contexto, um SIG Web é um sistema que provê diferentes serviços SIG de análise e visualização de dados espaciais através da Web [3].O desenvolvimento de sistemas deste tipo é complexo e deve considerar requisitos pouco encontrados em aplicações tradicionais: por exemplo, o grande volume de dados gerenciado (convencionais e geo-referenciados), a diversidade de usuários no ambiente Web e processamento concorrente de requisições. Neste cenário, um dos meios utilizados para se garantir aqualidade destes sistemas é a realização de testes [4] ao longo do processo de desenvolvimento. O propósito deste artigo é propor um modelo de processo de teste para aplicações SIG Web a partir dos casos de uso mais crí ticos ou de maior risco quanto ao desempenho. A realização de testes de desempenho é fundamental para assegurar que estas aplicações sejam adequadas quando da sua implantação e uso. O processo proposto de teste de desempenho lida com as caracterí sticas inerentes das aplicações SIG Web, grande volume de dados e carga de usuários simultâneos, fornecendo um conjunto de atividades de teste bem detalhadas. Estas atividades são integradas em um processo robusto, onde o ponto de partida é identificação dos casos de uso crí ticos que precisam ser testados. Para isso se supõe que os requisitos do sistema foram corretamente especificados. O modelo de processo de teste de desempenho foi aplicado na avaliação do sistema WebMaps, que é uma aplicação SIG Web cuja finalidade é auxiliar seus usuários no planejamento agrí cola a partir de regiões de interesse. Estes testes foram feitos de acordo com cenários reais construí dos baseando-se em estatí sticas de uso reais no Sistema de Monitoramento Agrometereológico [5]. Os resultados preliminares obtidos indicam que os testes foram úteis na identificação de problemas da arquitetura preliminar do WebMaps antes da sua implantação. O artigo inicia com uma descrição geral dos testes de desempenho, assim como, a sua identificação dentro de um processo de desenvolvimento (seção 2).Em seguida, a seção 3 detalha os tipos de testes de desempenho em aplicações Web, mostrando alguns processos de teste existentes. Estas abordagens servem como base para a especificação da proposta do processo de teste de desempenho para aplicações SIG Web (seção 4).A seção 5 apresenta um caso de estudo onde o processo de teste de desempenho proposto é usado na avaliação de um SIG Web real. Por fim, a seção 6 apresenta as conclusões e trabalhos futuros. 2 Testes de desempenho Arealização de testes tem como finalidade assegurar a qualidade do sistema, sendo seu objetivo principal encontrar erros. Os testes também servem para se obter medidas de requisitos não funcionais do software, tais como confiabilidade ou desempenho, usando-se técnicas estatí sticas apropriadas [6]. Entre os diferentes tipos de testes de sistema existentes [7], destacam-se os testes de desempenho. A Fig. 1 mostra uma adaptação do modelo “V”, indicando as diferentes fases do desenvolvimento de sistemas associadas com os tipos de teste existentes [8]. Embora este modelo de testes seja discutível [8], ele será utilizado neste artigo para fim didático. A realização de testes tem por objetivo determinar se o desempenho do sistema integrado é adequado, de acordo com os requisitos do sistema. Testes de desempenho podem ser realizados ao longo do desenvolvimento, mas somente quando todos os componentes são finalmente integrados é que se pode ter uma medida real do seu desempenho [9]. Note que, na Fig. 1, o teste de desempenho se encontra dentro dos testes de sistema, associados à fase de Detalhamento de Requisitos. Molinari [10] mostra a relação entre risco de teste versus requisito de qualidade em aplicações Web, ou seja, quais os requisitos de qualidade que mais comprometem o correto funcionamento destes sistemas caso não sejam corretamente testados. Segundo Molinari, o desempenho é o requisito de qualidade que deveria ter mais cuidado em aplicações Web. Esta importância é ainda mais crí tica em aplicações SIG Web tendo em vista o grande volume de dados gerenciados. Fig. 1. Fases no processo de desenvolvimento vs Tipos de teste (modelo V). 3 Processos de Teste de Desempenho em Aplicações Web Como parte dos testes de desempenho tem os testes de carga (testam o desempenho do sistema levando-se em conta uma carga de usuários simultâneos reais), testes de estresse (testam o desempenho do sistema considerando o número máximo de usuários simultâneos que pode suportar) e os testes de volume (testam a quantidade de dados que o sistema pode gerenciar) [9]. A seguir é descrito os processos de teste de cada um deles. 3.1 Processo de Teste de Carga / Estresse Vários processos de teste de desempenho para aplicações web vêm sendo propostos recentemente [10,11, 12, 13].A Fig. 2 mostra dois destes processos de teste de desempenho: ode Molinari [10] que apresenta o processo em 5 fases (a); e o de Menascé [13] que possui 7 fases (b). Estes processos são aplicáveis tanto para teste de carga como estresse. Molinari inicia o processo com o planejamento de teste de carga / estresse (Fase 1), cujo objetivo principal é identificar e projetar quais funcionalidades poderiam ser testadas no sistema. Já na Fase 2, se procede a especificação e criação de usuários virtuais. Uma vez criados os usuários virtuais, um cenário de teste (Fase 3) correspondente a esta quantidade de usuários é especificado.O cenário é executado na Fase 4. Por fim, a Fase 5 compreende a análise do sistema testado. Fig. 2. Processo de teste de desempenho em aplicações Web. (a) Processo proposto por Molinari [10] e (b) processo proposto por Menascé [13]. Menascé apresenta fases mais abrangentes. Para ele o processo se inicia com uma fase de definição de objetivos do teste de desempenho (Fase 1). Logo na Fase 2 estuda-se o ambiente, ou seja, a infraestrutura (servidores, serviços web), software (sistemas operacionais, middleware e aplicações), as conexões de rede e os protocolos de rede presentes no sistema. A Fase 3 é a mesma da Fase 1 de Molinari. A Fase 4, definição do Workload, é equivalente àfase de criação de cenários e àfase de criação de usuários virtuais de Molinari. Depois, na Fase 6, as ferramentas de teste são instaladas e configuradas. Nas Fases 7 e 8, os testes são executados e o sistema é analisado, respectivamente. Tanto o processo de Molinari quanto o de Menascé é finalizado com o ajuste do sistema, a partir da análise dos resultados dos testes de desempenho. 3.2 Processo de Teste de Volume O teste de volume avalia a quantidade de dados gerenciados em um sistema Web. O objetivo deste teste é determinar a capacidade do sistema em lidar com o volume de dados especificado nos seus requisitos. Em geral, este tipo de teste usa grandes quantidades de dados, o que permite determinar os limites em que o sistema falha. Além disso, costumam ser utilizados na identicação da carga máxima ou volume de dados que o sistema pode gerenciar em um dado perí odo de tempo. A pesquisa realizada até o momento não identificou nenhum processo de teste de volume bem definido que pudesse ser utilizados na avaliação de aplicações web. 4 Processo proposto de Teste de Desempenho em Aplicações SIG Web Esta seção apresenta uma proposta de processo de teste de desempenho em aplicações SIG Web. Primeiramente, as especificações dos processos de teste de carga / estresse e de volume são apresentados de maneira isolada (seções 4.1 e 4.2). Em seguida, suas atividades são integradas em um processo único (seção 4.3). 4.1 Processo proposto de Teste de Carga / Estresse Esta proposta consiste, basicamente, na adaptação dos processos de teste de carga / estresse em aplicações Web vistos na seção 3.1. A Fig. 3(a) mostra que no processo de Molinari se considerou uma inversão da ordem das fases 2 e 3. Esta inversão justifica-se pela importância da criação de cenários para a especificação da quantidade de usuários virtuais que deverão ser criados. Esta inversão permite, portanto, criar diferentes cenários para um mesmo teste de carga / estresse, considerando, por exemplo, diferentes quantidades de usuários virtuais. Fig. 3. (a) Adaptação apartir do processo proposto por Molinari [10] (b) Adaptação do processo proposto por Menascé [13]. A Fig. 3(b) mostra que, no processo de Menascé, as fases 1 e 2 foram consideradas importantes. Estas fases foram agrupadas e consideradas equivalentes à definição dos casos de uso de maior risco. A etapa de definição de casos de uso foi incorporada ao processo de Molinari modificado (veja seção 4.3). 4.2 Processo proposto de Teste de Volume Este trabalho apresenta um processo de teste de volume, ilustrado na Fig. 4. Este processo se inicia com uma fase de planejamento, cujo objetivo principal é identificar a finalidade do teste (Fase 1). Já na Fase 2 identificam-se os cenários de volume, ou seja, cenários que envolvem armazenamento de informação em dispositivos de armazenamento primários (unidades de disco rí gido), secundários (CD, DVD), em banco de dados ou em algum outro tipo de armazenamento. Estes cenários são criados na Fase 3. A Fase 4 corresponde ao cálculo do volume de dados que o sistema gerencia para cada cenário de teste. Finalmente, na Fase 5,o sistema testado é analisado levando-se em conta os resultados do teste realizado e, caso necessário, modificado. Fig. 4. Processo proposto de teste de volume. 4.3 Processo propostode Teste de Desempenho Este trabalhão propõe um processo que integra os testes de carga, estresse e volume na avaliação do desempenho de um sistema SIG Web. A Fig. 5 mostra o modelo proposto, usando a notação UML do diagrama de atividades [14]. Atividades são mostradas através de elipses enquanto setas indicam a ordem nas quais as atividades devem ser realizadas. As setas pontilhadas significam que a relação entre duas atividades não é obrigatória. O processo se inicia com uma fase de planejamento em um ní vel superior (Fase 0), onde se identifica os casos de uso que serão testados. Como dito anteriormente, a identificação de casos de uso críticos e de grande risco é vital para a realização de um bom teste de desempenho. O teste de desempenho pode conter um ou mais testes de carga, estresse e volume. Tanto para os testes de carga como para os testes de estresse se considerou as modificações descritas na seção 4.1. Na parte A da Fig. 5, essas adaptações são apresentadas. O processo começa com uma fase de planejamento do teste de carga ou estresse seguido da fase de criação de cenários. É importante notar que no planejamento dos testes da Fase 1 podem ser definidos um ou mais cenários. Uma vez criados o(s) cenário(s) correspondentes a um teste de carga ou estresse criam-se os usuários web virtuais. Na Fase 4 são executados o(s) cenário(s), enquanto que na última fase (Fase 5), o sistema testado é analisado. A parte B da Fig. 5 mostra o processo proposto para a realização de testes de volume descrito na seção 4.2. Além disso, mostra como os cenários de teste de volume podem se baseiar nos cenários de teste de carga ou estresse caso tenham sido criados. Os testes de volume se iniciam na Fase 1 (planejamento), onde se define o objetivo do teste. Logo na Fase 2 identificam-se o(s) cenário(s) de volume. Esta identificação considera os cenários criados no proceso paralelo de carga ou estresse, ou seja, aqueles cenários que envolvem interação com banco(s) de dados ou com algum tipo de armazenamento de informação. Uma vez identificados, os cenários são criados (Fase 3).Um teste de volume pode conter um ou mais cenários e para cada cenário se determina o volume de dados que suporta (Fase 4). Na Fase 5, estes dados são usados na análise do sistema quanto ao volume de dados permitido. Nesta fase pode-se fazer também uma projeção do volume de dados ao longo do tempo dependendo do planejamento na Fase 1. Fig. 5. Processo proposto de teste de desempenho para aplicações SIG Web. A última atividade do processo de teste de desempenho é o ajuste do sistema. Este ajuste requer a colaboração de todos os membros da equipe de testes na análise dos problemas encontrados e na proposta de soluções. 5Estudo de caso O processo de teste de desempenho proposto foi usado na avaliação do sistema WebMaps, a partir de em um caso de uso crí tico. Esta seção descreve este SIG web, bem como apresenta os resultados preliminares obtidos. 5.1 WebMaps O WebMaps é um projeto em andamento no Instituto de Computação da Unicamp que tem como objetivo permitir o monitoramento e planejamento de safras agrí colas no Brasil. Este sistema integra, em rede, dados heterogêneos de diversas fontes e alguns serviços que gerenciam estes dados. Assim, pretende-se estabelecer uma plataforma base para a formulação, implementação e avaliação de polí ticas integradas de planejamento agrí cola. A Fig. 6 mostra o modelo de casos de uso do WebMaps, onde se especifica os requisitos funcionais do sistema. De maneira geral, o sistema deve permitir cadastros e consultas tanto aos seus usuários cadastrados quanto aos não cadastrados. A versão atual do sistema permite que usuários cadastrem propriedades agrí colas e suas divisões (talhões) indicando as coordenadas geográficas junto com a informação de produtos cultivados. Além disso,permite a realização de consultas referentes à evolução dos plantios ao longo do tempo.Para tanto, o sistema gera para osusuários curvas NDVI (do inglês Normalized Difference Vegetation Index) [15], que são curvas que mostram os í ndices de vegetação por diferença normalizada, ou seja, a quantidade de vegetação em um dado local em um perí odo determinado. Estes í ndices são obtidos a partir do processamento de imagens de satélite obtidas periodicamente. No momento, o WebMaps trabalha com imagens do tipo MODIS de todo o território brasileiro referentes a 4 anos (2001 até 2004) fornecidas pela NASA [16]. Cada imagem ocupa 109,6 MB e uma nova imagem foi obtida a cada 15 dias. O processamento das imagens de satélite para geração de curvas NDVI é lento. Sendo assim, optou-se pelo uso de recortes (máscaras) das imagens, relativas a cada propriedade cadastrada,para diminuir o tempo de processamento. A Fig. 7 apresenta a arquitetura do sistema WebMaps. Ela é composta de uma camada Cliente e uma de Servidor. Aparte do Cliente é o navegador que mostra as páginas processadas pela camada servidora. O Servidor é dividido em três grandes módulos, implementados usando Java e a linguangem C: a) módulo responsável pelo cadastro de usuários e propriedades; b) módulo responsável pela realização de consultas; e c) repositórios de dados ( Postgresql e disco rí gido (HD)). Do lado do servidor, emcontram-se páginas JSP’s, bem como o módulo “Código em C” cuja tarefa é processar as imagens de satélite gerando as máscaras que servem para montar a curva NDVI de interesse para o usuário quando requisitado. A interação entre o código na linguagem C e o código Java é feito mediante o JNI (Java Native Interface). Em [17], Czajkowski apresenta os benefícios do uso de interfaces com códigos nativos no desenvolvimento de aplicações. Fig. 6.Modelo de casos de uso do sistema WebMaps.