• No results found

Chapter 3: Data collection and research methodology

3.4. Ethical considerations

A avaliação qualitativa consistiu em verificar de maneira menos formal a satisfação dos sujeitos ao realizar as tarefas utilizando as duas ferramentas. Os sujeitos responderam um questionário que continha cinco perguntas de satisfação e uma pergunta relacionada ao tempo que os usuários levaram para preparar o ambiente de testes utilizando cada uma das ferramentas durante o

treinamento fornecido no 2º dia. A Tabela 27 apresenta as perguntas feitas aos sujeitos.

Código Pergunta

P6 Qual a ferramenta que lhe ofereceu

melhor suporte para realizar a definição das regras de design?

P7 Qual a ferramenta que lhe ofereceu

melhor suporte para realizar a criação

dos testes de comportamento

excepcional?

P8 Qual a ferramenta que lhe ofereceu

um log mais detalhado e legível?

P9 Qual abordagem você acha que lhe

forneceria uma documentação mais legível sobre o comportamento excepcional da aplicação?

P10 Qual a ferramenta, no geral, que lhe

propiciou uma melhor realização de teste de comportamento excepcional?

P11 Quanto tempo você levou para montar

o ambiente da ferramenta no seu projeto de Software (no segundo dia)?

Tabela 27: Perguntas da avaliação qualitativa

Para cada uma das perguntas de satisfação (P6 a P10) obteve-se as respostas descritas nos gráficos exibidos a partir da Figura 35 até Figura 39 a seguir:

Figura 35: Gráfico em barras com o resultado da P6

Figura 36: Gráfico em barras com o resultado da P7

Figura 38: Gráfico em barras com o resultado da P9

Figura 39: Gráfico em barras com o resultado da P10

No geral, observa-se que houve uma maior satisfação com a utilização da VITTAE em relação a JUnitE. Por exemplo, o resultado da P5 provavelmente se deu devido ao fato de que a utilização do XML Schema permitiu que os sujeitos utilizassem o editor de XML da ferramenta Eclipse [Eclipse 2012] com características de autocomplete e visualização da estrutura utilizando uma interface gráfica, diferentemente da JUnitE onde as regras são descritas dentro de um vetor de objetos do tipo String. O resultado das perguntas P7, P8 e P10 provavelmente foi devido ao nível de amadurecimento da ferramenta, que possui uma visualização do log no estilo já conhecido do JUnit e fornece toda uma infraestrutura para auxiliar na criação dos testes através da geração dos mocks

e do esqueleto de testes, enquanto a JUnitE fornece o log em um arquivo texto, utilizando uma sintaxe simbólica para representar o fluxo da exceção durante o teste. No caso da P9 a utilização de um arquivo separado dos testes para definição das regras parece permitir não só que regras sejam adicionadas sem a necessidade de recompilar os testes como também que o arquivo das regras sirva como um dos documentos que descreve a arquitetura do sistema, permitindo que os desenvolvedores e projetistas tenham um melhor entendimento do comportamento excepcional do sistema como um todo, enquanto a utilização da JUnitE não permite essa concentração das regras em um único documento ou arquivo.

No que diz respeito ao tempo gasto para preparação do ambiente (P11), a medição foi realizada no dia 2 por 10 alunos (apenas ressaltando que estes sujeitos não estavam organizados de acordo com o quadrado latino, como ocorreu na análise quantitativa) que executaram a configuração do ambiente de cada ferramenta no mesmo sistema, com base em um tutorial fornecido. Os resultados são descritos na Tabela 28.

Sujeito Ferramenta Tempo(s)

1 Vittae 758 2 Vittae 120 3 Vittae 377 4 Vittae 539 5 Vittae 392 6 Vittae 402 7 Vittae 840 8 Vittae 720 9 Vittae 360 10 Vittae 1200 1 JUnitE 1226 2 JUnitE 240 3 JUnitE 607 4 JUnitE 524 5 JUnitE 846 6 JUnitE 993 7 JUnitE 600 8 JUnitE 840 9 JUnitE 720 10 JUnitE 1800

Figura 40: Gráfico Box-Plot referente ao tempo para a configuração do ambiente para as duas ferramentas

Figura 41: Desempenho individual dos sujeitos ao configurar o ambiente das ferramentas.

Embora os resultados não tenham relevância estatística, é facilmente observável através das Figuras 40 e 41 que os sujeitos realizaram a configuração do ambiente da VITTAE em um tempo menor que os que realizaram a configuração da JUnitE. Isso provavelmente se deve ao fato de que a VITTAE possui uma opção direta para seleção do projeto Java, onde ela automaticamente inclui as libs, cria os pacotes de teste e os arquivos de regras de design. Já o processo utilizando a JunitE é totalmente manual.

6.3.1 Ameaças à validade do estudo

Uma das ameaças à validade do estudo diz respeito à marcação do tempo para realização da configuração do ambiente. Essa marcação foi realizada manualmente pelos alunos e está passível de erro. Além disso, visto que as perguntas realizadas foram bastante subjetivas, e os alunos tiveram contato com as ferramentas em apenas três ocasiões, um maior período de contato com as ferramentas poderia alterar o resultado do estudo.

6.4 Discussões

Este capítulo apresentou um estudo experimental avaliativo para comparar as ferramentas resultantes das abordagens de Sales Júnior e Coelho [Sales Júnior and Coelho 2011], a VITTAE, e de Di Bernardo et al. [Di Bernardo et al. 2011], a JUnitE. Foram realizadas duas análises: uma quantitativa mais formal, utilizando um experimento controlado organizado através do quadrado latino, e um qualitativo menos formal baseado em questionários. O estudo quantitativo mostrou que há indícios de que os resultados obtidos pelas duas ferramentas são equivalentes no contexto em que foram aplicadas. O estudo qualitativo, embora não tenha relevância estatística, deu indícios de que a VITTAE aparenta ser mais amigável para o usuário. No próximo capítulo falaremos sobre os trabalhos relacionados.

7 Trabalhos relacionados

Nesta seção são apresentados os trabalhos de pesquisa diretamente relacionados com esta dissertação. Podemos organizar tais pesquisas em quatro categorias: (i) abordagens de verificação estática do código base de tratamento de exceção (seção 7.1); (ii) abordagens de testes do código base de tratamento de exceção (seção 7.2); (iii) abordagens para definição de regras de design para tratamento de exceção (seção 7.3); (iv) processos de desenvolvimento que integram exceções dentro do inteiro ciclo de vida do desenvolvimento de software (secão 7.4). Por fim, na seção 7.5 realizamos o fechamento do capítulo.