• Nenhum resultado encontrado

O ambiente EvalTool proposto é composto por quatro módulos. O primeiro apresenta um ques- tionário de avaliação que visa a obter diversos dados dos fabricantes sobre as suas respectivas ferramentas de apoio ao teste de software. A partir dos dados presentes num questionário de avali- ação, o segundo módulo possibilita a adição de revisões de usuários sobre esse dados. O terceiro, possibilita a descrição de avaliações comparativas realizadas envolvendo as ferramentas de teste, visando a fornecer informações sobre estudos comparativos entre critérios e ferramentas de teste. Finalmente, o último módulo apresenta diversos resultados estatísticos provenientes dos dados do questionário de avaliação. A seguir é apresentado cada um desses módulos do ambiente EvalTool.

3.2.1

Questionário de Avaliação

Esse questionário de avaliação foi baseado no questionário elaborado pelo Grupo de Trabalho para Teste de Programas Orientados a Objetos da Sociedade Alemã de Computação (Diening et al.,

1999), o qual, originalmente, era composto por oito categorias contendo várias questões de múlti- pla escolha em cada uma delas. Entretanto, com base nas experiências do grupo de Engenharia de Software do ICMC-USP (Colanzi, 1999; Vincenzi, 2000) e, considerando o método como a menor unidade a ser testada, as categorias referente ao teste de classe, hierarquia e cluster do questionário original foram agrupadas em uma única categoria denominada teste de integração. Além disso, uma nova categoria foi adicionada referente a informações sobre o suporte que uma determinada ferramenta oferece a experimentação. Finalmente, o questionário de avaliação ficou dividido em seis categorias mantendo a maior parte das questões de múltipla escolha apresentadas no questionário original. Algumas questões foram adicionadas e outras reposicionadas devido a nova divisão do questionário de avaliação.

A primeira categoria, preocupa-se com informações gerais sobre as ferramentas, tais como, informações administrativas, custo, plataforma, capacidade de integração da ferramenta no ambi- ente de desenvolvimento, ambiente e linguagem de programação, entre outras. Posteriormente, são apresentadas três categorias, que correspondem ao suporte as diversas fases da atividade de teste, ou seja, unidade, integração e sistema. Finalmente, as duas últimas categorias apresentam informações sobre o teste de regressão e o suporte a experimentação. O questionário completo encontra-se no ApêndiceA.

Como mencionado anteriormente, as ferramentas de teste de software OO apresentadas na Seção 2.3.5 foram avaliadas segundo o questionário de avaliação do Apêndice A e os dados obtidos foram adicionados nesse módulo do ambiente EvalTool, os quais podem ser consulta- dos emhttp://sapiens07.icmc.sc.usp.br/~aluis/EvalTool/submittedqr.

php. Para a obtenção desses dados os manuais de usuários das ferramentas de teste foram exami- nados e algumas mensagens eletrônicas foram enviados aos fabricantes e/ou representantes. Esses dados foram verificados por meio da utilização das versões de avaliação das respectivas ferramen- tas utilizando o programa fonte de ordenação descrito na Seção 4.2.1 e mais alguns programas fontes exemplos disponibilizados pelos fabricantes quando alguma característica específica da fer- ramenta não podia ser verificada com esse programa fonte de ordenação.

3.2.2

Revisões de Usuários

A partir de qualquer questionário de avaliação para ferramentas de teste inserido no ambiente Eval- Tool, um usuário pode inserir uma série de revisões, tais como, sugestões, críticas, informações adicionais e/ou comentários sobre experiências obtidas com o uso da ferramenta de teste para cada uma das respostas fornecidas pelos fabricantes. Essas informações serão coletadas no decorrer do tempo e são de grande importância para o apoio à seleção de ferramentas de teste por parte dos usuários e também no aperfeiçoamento e/ou criação de ferramentas por parte dos fabricantes. Os dados adicionados a este módulo do ambiente de avaliação podem ser consultados juntamente com os questionários de avaliação em http://sapiens07.icmc.sc.usp.br/~aluis/ EvalTool/submittedqr.php

3.2.3

Avaliações Comparativas

A disponibilidade de ferramentas de teste viabilizam a realização de avaliações comparativas. Por outro lado, as avaliações comparativas fornecem uma variedade de informações sobre as critérios e ferramentas de teste, sendo assim informações importantes aos diversos tipos de usuários do ambiente EvalTool. Além disso, a pessoa que conduz uma avaliação comparativa envolvendo qualquer ferramenta de teste inserida no ambiente EvalTool pode atribuir uma nota para cada uma dessas ferramentas de teste.

No Capítulo 4 é apresentado a descrição de duas avaliações realizadas com o objetivo de realizar uma comparação entre as ferramentas de teste; e identificar diferenças na aplicação de critérios de teste em diferentes linguagens de programação OO. As informações obtidas nessas avaliações comparativas, os programas fontes e os casos de teste utilizados foram adicionadas nesse módulo do ambiente EvalTool e também podem ser consultados emhttp://sapiens07. icmc.sc.usp.br/~aluis/EvalTool/submitteds.php.

3.2.4

Coleta e Análise dos Dados

Este módulo do ambiente EvalTool tem por objetivo apresentar uma série de resultados estatísticos baseados nos dados obtidos nos módulos anteriores. Alguns exemplos das informações coletadas até o presente momento são descritos a seguir.

As duas primeiras informações obtidas do questionário de avaliação são quantas e quais fer- ramentas de teste suportam uma determinada linguagem de programação e plataforma de desen- volvimento, cujos dados são apresentados nos gráficos das Figuras3.1e3.2, respectivamente.

0 1 2 3 4 5 Quantidade de Ferramentas

C++ Eiffel Java SmallTalk Outras

Linguagens de Programação xSuds ToolSuite TCAT PureCoverage Panorama JTest JProbe Suite C++ Test

Figura 3.1: Gráfico do Suporte às Linguagens de Programação

Para a avaliação das ferramentas de teste por meio do questionário apresentado no ApêndiceA

e para a realização dos experimentos descritos no Capítulo4, a linguagem de programação foi um dos critérios de seleção de ferramentas de teste. Entretanto, mesmo esse critério especificando que as ferramentas de teste deveriam dar suporte as linguagens C++ e/ou Java, algumas ferramentas suportam outras linguagens de codificação, tais como C e Visual Basic. Esse critério de seleção foi responsável pela ausência de ferramentas de teste que suportam outras linguagens de programação OO, tais como Eiffel e Smalltalk.

Em complemento às informações do gráfico da Figura 3.2, a ferramenta C++ Test possui um módulo adicional para coleta de informações referente ao desempenho e uso de memória denomi- nado Insure++. Entretanto, esse módulo funciona somente na plataforma Windows NT-2000.

0 1 2 3 4 5 6 7 Quantidade de Ferramentas

Linux Ms Win 9x/Me Ms Win NT/2000 Unix Outras

Plataformas xSuds ToolSuite TCAT PureCoverage Panorama JTest JProbe Suite C++ Test

Figura 3.2: Gráfico do Suporte às Plataformas de Desenvolvimento

Além do suporte às linguagens de programação e plataforma de desenvolvimento, o suporte às categorias de teste também podem ser vistos sob dois aspectos: o percentual que cada ferramenta satisfaz em cada categoria de teste e o percentual médio acumulado que todas as ferramentas exibem em cada categoria de teste, apresentados nos gráficos das figuras3.3(a) e3.3(b), respecti- vamente.

Para a obtenção do percentual apresentado no gráfico da Figura3.3(a)utilizou-se a razão dos requisitos satisfeitos por uma ferramenta de teste pelo total de requisitos da categoria analisada. A média dos percentuais entre todas as ferramentas de teste para cada categoria formam os dados para o gráfico da Figura 3.3(b). Observa-se nesses gráficos uma grande variação nos resultados das diversas categorias entre as diversas ferramentas de teste, mas de maneira geral, as ferramentas apresentam pouco ou nenhum suporte a fase do teste de integração. Esse fator deve ser considerado pelos fabricantes de ferramentas de teste, visto que uma série de critérios para esse fim foram definidos por diversos pesquisadores, como apresentado na Seção2.3.4.

A última informação apresentada, obtida a partir do questionário de avaliação, é o suporte que as ferramentas de teste possuem em relação à características básicas da orientação a objetos, tais como encapsulamento, herança e polimorfismo. O suporte a uma característica da orientação a objetos significa que a ferramenta satisfez pelo menos um requisito associado a essa característica. O gráfico da Figura3.4apresenta quantas e quais ferramentas suportam essas características.

0% 10% 20% 30% 40% 50% 60% 70% 80%

Percentual de Requisitos Satisfeitos

C++ Test JProbe Suite JTest Panorama PureCoverage TCAT xSuds ToolSuite Ferramentas de Teste Informações Gerais Teste de Unidade Teste de Integração Teste de Sistema Teste de Regressão Suporte a Experimentação

(a) Por Ferramenta

0% 5% 10% 15% 20% 25% 30% 35% 40% 45%

Percentural de Requisitos Satisfeitos

Informações Gerais

Teste de Unidade Teste de Integração

Teste de Sistema Teste de Regressão Suporte a Experimentação Categorias de Teste xSuds ToolSuite TCAT PureCoverage Panorama JTest JProbe Suite C++ Test (b) Por Categoria

0 1 2

Quantidade de Ferramentas

Encapsulamento Herança Polimorfismo

Características Básicas da Orientação a Objetos

xSuds ToolSuite TCAT PureCoverage Panorama JTest JProbe Suite C++ Test

Figura 3.4: Gráfico do Suporte às Características da Orientação a Objetos

Como descrito anteriormente na Seção2.3.2, essas características da orientação a objetos po- dem causar uma série de problemas ou dificuldades na condução da atividade de teste, entretanto, como apresentado no gráfico da Figura 3.4, apenas as ferramentas de Teste C++ Test e JTest apresentam suporte a característica de encapsulamento da orientação a objetos. As demais car- acterísticas, como herança e polimorfismo não são suportadas por nenhuma das ferramentas de teste.

Esses dados também podem ser consultados em http://sapiens07.icmc.sc.usp. br/~aluis/EvalTool/results.php. A seguir, é apresentado o processo de desenvolvi- mento para a implementação do ambiente EvalTool.

Documentos relacionados