Buscar

Unidade 2 Processos de Condução de Estudos Experimentais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de 
Software Experimental
Responsável pelo Conteúdo:
Prof. Me. Artur Marques
Revisão Textual:
Mariana Góis
Processos de Condução de Estudos Experimentais
Processos de Condução 
de Estudos Experimentais
 
 
• Perceber a existência de vários processos dentro da engenharia de software experimental;
• Saber onde aplicar cada tipo de processo.
OBJETIVOS DE APRENDIZADO 
• Princípios da Organização do Experimento;
• Pacotes de Laboratório;
• Experimentos;
• Experimentos Controlados em Engenharia de Software;
• Métodos Estatísticos e Análise de Dados em 
Engenharia de Software Experimental;
• A Lei dos Grandes Números.
UNIDADE Processos de Condução de Estudos Experimentais
Contextualização
Nas organizações de desenvolvimento de software atuais, são empregados métodos 
e ferramentas que frequentemente carecem de evidências suficientes sobre sua adequa-
ção, limites, qualidades, custos e riscos associados.
8
9
Princípios da Organização do Experimento
Em sua forma mais simples, um experimento visa prever o resultado introduzindo 
uma mudança nas pré-condições, que é representada por uma ou mais variáveis inde-
pendentes , também chamadas de “variáveis de entrada” ou “variáveis de previsão”. 
A mudança em uma ou mais variáveis independentes é geralmente hipotetizada para 
resultar em uma mudança em uma ou mais variáveis dependentes , também chamadas 
de “variáveis de saída” ou “variáveis de resposta”. 
O projeto experimental também pode identificar variáveis de controle que deve ser 
mantido constante para evitar que fatores externos afetem os resultados. 
O projeto experimental envolve não apenas a seleção de variáveis independentes, de-
pendentes e de controle adequadas, mas também o planejamento da entrega do experi-
mento sob condições estatisticamente ótimas, dadas as restrições dos recursos disponíveis. 
Existem várias abordagens para determinar o conjunto de pontos de design (combina-
ções únicas das conf igurações das variáveis independentes) a serem usados no experimento.
As principais preocupações no projeto experimental incluem o estabelecimento de 
validade, confiabilidade e replicabilidade. 
Por exemplo, essas preocupações podem ser parcialmente tratadas escolhendo cui-
dadosamente a variável independente, reduzindo o risco de erro de medição e garan-
tindo que a documentação do método seja suficientemente detalhada. As preocupações 
relacionadas incluem a obtenção de níveis apropriados de poder estatístico e sensibilida-
de. Experimentos corretamente projetados aumentam o conhecimento nas engenharias.
Os objetivos relacionados à execução de experimentos em Engenharia de 
Software são a caracterização, avaliação, previsão, controle e melhoria a 
respeito de produtos, processos, recursos, modelos, teorias entre outros. 
A importância e o esforço aumentam de um experimento com o objetivo 
“caracterização” a um experimento com o objetivo “melhoria”. Isso signi-
fica que é bastante simples conduzir um experimento com a finalidade de 
caracterização respondendo questões do tipo “o que está acontecendo?”. 
É mais difícil medir algo, por exemplo, um processo ou produto e defini-lo 
“quão bom é isto?”. Os experimentos com a finalidade de previsão além 
da medição precisam de meios de estimativa para mostrar a possibilidade 
de: “posso estimar algo no futuro?”. Para atender a finalidade de controle 
deve existir a possibilidade de gerenciar os atributos de um processo ou 
produto e dar a resposta a “posso manipular o evento?”. Finalmente, a 
finalidade da melhoria supõe que possamos caracterizar, avaliar, predizer 
e controlar, e há os objetivos da melhoria de um processo ou produto que 
possam ser atingidos respondendo a última questão “posso melhorar o 
evento?”. (TRAVASSOS; GUROV; AMARAL, 2002, p. 5)
Conforme escritos de Zeviani (2018) planejar um experimento envolve, observar e 
descrever fenômenos, otimizar o custo-benefício, isolar efeito e determinar as relações 
e causas., produzir resultados confiáveis, a a validade de um experimento é afetada pela 
9
UNIDADE Processos de Condução de Estudos Experimentais
sua construção e execução, portanto, a atenção investida no delineamento experimental 
é importante.
Tabela 1 – Características Observacionais X Características Experimentais
Controle sob as condições de contorno não sim
Controle sob efeito de fatores indesejáveis não sim
Controle dos fatores sob investigação não sim
Determinar relações causais não sim
É o mais comum sim não
É o mais barato sim não
Fonte: Adaptada de ZEVIANI, 2018
Quando falamos de experimentação, devemos recorrer canonicamente a uma me-
todologia para projetar experimentos, e temos Ronald Fisher que escreveu dois livros 
sobre o tema em 1926 e 1935 sobre o desenho de experimentos que teremos que es-
tudar com certeza.
Pode-se resumir esses princípios da seguinte forma:
• Comparação: Em alguns campos de estudo, não é possível ter medições indepen-
dentes para um padrão de metrologia rastreável. As comparações entre os tratamen-
tos são muito mais valiosas e geralmente preferíveis, e muitas vezes comparadas com 
um controle científico ou tratamento tradicional que atua como linha de base;
• Aleatoriedade: Atribuição aleatória é o processo de atribuir indivíduos aleatoria-
mente a grupos ou a grupos diferentes em um experimento, de modo que cada indi-
víduo da população tenha a mesma chance de se tornar um participante do estudo. 
A atribuição aleatória de indivíduos a grupos, ou condições dentro de um grupo distingue 
um experimento “verdadeiro” rigoroso de um estudo observacional ou “quase-experimento”. 
Atribuir unidades a tratamentos aleatoriamente tende a mitigar confusão, que faz com 
que os efeitos devido a outros fatores além do tratamento pareçam resultar do tratamento.
Os riscos associados à alocação aleatória, como por exemplo, ter um sério desequilí-
brio em uma característica-chave entre um grupo de tratamento e um grupo de control; 
são calculáveis e, portanto, podem ser gerenciados até um nível aceitável usando unida-
des experimentais suficientes. 
No entanto, se a população for dividida em várias subpopulações que de alguma forma 
diferem, e a pesquisa exigir que cada subpopulação seja igual em tamanho, a amostragem 
estratificada pode ser usada. 
Dessa forma, as unidades em cada subpopulação são randomizadas, mas não a 
amostra inteira. 
Os resultados de um experimento podem ser generalizados de forma confiável a par-
tir das unidades experimentais para uma população estatística maior de unidades ape-
nas se as unidades experimentais forem uma amostra aleatória da população maior; o 
erro provável de tal extrapolação depende do tamanho da amostra, entre outras coisas.
10
11
• Replicação estatística: As medições estão geralmente sujeitas a variação e incer-
teza de medição; assim, são repetidos e experimentos completos são replicados 
para ajudar a identificar as fontes de variação, para melhor estimar os verdadeiros 
efeitos dos tratamentos, para fortalecer ainda mais a confiabilidade e a validade do 
experimento e para aumentar o conhecimento existente sobre o tópico;
• No entanto, certas condições devem ser atendidas antes que a replicação do 
experimento seja iniciada: a questão de pesquisa original foi publicada em uma 
publicação revisada por pares ou o pesquisador é independente do experimento 
original, o pesquisador deve primeiro tentar replicar as descobertas originais usan-
do os dados originais e o artigo deve declarar que o estudo conduzido é um estudo 
de replicação que tentou seguir o original estudar tão estritamente quanto possível; 
• Bloqueando: trata-se do arranjo não aleatório de unidades experimentais em gru-
pos consistindo em unidades que são semelhantes entre si. O bloqueio reduz as fon-
tes de variação conhecidas, mas irrelevantes, entre as unidades e, assim, permite 
maior precisão na estimativa da fonte de variação em estudo;
• Ortogonalidade: diz respeito às formas de comparação que podem serrealizadas 
de forma legítima e eficiente. Os contrastes podem ser representados por vetores e 
os conjuntos de contrastes ortogonais não estão correlacionados e são distribuídos 
independentemente se os dados forem normais. Um experimento planejado é or-
togonal se os efeitos de qualquer fator compensarem (soma a zero) entre os efeitos 
dos outros fatores. A ortogonalidade garante que o efeito de um fator ou interação 
possa ser estimado separadamente a partir do efeito de qualquer outro fator ou 
interação no modelo.
Por causa dessa independência, cada tratamento ortogonal fornece informações 
diferentes para os outros. 
» Experimentos fatoriais: Uso de experimentos fatoriais em vez do método de um 
fator de cada vez. Estes são eficientes na avaliação dos efeitos e possíveis intera-
ções de vários fatores ou se preferir, variáveis independentes. 
 A análise do projeto do experimento é construída com base na análise de variân-
cia, uma coleção de modelos que particiona a variância observada em componen-
tes, de acordo com os fatores que o experimento deve estimar ou testar.
Os elementos principais do experimento são as variáveis, os objetos, os 
participantes, o contexto do experimento, hipóteses, e o tipo de projeto 
do experimento.
Há dois tipos de variáveis do experimento: dependentes e independentes. 
As variáveis independentes referem-se à entrada do processo de experi-
mentação. Essas variáveis também se chamam “fatores” e apresentam 
a causa que afeta o resultado do processo de experimentação. O pró-
prio valor de um fator se chama “tratamento”. As variáveis dependentes 
referem-se à saída do processo de experimentação. Essas variáveis apre-
sentam o efeito que é causado pelos fatores do experimento. O próprio 
valor de uma variável dependente se chama “resultado”. (TRAVASSOS; 
GUROV; AMARAL, 2002, p. 7)
11
UNIDADE Processos de Condução de Estudos Experimentais
Objetivos de experimento
Construção
causa-efeito
Construção
tratamento-resultado
Execução de experimento
Variável dependenteVariável independente
Observação
Teoria Causa Efeito
Tratamento Resultado
Figura 1 – Quadro conceitual de um experimento
Fonte: Adaptada de WOHLIN et al. 2012
Experimentos precisam de controle, como já vimos e são umas das principais necessidades.
Em engenharia de software devemos utilizar formas mais controladas de estudo, labo-
ratório, manipulação de variáveis, por exemplo:
O tempo gasto para desenvolver e testar algumas funções auxiliares usando:
• programação de pares vs. programação solo;
• realizar teste por último vs. testar primeiro.
Ambiente deve ser controlado, por exemplo:
• seleção de sujeitos (por exemplo, fundos semelhantes);
• curva de aprendizado;
• aplicação tanto para novatos (estudantes) quanto para programadores da indústria;
• randomização sobre os sujeitos.
Tudo deve ser reprodutível, por exemplo, funções e artefatos:
• Porque eles exigem menos tempo na execução;
• Os artefatos, principalmente, são produzidos apenas para o experimento;
• Porém, podem ser reutilizados em repetições de outros experimentos.
Validar reivindicações mais específicas, por exemplo:
• Avaliação do tempo gasto para alterar um pedaço de módulo usando mecanismos 
específicos de variabilidade;
• Medir a eficácia das métricas para detectar um problema determinado no design.
Para Oliveira; Leite; Cysneiros (2012), pesquisadores em Engenharia de Software 
afirmam que somente os experimentos, no centro do processo científico, podem verifi-
car novas teorias e, indicar as correções cabíveis e explorar os fatores críticos dessa nova 
teoria. Afirmam também que novos métodos, técnicas e ferramentas em Engenharia de 
Software não deveriam ser publicados sem antes serem experimentados, validados e 
comparados com os existentes.
Para a Engenharia de Software existem quatro métodos relevantes com a 
finalidade de condução de experimentos. São eles: (1) o método científico 
12
13
que retira do ambiente observado um modelo para definir o conjunto de 
propriedades que devem ser analisadas; (2) o método da engenharia que 
estuda as soluções já utilizadas e aplica alguma suposta evolução na ten-
tativa de achar uma vantagem adicional em relação às soluções iniciais; 
(3) o método analítico, ou matemático, que propõe uma teoria bem for-
malizada, obtém os resultados da aplicação da mesma e compara esses 
resultados com os resultados empíricos e (4) o método experimental que 
propõe e submete repetidamente o novo método a situações para observa-
ção do comportamento com o objetivo de comprovação e aprimoramento. 
O Processo de Experimentação possui dois subprocessos, o Processo de 
Execução e o Processo de Empacotamento. As finalidades das etapas do 
Processo de Experimentação são apresentadas a seguir. A etapa de defi-
nição vai expressar o experimento em termos de objetivos e problemas; a 
etapa de planejamento vai: determinar o projeto do experimento, definir a 
instrumentação a ser utilizada e analisar os aspectos de validação dos resul-
tados. A etapa de execução vai cuidar da coleta dos dados do experimento. 
E a etapa de análise e interpretação vai estudar detalhadamente os dados 
coletados. O processo possui dois pontos de controle, o primeiro existe 
para avaliar a necessidade de replanejar e o segundo existe para avaliar a 
efetividade da etapa de análise dos resultados. O Processo de Empacota-
mento faz a atividade de organizar e guardar as informações a respeito do 
Processo de Execução. (OLIVEIRA; LEITE; CYSNEIROS, 2012, p. 19-20)
Pacotes de Laboratório
As replicações de experimentos desempenham um papel central no método científi-
co. Embora a experimentação da engenharia de software tenha amadurecido muito, o 
número de replicações de experimentos ainda é relativamente pequeno. Os experimen-
tos de engenharia de software são compostos de conceitos, procedimentos e artefatos 
complexos. Os pacotes de laboratório são um meio de transferência de conhecimento 
entre pesquisadores para facilitar a replicação de experimentos.
Com um pacote de laboratório, um grupo externo de pesquisadores em engenharia 
de software pode reproduzir as configurações de uma linha de base. Características dos 
experimentos que podem estar impactando os resultados, como a linguagem de progra-
mação ou a duração da sessão experimental dos experimentos.
Talvez você esteja se perguntando, mas o que é linha de base? Será que é aquela que 
a gente utiliza em gestão de projetos?
Não, estamos falando de engenharia de software experimental, uma disciplina nova, 
tida como estado da arte em estudo de métodos e meios para se desenvolver software
melhor, vou te explicar.
Os dados da linha de base em pesquisa são um conjunto de informações frequente-
mente empregadas para comparar outros dados adquiridos posteriormente. Serve como 
base da maioria dos projetos de pesquisa. Daí, com certeza vem a sua próxima pergun-
ta; o que significa dados da linha de base? Bem, para estudar diferentes assuntos, os 
13
UNIDADE Processos de Condução de Estudos Experimentais
pesquisadores exigem um certo grau de informação prévia para estabelecer o escopo e 
o alcance de sua investigação.
Em um experimento controlado elabora-se um modelo similar a profissio-
nais construindo software. Os participantes, que os representam, aplicam 
a tecnologia sob investigação. Os dados produzidos pela execução permi-
tem que o desempenho seja avaliado, medido e comparado, considerando 
as condições sob as quais o experimento foi. A partir dos resultados de es-
tudos experimentais é construído um corpo de conhecimento, que além de 
prover um alicerce científico para a disciplina de Engenharia de Software, 
favorece a sua respectiva aplicação no mercado, apoiando em tomadas de 
decisão. Entretanto, apenas experimentos isolados não são suficientes para 
o estabelecimento desse corpo de conhecimento, por isso é preciso realizar 
replicações para fundamentar as conclusões obtidas com um nível maior 
de confiança. Quando outros pesquisadoresreplicam um experimento 
com sucesso, a confiança é construída nos procedimentos e nos resultados. 
Realizar uma replicação, que não seja de maneira completamente indepen-
dente do grupo de pesquisa responsável pelo experimento original, requer 
o acesso ao seu respectivo pacote de laboratório. O pacote de laboratório é 
um artefato que contém a descrição dos procedimentos adotados, o conhe-
cimento gerado, os resultados e as conclusões. Revisando essas informa-
ções, replicadores podem compreender como o experimento foi projetado, 
conduzido e analisado. Portanto, o pacote de laboratório consiste em um 
meio de transferência de conhecimento entre grupos de pesquisa de Enge-
nharia de Software. (SCATALON, 2013, p. 15)
As variáveis independentes influenciam na aplicação do objeto de estudo, pois como 
um experimento foca em entender o efeito da mudança em uma ou mais variáveis in-
dependentes. Assim, são chamados de tratamentos, os n valores que um fator possa vir 
a assumir. 
Caso venhamos a utilizar como fator uma forma de técnica, poderemos ter como tra-
tamento um teste estrutural e funcional, por exemplo, de tal forma que haverá variação 
no efeito desejado.
O efeito, nesse experimento dependerá da variável dependente (quantidade de de-
feitos), onde os valores dos resultados foram coletados, enquanto as variáveis indepen-
dentes são os inputs para rodar, assim com a variação desses valores a saída na variável 
dependente mudará.
Variável
dependente
Variáveis
independentes ..
.
Processo
Figura 2 – Esquema de blocos de um processo mostrando o fluxo das entradas através das variáveis 
independentes e o pós-processamento gerando a saída na variável dependente
 Fonte: Adaptada de WOHLIN et al. 2012
Scatalon (2012), reforça que, os tratamentos são aplicados a uma combinação de 
objetos e participantes, sendo que um objeto pode ser, os programas em que devem ser 
14
15
aplicadas as técnicas de teste, e os participantes são as pessoas que aplicam os trata-
mentos, ou seja, alimentam durante suas operações as variáveis independentes.
Experimentos
Agora que você já está adquirindo conhecimento e sabe a importância da engenharia 
de software experimental, talvez comece a perceber o poder de um pergunta bem-feita, 
cuja resposta nos impele a pesquisa para buscar a razão das coisas e acima de tudo a 
verdade imposta aquela situação.
Já deve ter percebido também que, afinal das contas, que os estudos experimentais 
tentam responder a perguntas experimentais. Por exemplo:
• Os “estereótipos” melhoram a compreensão dos diagramas UML?
• Os ‘padrões de design’ melhoram a manutenção do código?
• RUP é melhor que SCRUMBAN para ser usado em uma fábrica de software?
• O uso de ‘JUnit’ reduz o número de defeitos no código da indústria XPTO?
Ideia
De�nição
Planejamento
Operação
Análise e
Interpretação
Apresentação e
Empacotamento
Conclusão
Ex. Processo de um Experimento
Figura 3 – Exemplo de fases para um processo de experimento
Vamos a algumas decisões para dirimir qualquer dúvida futura, já que logo mais 
utilizaremos esse tipo de linguagem para nos referir a experimentos em engenharia 
de software.
• Objeto do estudo: é a entidade que é estudada no experimento. Por exemplo, códi-
go, processo, documentos de design etc. ;
• Propósito: Qual é a intenção do experimento? Por exemplo, avaliar o impacto de 
duas técnicas diferentes;
• Foco de qualidade: O efeito no estudo no experimento. Por exemplo, custo, con-
fiabilidade, correção etc.
15
UNIDADE Processos de Condução de Estudos Experimentais
Perspectiva: Ponto de vista a partir do qual os resultados do experimento são 
interpretados.
Contexto: O “ambiente” em que o experimento é executado.
Vejamos o exemplo no Quadro abaixo para materializar melhor o que queremos dizer:
Quadro 1 – Dados elementares sobre o que será estudado no experimento
Objeto do estudo • Código (C e C++) de aplicações tradicionais.
Propósito
• Avaliando se C++ é melhor que C (benefício de OO?), ou seja, se o 
número de defeitos em programas C++ for menor do que o número 
de defeitos no código C.
Foco de qualidade • (Qual efeito é estudado?): Correção do código.
Perspectiva
Múltipla.
• Pesquisador: avaliando qual linguagem é melhor;
• Gerente de projetos: escolha entre C e C++ em sua organização.
Contexto
• Disciplinas: Estudantes de Ciência da Computação;
• Objeto: uma aplicação simples;
• Encontre os primeiros números ‘n’ na sequência de Fibonacci
Precisamos em seguida planejar:
• A definição determina: “Por que o experimento é conduzido”;
• O planejamento determina: “Como o experimento será conduzido”.
Devemos afirmar claramente:
• Perguntas de pesquisa;
• Contexto (sujeitos e objetos);
• Variáveis;
• Métricas;
• Projeto do Experimento.
O resultado do experimento pode ser perturbado ou até mesmo destruído se não for 
planejado corretamente. 
Como atividades referentes ao planejamento, temos por exemplo:
• Seleção de contexto. Temos quatro dimensões a considerar:
 » off-line vs. on-line;
 » aluno vs. profissional;
 » modelos hipotéticos vs. problemas reais;
 » contexto específico, ou seja, apenas uma determinada indústria vs contexto geral.
• Formulação de hipóteses: A hipótese do experimento é declarada formalmente, 
incluindo uma hipótese nula ou hipótese alternativa;
16
17
• Seleção de variáveis: Determinar variáveis independentes (entradas) e variáveis depen-
dentes (saídas). O efeito dos tratamentos é medido por meio das variáveis dependentes ;
• Seleção de disciplinas: Para generalizar os resultados para a população desejada, 
a seleção deve ser representativa para essa população ;
O tamanho da amostra também impacta os resultados na generalização.
• Projeto de experimento: Como agrupar assuntos e como aplicar tratamentos a 
eles. Os métodos de análise estatística dependem do desenho escolhido:
» um fator com dois tratamentos;
» um fator com mais de dois tratamentos.
• Instrumentação: Nesta atividade são decididas orientações para orientar os partici-
pantes do experimento. O material é preparado e as métricas decididas, por exemplo:
» Treinamento;
» Questionários;
» Diagramas.
• Avaliação de validação, uma pergunta fundamental: quão válidos são os resul-
tados obtidos?
• Validação externa: o resultado do estudo pode ser generalizado fora do escopo 
do nosso estudo?
Aqui devemos tomar cuidado porque há várias armadilhas que podemos cair quanto 
a validade do experimento em engenharia de software, por exemplo:
• Experimento mal designado (materiais e equipamentos) ;
• Sujeitos não preparados para enfrentar o experimento (por exemplo, diretrizes ou 
instruções insuficientes) ;
• Ansiedade dos sujeitos (medo da avaliação, medo do resultado do experimento ser 
diferente do esperado na empresa, as vezes por causa do valor já investido) ;
• Os pesquisadores podem influenciar os resultados procurando um resultado espe-
cífico, ou seja, um problema clássico de viés de experimento ;
• Se o grupo é muito heterogêneo, há o risco de que a variação devido às dife-
renças individuais seja maior do que devido ao tratamento. Podemos inclusive 
termos algo relacionado ao que chamamos de: fatores de confusão, por exemplo, 
variáveis não controladas ou consideradas desprezíveis erroneamente frente ao 
fenômeno. São situações geradas por:
» Tamanho amostral pequeno;
» Baixo poder estatístico.
Já definimos anteriormente hipótese, mas vamos trabalhar com um exemplo, levan-
do em consideração que 2 hipóteses ao menos devem ser formuladas em um experi-
mento em engenharia de software.
Duas hipóteses devem ser formuladas:
• A hipótese nula, deverá afirmar que não há tendências subjacentes reais no experi-
mento as únicas razões para diferenças em nossas observações são coincidência. Esta 
é a hipótese que o experimentador quer rejeitar com o maior significado possível ;
17
UNIDADE Processos de Condução de Estudos Experimentais
• A hipótese alternativa. Esta é a hipótese a favor da qual a hipótese nula é rejeitada.No caso de nosso experimento sobre a comparação da linguagem C vs. C++, poderia 
ficar assim:
• hipótese nula: Os programas C++ contêm, em média, o mesmo número de defei-
tos dos programas C;
• hipótese alternativa: Os programas C contêm, em média, mais defeitos do que os 
programas C++.
As variáveis independentes (entradas) são aquelas variáveis que podemos controlar e 
mudar no experimento.
• Descrevem os tratamentos;
• Descrevem as variáveis para as quais os efeitos devem ser avaliados.
As variáveis dependentes (saídas) são as variáveis de resposta que descrevem os efei-
tos dos tratamentos descritos pelas variáveis independentes. Muitas vezes há apenas 
uma variável dependente e, portanto, deve ser derivada diretamente da hipótese.
Preste atenção aos fatores de confusão!
Não podemos esquecer das variáveis de confusão, que também são chamadas de 
confundidores ou fatores de confusão; elas estão intimamente relacionadas às variáveis 
independentes e dependentes de um estudo. Uma variável deve atender a duas condi-
ções para ser um fator de confusão: Deve ser correlacionada com a variável independen-
te. Pode ser uma relação causal, mas não precisa ser.
• Um fator de confusão: uma variável que pode esconder uma associação genuína 
entre fatores, pode confundir as conclusões do experimento. Por exemplo, pode 
ser difícil dizer se um resultado melhor depende da ferramenta ou da experiência 
do usuário da ferramenta.
Experimentos Controlados 
em Engenharia de Software
Precisamos para nos aprofundar um pouco mais nesse tema entender mais adequa-
damente os fatores de confusão.
Veja o exemplo na Figura abaixo:
Teste de Perfomance
Grupo de Controle
20 Devs JAVA 20 Devs PYTHON
Grupo Experimental
Figura 4 – Exemplo de um experimento totalmente confuso
Como diferentes linguagens foram utilizadas em cada grupo, há uma terceira variável 
que confunde o experimento e torna impossível atribuir causalidade.
18
19
Como regra geral, quando você está projetando um experimento, você quer ter um 
grupo experimental e um grupo de controle. Esses dois grupos devem ser idênticos, 
exceto que o grupo experimental deve receber algum formulário ou tratamento, o que 
chamamos de fator experimental ou variável experimental, enquanto o outro não deve 
receber nada.
Em outras palavras, os dois grupos devem ser totalmente idênticos, exceto para a 
variável experimental. 
Quando essa condição é atendida, você pode então inferir que as diferenças entre os 
dois grupos estão sendo causadas pela variável experimental. Em outras palavras, se os 
dois grupos são completamente e totalmente idênticos em todos os sentidos, exceto para 
variável experimental, então quaisquer diferenças na sua variável de resposta, sua variável 
dependente ou seja, a coisa que você está medindo deve estar sendo causada pela variável 
experimental, porque é a única coisa que difere entre os dois grupos. Mas você também 
pode ter vários grupos experimentais testando coisas diferentes simultaneamente, mas 
seria aumentar a complexidade a toa, portanto focaremos nesses dois grupos.
O problema é que, na realidade, ter dois grupos idênticos quase nunca é possível. 
É aí que entra o tema dos fatores de confusão.
Lembre-se: Um fator de confusão é simplesmente uma terceira variável que pode 
ter um efeito causal, impedindo assim que você seja capaz de atribuir causalidade.
Então em nosso exemplo logo acima, por causa de usar um grupo com JAVA e ou-
tro com PYTHON, teremos problemas certo?! Vê como isso funciona? Por causa dessa 
terceira variável (por exemplo em nosso grupo de controle, ou seja, JAVA), não há como 
atribuir com confiança a causalidade. Afinal não saberemos se Python performa melhor 
porque é uma linguagem relativamente mais nova ou se porque JAVA é muito formal, ou 
porque os Devs não foram bem escolhidos, veja quantas portas abertas para saírem “es-
queletos”. Ao menos os dois grupos deveriam utilizar a mesma linguagem, por exemplo.
Esse é obviamente um exemplo extremo, mas esse tipo de coisa acontece o tempo 
todo em experimentos reais, e pode ocorrer de maneiras muito sutis.
E mesmo que algo sutil mesmo, faça o pesquisador relevar ou ficar mais confiante do 
que devia, realmente pode fazer grandes diferenças em seus resultados, e quando você 
tem um experimento totalmente confuso como esse que usei para exemplificar, você 
simplesmente não pode atribuir causalidade. E aí... já era.
Então, como os engenheiros de software realmente lidam com isso? Afinal, fatores 
de confusão estão por toda parte, e ter dois grupos totalmente idênticos é virtualmente 
impossível. Felizmente, existem várias estratégias importantes para lidar com elas: elimi-
nando, randomizando, bloqueando e medindo.
Bom, seguindo o nosso exemplo lá em cima sobre performance entre JAVA e 
PYTHON, o negócio é o seguinte para eliminar fatores de confusão; poderíamos usar 
apenas uma linguagem para ambos os grupos, isso já retira a linguagem como fator de 
19
UNIDADE Processos de Condução de Estudos Experimentais
confusão. Mas não é o suficiente, gostaríamos de controlar a versão da linguagem que 
utilizaremos, qual o Sistema Operacional que utilizaremos e para qual versão, indo mais 
longe, que computadores, de qual marca, qual processador, com quais especificações, 
se usamos rede local, qual o cabeamento, quais os switchs e routers, quais as distâncias 
entre os pontos e o switch ou hub, a rede elétrica é estabilizada, há ruídos, o ambiente 
tem luz adequada, condicionamento de ar, há conforto ergonômico, e por ai vai.
Parece absurdo, muito pelo contrário, basicamente, a ideia é que se você pode remo-
ver uma variável do seu experimento, então você deve fazê-lo. Lembre-se, idealmente 
você quer que seus grupos sejam totalmente, 100% idênticos. Então, para fazer isso, 
você precisa eliminar o máximo de fatores de confusão que puder.
Então, mesmo depois de controlar todos os fatores de confusão que você pode pen-
sar, quase certamente ainda haverá alguma pequena variação que você não está ciente. 
Por exemplo, pode haver pequenas inconsistências nas habilidades de codificação dos 
Devs do experimento, mesmo que todos sejam Sêniores com 30 anos de experiência 
comprovada etc. Como você não sabe quais são essas diferenças, você não pode elimi-
ná-las, mas pode compensá-las aleatoriamente. Fazendo o que? 
Selecionando aleatoriamente quais vão para cada grupo. Assim, qualquer variação é 
dispersada aleatoriamente em seus dois grupos, em vez de cair desproporcionalmente 
em um grupo. Esta é uma ferramenta extremamente poderosa e importante que deve 
ser usada sempre que possível. Em qualquer experimento, você deve randomizar com-
pletamente sempre que possível.
Métodos Estatísticos e Análise de Dados 
em Engenharia de Software Experimental
Bem vamos para o próximo passo, lembremos que o objetivo de um estudo expe-
rimental é coletar dados em um ambiente controlado, a fim de confirmar ou descartar 
a hipótese. A hipótese refere-se a uma teoria que busca explicar um certo comporta-
mento de interesse, para a pesquisa, e leva à definição de variáveis independentes ou 
dependentes. As variáveis independentes representam a causa que afeta o resultado do 
processo experimental. O efeito da combinação dos valores dessas variáveis refere-se 
às variáveis dependentes. Essas variáveis podem ser quantitativas, expressas em valores 
numéricos que podem ser divididos em escalas de intervalo e razão, ou qualitativas, 
quando não são numéricas e podem ser divididas em escalas nominais e ordinais.
Após a coleta de dados de um estudo experimental, são utilizadas estatís-
ticas descritivas para especificar características relevantes, tais como, (i) 
para indicar o meio do conjunto de dados observados por meio de medi-
das de tendência central, (ii) para entender os valores médios, medianos 
e de moda. A média é calculada a partir da soma dos valores coletados, 
dividido pelo seu número. A mediana é calculada organizando os valores 
em ordem ascendente (oudescendente) e selecionando o ponto médio. 
A moda é calculada contando o número de ocorrências de cada valor e 
20
21
selecionando a mais comum. Outras medidas relevantes são o valor míni-
mo, que é o menor valor entre os dados coletados, o valor máximo, que é 
o maior valor entre os dados coletados, o percentil, que divide a amostra 
em valores menores que o tamanho do quartil amostral, o que representa 
o percentil de 25% (ou primeiro quartil), a mediana (segundo quartil) e o 
percentil de 75% (terceiro quartil).
Para medir até que ponto os valores são dispersos ou concentrados em 
relação ao seu ponto médio, são utilizadas medidas de dispersão, incluin-
do faixa, variância e desvio padrão. O intervalo representa a diferença 
entre o maior e o menor valor coletado. Variância é a soma da diferen-
ça quadrada entre cada valor e a média dos valores coletados dividido 
pelo número de valores coletados, menos 1. O desvio padrão é a raiz da 
variân cia, que é uma medida comumente utilizada.
Uma hipótese estatística é uma conjectura sobre aspectos desconhecidos 
em uma amostra de dados observada em um estudo, que pode ser com-
provada ou descartada por meio de um teste de hipótese. O teste de hipó-
teses requer a especificação de um nível aceitável de erro estatístico, ou 
seja, os riscos a que o estudo está exposto pela tomada de decisão. Para 
realizar um teste de hipótese, é definida uma hipótese nula, identificada 
como H0, que é uma afirmação segundo a qual não há diferença entre o 
parâmetro e a estatística que você está comparando, e a hipótese alter-
nativa, identificada como H1, que contradiz H0. Em geral, busca rejeitar 
a hipótese nula para demonstrar que as variações na amostra obtida com 
alguma intervenção, ou tratamento, não são acidentais.
Existem dois tipos possíveis de erro, tais como, (i) o erro tipo I, que ocorre 
quando o teste estatístico indica que há uma relação de causa e efeito 
incorreto, também chamado de Falso Positivo, e (ii) erro tipo II, no qual o 
teste estatístico não indica a existência de uma relação de causa e efeito. 
A probabilidade de gerar um erro tipo I (alfa) está relacionada ao nível 
de significância dos testes de hipóteses. Quanto menor for o nível de 
significância, maior a garantia de que uma relação não é identificada. 
A significância estatística do resultado é uma medida estimada do grau 
de precisão do resultado, ou seja, o valor p é um índice decrescente da 
confiabilidade de um resultado. Em muitas áreas de pesquisa, o nível p 
de 0,05 é normalmente tratado como uma “faixa aceitável” de erro, uma 
vez que em particular as pesquisas sãos, como em áreas médicas, o nível 
p pode chegar a 0.001 e é muitas vezes chamado de “altamente” signi-
ficativo, no entanto, é mais suscetível ao erro tipo II. A fim de reduzir os 
erros experimentais do tipo I e II, existem desenhos experimentais que se 
referem à forma como os níveis de tratamento ou fator são atribuídos a 
unidades ou porções experimentais. (SIRQUEIRA et al, 2020, p. 4)
21
UNIDADE Processos de Condução de Estudos Experimentais
H0 Zona de Aceitação H0 Zona de Rejeição
1–α = 95% α = 5%
Figura 5 – Representação gráfica de aceitar a hipótese nula. Mostra uma representação 
gráfica de aceitar a hipótese nula, de acordo com o nível de significância de 5%
Fonte: Adaptada de SIRQUEIRA et al. 2020
As estatísticas são um componente fundamental e vital da ciência, e uma boa com-
preensão das estatísticas é absolutamente essencialmente se você quiser ser capaz de 
entender os resultados científicos. No entanto, a grande maioria das pessoas tem pouco 
ou nenhum conhecimento de estatística. Isso leva a uma grande confusão. 
De fato, a grande maioria dos argumentos anti-ciência que ouvimos por aí, pode ser 
rastreada até uma má compreensão das estatísticas. 
Vamos conhecer alguns fundamentos de métodos estatísticos usados para engenha-
ria de software experimental.
A Lei dos Grandes Números
Em sua forma mais básica, esta lei afirma que à medida que você aumenta o número 
de repetições em um experimento, seu valor calculado se aproximará do valor real. Em 
outras palavras, você precisa de um grande tamanho amostral para estar confiante de 
seus resultados. Por exemplo, se eu jogar um dado 5 vezes e tirar 3 faces voltadas com 
o número 6 para cima, as pessoas vão pensar e dizer, tudo bem. Mas se eu jogar esse 
mesmo dado uma 1000 vezes e obtiver 400 vezes o numero 6 para cima o pessoal 
vai começar a reclamar, porque espera-se que as faces num dado não viciado tenham 
ao longo do tempo a mesma chance 16,6666666666666...% de aparecerem, ou seja, 
quase 177 vezes e não 400. É disso que trata essa lei. As estatísticas nunca podem pro-
var nada com 100% de certeza, mas percebemos, ou deveríamos perceber quando há 
algum viés na natureza das coisas, ou se preferir, um vício.
Intuitivamente, a maioria das pessoas percebe que a lei de grandes números é verda-
deira, mas na prática, elas não a aplicam. A lei nos diz que para ter alguma confiança 
real em nossos resultados, precisamos de um grande tamanho amostral.
Esta lei é a razão pela qual os cientistas colocam muito pouco peso em relatórios de 
casos e estudos com tamanhos amostrais muito pequenos, mas colocam um grande 
peso em estudos com grandes tamanhos amostrais. Isso também vale para a engenharia 
de software experimental.
22
23
Portanto, você absolutamente tem que ter grandes tamanhos de amostra para en-
tender o que está acontecendo, e uma vez que você tem esses tamanhos de amostra, 
rapidamente fica claro que muitos dos resultados estranhos meramente pontos fora da 
curva estatísticos.
Correlação vs. Causalidade
Outro ponto importante em experimentos, bastante conhecido dos pesquisadores, 
é que a correlação não indica inerentemente causalidade. Na verdade, afirmar inapro-
priadamente, ou seja, só porque você acha que é uma causalidade, é uma falácia lógica; 
conhecida simplesmente como uma falácia de correlação.
Calma, vamos começar com definições básicas. Correlação é simplesmente uma 
relação entre duas variáveis. 
Ou ambas aumentam juntas, ou ambas diminuem juntas, ou uma aumenta à medida que 
o outra diminui. 
O problema é que simplesmente estar correlacionado não significa que uma variável 
vá ser a causa do comportamento da outra. Assim, fatores podem estar correlacionados, 
mas não causalmente relacionados.
Há duas circunstâncias em que você pode usar a correlação para concluir que há uma 
relação causal. 
A primeira, é simplesmente controlar tudo, exceto as duas variáveis que você está 
interessado. É por isso que os pesquisadores cuidadosamente projetam estudos controla-
dos de modo que uma variável, que chamaremos de variável experimental é deliberada-
mente alterada e outra variável, que chamaremos de variável de resposta é medida para 
ver se ela muda em resposta à variável experimental, mas todas as outras variáveis são 
controladas para que elas não mudem. 
Nestas circunstâncias, concluímos que a correlação é causal porque não há outras 
causas potenciais. Se as únicas coisas que mudam são as duas variáveis que você está 
interessado, então as mudanças em uma variável devem ser causadas pelas mudanças na 
outra variável. Lógico não é?! E o melhor, dá para usar em experimento em engenharia 
de software.
A segunda maneira que podemos inferir causalidade é usando dados adicionais.
Compreensão dos valores P
O valor P é vital se você quiser ser capaz de compreender resultados científicos, prin-
cipalmente porque em nossa disciplina ele é “normal”.
Em estatística, o valor p é a probabilidade de obter resultados pelo menos tão extre-
mos quanto os resultados observados de um teste de hipótese estatística, assumindo que 
a hipótese nula está correta. Um valor p menor significa que há evidências mais fortes 
a favor da hipótese alternativa
23
UNIDADE Processos de Condução de Estudos Experimentais
Lembra-se que para esses testes estatísticos, geralmente temos duas hipóteses: uma 
hipótese nula e uma hipótesealternativa.
O valor P não é, a probabilidade de que você está certo ou a probabilidade de que a dife-
rença seja real. Em vez disso, o valor P é a probabilidade de obter um resultado de sua força 
de diferença/correlação observada ou maior, se a hipótese nula for realmente verdadeira.
Para este momento em que estamos vou descrever de forma simplificada para não 
entrar em muitos cálculos que nesse momento ainda não são adequados. Senão veja-
mos, a significância estatística é a determinação de um pesquisador, por exemplo, você 
de que os resultados nos dados de seus experimentos não são explicáveis apenas pelo 
acaso. O teste de hipótese estatística é o método pelo qual o pesquisador faz essa de-
terminação. Esse teste fornece um valor p, que é a probabilidade de observar resultados 
tão extremos quanto os dos dados, assumindo que os resultados são realmente devidos 
apenas ao acaso. 
Um valor de p de 0,05, ou seja, 5% ou inferior é frequentemente considerado esta-
tisticamente significativo.
Se seu experimento leva em consideração a estatística para saber se há ou não cau-
salidade, P é muito importante para se calcular. Portanto, o valor P é a probabilidade 
de obter um resultado onde a diferença entre os meios amostrais é igual ou maior do 
que a diferença que você observou, se a hipótese nula é realmente verdadeira, de tal 
forma que, quanto maior o tamanho da sua amostra, maior a sua capacidade de detec-
tar diferenças Se você obtiver um resultado estatisticamente significativo, você rejeita 
a hipótese nula; enquanto, se você não conseguir um resultado significativo, você não 
rejeita a hipótese nula.
Media, mediana e moda
Para a maioria dos conjuntos de dados, estamos interessados em saber a tendência 
central dos dados. Isso é geralmente realizado apresentando um único número que resu-
me os dados e apresenta um valor que você espera que a maioria dos pontos de dados 
esteja próxima.
A maioria das pessoas faz isso apresentando a famosa Média. Como todos sabemos, 
calculamos o valor médio o somando o valor de todos os pontos de dados, dividindo o 
resultado pelo número total de itens de dados, conhecemos isso desde a 4ª série do fun-
damental média aritmética. Esta é de longe a medida mais comum de tendência central, 
mas não é a única, e em muitos casos, é uma pesquisa, pode representar uma forma 
horrível de se usar.
A principal alternativa à média é o que é conhecido como mediana. Para esta esta-
tística, você alinha todos os seus pontos de dados de menor para maior, e a mediana é 
simplesmente o valor médio.
Por fim, também temos a moda. Esta é simplesmente o valor que aparece com mais 
frequência. Ela é útil para dados nominais. Em outras palavras, quando você está sim-
plesmente contando coisas por categoria.
24
25
Em suma, a média de um conjunto de dados é encontrada somando todos os nú-
meros no conjunto de dados e depois dividindo pelo número de valores no conjunto. 
A mediana é o valor médio quando um conjunto de dados é ordenado do menor para o 
maior. A moda é o número que ocorre com mais frequência em um conjunto de dados.
Tudo bem, mas vamos pensar no seguinte, como regra geral, se você está interessado 
em conhecer a tendência central de seus dados, as médias são mais informativas quando 
os dados são normalmente distribuídos, aquele gráfico que lembra um sino, chamamos 
de distribuição normal, porém, usar a média pode ser muito problemática quando os 
dados são distorcidos para um lado, ou seja, você deixa de ter aquele formato de sino.
Para efeito de leitura de uma pesquisa, é importante que você saiba que pode usar 
a média a qualquer momento como medida de tendencia central, desde que os dados 
tenham uma distribuição simétrica. Mas, quando os dados são distorcidos e você tem 
muitos pontos externos fora da curva de distribuição, a mediana geralmente lhe dá uma 
melhor representação dos dados.
25
UNIDADE Processos de Condução de Estudos Experimentais
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Vídeos
O que são Testes de Hipóteses | Para que servem os Testes de Hipóteses
É uma regra de decisão para aceitar ou rejeitar uma hipótese estatística com base nos ele-
mentos amostrais. 
https://youtu.be/h4QcWDDlrW0
Tipos de erros e nível de significância em Teste de Hipótese – Erro tipo I e Erro tipo II
Há dois possíveis tipos de erros, quando realizamos um teste estatístico para aceitar ou re-
jeitar H0. Podemos rejeitar a hipótese H0, quando ela é verdadeira, ou aceitar H0, quando 
ela é falsa. 
https://youtu.be/cpH2MSRuVp8
Introdução a Métodos Estatísticos
Importante entender o básico.
https://youtu.be/xO4hetdhym8
O que é o p-valor?
já usou o p-valor para rejeitar ou não uma hipótese, mas não entendeu bem o que o p-valor 
significa? 
https://youtu.be/IwKcoqSpPts
26
27
Referências
OLIVEIRA, A. P.; LEITE, J.; CYSNEIROS, L. Aplicando a Experimentação na 
Engenharia de Requisitos: O Caso do Método ERi*c. 20: Cadernos do IME: Sé-
rie Informática: Vol. 33: Jun, 2012. Disponível em: <https://www.researchgate.
net/publication/276322514_Aplicando_a_Experimentacao_na_Engenharia_de_
Requisitos_O_Caso_do_Metodo_ERic> Acesso em: 10/02/2021.
SCATALON, L. P. Empacotamento de Experimentos Controlados em Engenha-
ria de Software: Uma Abordagem Baseada em Ontologia. Dissertação. UNIVERSI-
DADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO – UNESP. São Paulo: 
SP. 2013. Disponível em: <http://www.athena.biblioteca.unesp.br/exlibris/bd/cathe-
dra/14-09-2015/000846891.pdf> Acesso em: 10/02/2021.
SIRQUEIRA, T.; MIGUEL, M.; DALPRA, H.; ARAUJO, M. A.; DAVID, J. M. Aplica-
ção de Métodos Estatísticos em Engenharia de Software: Teoria e Prática. 2020. 
Disponível em: <https://arxiv.org/pdf/2006.15624v1.pdf> Acesso em: 10/02/2021.
TRAVASSOS, G.H.; GUROV, D.; AMARAL, E.A.G. Introdução à Engenharia de 
Software Experimental. Universidade Federal do Rio de Janeiro – UFRJ, Rio de Ja-
neiro: RJ, 2002. 52p. Disponível em: <https://www.cin.ufpe.br/~scbs/experimental/
IntroducaoExperimentacao.pdf> Acesso em: 10/02/2021.
WOHLIN, C.; RUNESON, P.; HÖST, M. OHLSSON, M.C.; REGNELL, B.; WESSLÉN, 
A. Experimentation in Software Engineering. Ed. Springer, New York, USA, 2012. 
27

Outros materiais