Você está na página 1de 81

1º Encontro de Engenharia de

Software Experimental 2011


Natal, 10 e 11 de Outubro de 2011

Projeto de Experimentos em
Engenharia de Software
Eduardo Aranha, UFRN (eduardoaranha@dimap.ufrn.br)
Cristiano Ferraz, UFPE (cferraz@de.ufpe.br)
Paulo Borba, UFPE (phmb@cin.ufpe.br)
Objetivos

• Apresentar e motivar o uso de experimentos


controlados

• Introduzir técnicas “básicas” de projeto


estatístico de experimentos
– Controle
– Precisão
– Eficiência

2
Agenda

Problema referência

Experimentos controlados

Projeto estatístico de experimentos

Plano Completamente Aleatorizado

Plano Aleatorizado em Blocos Completos

Plano de Quadrados Latinos

Conclusões

3
Problema Referência

Como avaliar diferentes tecnologias de Model


Based Testing (MBT)?

A B C
4
Model Based Testing ­ MBT

Especificação do
Sistema
Avaliação:

• Eficiência
• Efetividade
Especificação usando • Facilidade de
notação específica: UML CNL LTS manutenção
• ...
A B C
Especificação dos
casos de teste:

Execução manual ou automação 5


Nossos Assistentes

Engenheiro de SW Estatístico*

Responsável por planejar 
Sem Conhecimento de
avaliações sobre MBT Tecnologias de SW

Sem conhecimento de 
Conhecimento das técnicas
técnicas de DOE de DOE

DOE – Design of Experiments

* Neste tutorial o estatístico tem como objetivo interagir gradativamente o engenheiro


de SW, guiando o engenheiro na busca da solução mais apropriada. 6
Contexto dos Assistentes

• Escolha da melhor tecnologia: A, B e C

• Indústria de software
– Profissionais variados
– Projetos diferentes
– Recursos limitados
– Requer resultados cientificamente embasados

7
Como Avaliar as
Ferramentas de MBT?

• Estudos serão propostos pelo engenheiro de


SW e avaliados pelo estatístico
8
Proposta A1 do Eng. de SW
(minimização de custos)

• Usar MBT em três projetos em andamento


– Escopo: projeto dos testes

Requisitos:

Desenvolvedor:

Abordagem: A B C
9
Possíveis Resultados e
Conclusões da Proposta A1
Abordagens: A, B, C

Cenário 1:
10 15 20 25 30 40 h

Cenário 2:
10 15 20 25 30 40 h

Cenário 3:
10 15 20 25 30 40 h

• Mas a abordagem MBT utilizada foi realmente a causa desses


resultados?
• E se eu rodar novamente o estudo em outros projetos, os
resultados serão equivalentes?
10
Estudos de Caso

• Projetos reais ou ambiente próximo do real

• Existe planejamento, mas pouco controle


sobre execução

• Cada projeto é singular

• Resultados são válidos, mas dificilmente


podem ser generalizados ou reproduzidos
11
Como Obter Resultados
Mais Relevantes?
• Controlar os elementos existentes no ambiente
de execução do estudo
– Eliminar, reduzir ou diluir o efeito desses
elementos

Ambiente de desenvolvimento

Experiência dos participantes

Complexidade do projeto
12
Proposta A2 do Eng. de SW
(controle do ambiente)

Requisitos:
• Controle
– Um único projeto
– Um único
desenvolvedor Desenvolvedor:

• Uso de todas as
abordagens
Abordagens: A B C

Ordem de Execução: (1º) (2º) (3º)

13
Considerações Sobre
Proposta A2
• Fixar projeto e desenvolvedor elimina alguns
efeitos indesejáveis

• Existe algum efeito de aprendizado por parte


do desenvolvedor?

• Treinamentos podem amenizar esse tipo de


efeito, mas...

14
Proposta A3 do Eng. de SW
(evitando efeito de aprendizagem)

• Mesmo perfil de
desenvolvedor Requisitos:

• Interesse pessoal
determina
abordagem
Desenvolvedor:

• Treinamento na
abordagem
escolhida Abordagens: A B C

15
Considerações Sobre
Proposta A3

• Efeito dos requisitos continua eliminado

• Efeito do desenvolvedor voltou a existir


– Porém, foi reduzido ao se fixar perfil do
participante

• Escolha de quem usa a técnica pode estar


tendenciosa?
16
Proposta A4 do Eng. de SW
(evitando viés)

• Mesmo perfil de
Requisitos:
desenvolvedor

• Sorteio determina
abordagem
Desenvolvedor:

• Treinamento na
abordagem
sorteada Abordagens: A B C

17
Considerações Sobre
Proposta A4

• Baixa probabilidade de ocorrer resultado


tendencioso para o sorteio

• É suficiente ter apenas uma observação para


cada abordagem?

18
Proposta A5 do Eng. de SW
(aumentando observações)

• Mais desenvolvedores com mesmo perfil


• Sorteio da abordagem + treinamento

Requisitos:

Desenvolvedor:

Abordagem: C A B A C B
19
Possíveis Resultados e
Conclusões da Proposta A5
Abordagens: A, B, C

10 15 20 25 30 40 h
Cenário 1:

10 15 20 25 30 40 h

10 15 20 25 30 40 h
Cenário 2:

10 15 20 25 30 40 h

20
Possíveis Resultados e
Conclusões da Proposta A5
Abordagens: A, B, C

10 15 20 25 30 40 h
Cenário 3:

10 15 20 25 30 40 h

Quantidade de observações está suficiente?

21
Aumentando a Quantidade de
Réplicas
• Adicionar mais desenvolvedores

• Subdividir o problema

Requisitos da
aplicação
completa
homem­hora

22
Aumentando a Quantidade de
Réplicas
• Adicionar mais desenvolvedores

• Subdividir o problema

Requisitos
dos módulos
da aplicação

homem­hora

23
Conclusões Mudaram com
Mais Réplicas?
Abordagens: A, B, C

10 15 20 25 30 40 h
Cenário 1:

10 15 20 25 30 40 h

10 15 20 25 30 40 h
Cenário 2:

10 15 20 25 30 40 h

24
Conclusões Mudaram com
Mais Réplicas?
Abordagens: A, B, C

10 15 20 25 30 40 h

Cenário 3:

10 15 20 25 30 40 h

25
Princípios aprendidos pelo engenheiro de SW formam a
base dos

EXPERIMENTOS CONTROLADOS

26
Experimento Controlado
• Procedimentos que mudam de forma proposital as
variáveis de um processo/sistema
• Observam mudanças na saída e identificar as causas

Variáveis controladas

Entradas Saída
Processo/Sistema Coletam evidências contra
hipótese formulada.

Variáveis não controladas


(e possivelmente desconhecidas...)

27
Considerações

• Ambiente de laboratório x Ambiente industrial

• Aplicabilidade dos resultados dos estudos de caso x


experimentos controlados

• Quantidade de recursos necessários

• Análise quantitativa x qualitativa

28
Definições

• Fatores

• Níveis de fatores

• Tratamento

• Unidade experimental

29
Princípios Fundamentais dos
Experimentos Controlados

• Controle local

• Replicação

• Aleatorização

30
Controle Local

• Eliminar, reduzir, diluir ou isolar o efeito de fatores


de ruído

• Exemplo de controle: fixar certos níveis para


variáveis não investigadas
– Experiência dos participantes, complexidade do
projeto, ...
31
Replicação (interna)

• Aplicação de um tratamento em mais de uma unidade experimental

...

• Dilui efeito da variabilidade existente entre pessoas, projetos e


artefatos “similares”

• Diminui chances de se obter resultados ao acaso

• Diferente de repetição!

32
Aleatorização

C A B A B C A B C
... ... ... (3º) (1º) (2º) (3º) (1º) (2º)

• Com réplicas, dilui efeito de diferenças de motivação,


experiência,...
• Elimina possível viés do pesquisador
• Reduz efeito de aprendizado
33
Análise de Causa­Efeito

• Possível apenas quando utilizado os princípios


de réplicas com aleatorização
Idade
Altura Experiência

Altura Experiência

• Estudos observacionais ou quase­experimentos


– Ausência de aleatorização e/ou controle local

34
Nível de Importância

Aleatorização

Replicação

Controle local

35
Projeto Estatístico de Experimentos

• Configuração dos participantes, ambiente e


materiais envolvidos

• Visa otimizar Uso de recursos x Conclusões


• Define forma para análise dos dados
• Respaldo científico dos resultados
36
Planos Experimentais

• Padrões de como projetar e analisar experimentos

• Motivação histórica: agricultura

Legado de R. A. Fisher
The Design of Experiments (1935)

37
Plano Experimental
COMPLETAMENTE ALEATORIZADO

CRD – Completely Randomized Design

38
Plano Experimental
Completamente Aleatorizado (CRD)
• Tratamentos atribuídos de forma aleatória as
unidades experimentais

Imagem obtida em http://www.tfrec.wsu.edu/ANOVA/CRD.html 39


Proposta A4 (CRD) do
Engenheiro de SW

Requisitos:

Desenvolvedor:

Abordagem: C A B C B A

40
Mas Como Analisar os Dados?

Abordagens: A, B, C

Cenário 1:
10 15 20 25 30 40 h

Cenário 2:
10 15 20 25 30 40 h

Como avaliar situações onde análise visual não mostra claramente


se houve ou não melhora significativa?

Será que com mais observações as conclusões mudariam?


41
Esquema Básico das Fontes de
Variação de Um Experimento

• Observação =
Efeito do plano experimental
+ Efeito do tratamento
+ Efeito do erro experimental

• Erro experimental

42
Modelo Linear

yij = µ + τ i + ε ij
ya1
εa1
tratamento réplica µ+Ʈa
ya2 εa2
µ

43
Hipótese Estatística

• Afirmação sobre um parâmetro de uma modelo


ou distribuição estatística
– Média, mediana, variância, proporção, etc.

N(µ, σ2)
H0: µa= µb= µc
H1: µi ≠ µj

µ onde i,j = a, b, c
44
Idéia da Análise
(cenário 1)
Variação “dentro" dos tratamentos
(efeito dos resíduos)

h
Variação “entre” os tratamentos
(efeito dos tratamentos)

45
Idéia da Análise
(cenário 2)
Variação “dentro" dos tratamentos
(efeito dos resíduos)

h
Variação “entre” os tratamentos
(efeito dos tratamentos)

46
ANOVA – Analysis of Variance

Fonte de Graus de Liberdade Soma de Quadrado Fo


Variação (G.L.) Quadrados Médio
a

Tratamento a–1 n∑ ( yi. − y.. )


2
QM Tratamento Fo = QM Tratamento
i =1 QM Erro
2

∑∑ ( y − yi . )
a n
Erro N–a
Experimental ij QM Erro
i =1 j =1

∑∑ ( y − y.. )
a n
Total N–1
ij
i =1 j =1

valor­p
F( a −1, N − a )
47
Exemplo de ANOVA
Fonte de Graus de Liberdade Soma de Quadrado Fo Valor–P
Variação (G.L.) Quadrados Médio

Tratamento 2 237,88 118,94 14,76 < 0,01

Erro 21 169,26 8,06


Experimental

Total 23 407,14

0,8

0,6

0,4 F0 = 14,76 Conclusão: Rejeitamos H0 para α = 5%


0,2

0 48
0 4 8 12 16 20
Suposições da ANOVA

• Inferência baseada no modelo linear


– Independência dos dados

erro
– Variância constante

– Normalidade
y y

• Inferência baseada na teoria de aleatorização


– Variância constante
49
Mas Como Saber Qual o
Melhor Tratamento?
• Olhar as médias das amostras e intervalos de
confiança
A C B

• T­test
– H01 : µa ≤ µb H02 : µb ≤ µc H03 : µa ≤ µc

• Correção de Bonferroni (+ de 2 tratamentos)


50
A4: Até que Ponto Podemos
Generalizar os Resultados?
• Resultado do experimento limitado a um único
perfil de desenvolvedores
– Exemplo: juniores

• Resultado é válido?

51
Proposta B1: CRD com
Desenvolvedor Senior e Junior
• Desenvolvedores Junior

• Desenvolvedores Sênior

52
Considerações Sobre Níveis
de Experiência no CRD
• Efeito da experiência ya1

inflaciona erro εa1


µ+Ʈa
experimental εa2
µ
ya2

• Experimento usando CRD é ineficiente nessa


situação
– Mas resultado é válido!

53
Proposta B2: Dois Experimentos
Usando o CRD
• Experimento 1: Grupo de desenvolvedores Junior

Abordagens: A, B, C

• Experimento 2: Grupo de desenvolvedores Sênior

Abordagens: A, B, C
54
Considerações Sobre B2

• Isolamento do efeito nível da experiência


– Erro experimental não será inflacionado

• Menor precisão da análise (graus de liberdade)

• E se resultados forem conflitantes?

• Situação pode ser tratada como um único


experimento
55
Plano Experimental
ALEATORIZADO EM BLOCOS
COMPLETOS
RCBD – Randomized Complete Block Design

56
Plano Aleatorizado em Blocos
Completos
• Aplicado quando:
– Existe um fator não investigado com influência
significante na variável de saída
– Não é possível ou interessante fixar um único
nível para esse fator

• Bloco
– Grupo homogêneo de unidades experimentais
– Aleatorização feita dentro dos blocos
57
Exemplo de Blocos em
Engenharia de Software
• Níveis de experiência em desenvolvimento

... Baixo

Blocos
(6 desenvolvedores)
... Médio

... Alto
18 participantes
58
Esquema Básico das Fontes de
Variação de Um Experimento

• Observação =
Efeito do plano experimental
+ Efeito do bloco
+ Efeito do tratamento
+ Efeito do erro experimental

59
Modelo Linear*

yijk = µ + βi +τj + εijk


réplica ysa1

bloco tratamento εsa1


µ+βs+Ʈa
εsa2
ysa2
µ+βs
µ

*Suposição de aditividade
60
ANOVA para RCBD

Fonte de Graus de Liberdade Soma de Quadrado Fo


Variação (G.L.) Quadrados Médio

Tratamentos a–1 SSTratamento QM Tratamento Fo = QM Tratamento


QM Erro

Blocos b–1 SSBlocos QMBlocos

Erro
(a – 1)(b – 1) SSErro QM Erro
Experimental

Total N–1 SST


61
Até que Ponto Poderemos
Generalizar os Resultados?
• Resultado do experimento limitado a um único
tipo de projeto

• Tamanho e complexidade de projetos na


prática:

...

62
Plano Experimental
QUADRADOS LATINOS

LS – Latin Square

63
Quadrado Latino

• Aplicado quando:
– Existem dois fatores de ruído com influência
significante na variável de saída

• Bloco
– Combinação de níveis dos dois fatores de ruído
(linha, coluna)

64
Cruzamentos Entre Experiência e
Tamanho
Tamanho do Projeto

B(3) A(2) C(1)


Réplicas mudando­se
Nível de desenvolvedores
Experiência C(1) B(3) A(2) ou projetos

A(2) C(1) B(3)


65
Aleatorização

B(3) A(2) C(1)

C(1) B(3) A(2)

A(2) C(1) B(3)

66
Formas de Obter Mais Observações
(linhas)
Réplica 1 do Quadrado Réplica 2 do Quadrado ...

B(3) A(2) C(1) B(3) A(2) C(1)


...

C(1) B(3) A(2) C(1) B(3) A(2)

A(2) C(1) B(3) A(2) C(1) B(3)

67
Formas de Obter Mais Observações
(colunas)
Réplica 1 do Quadrado Réplica 2 do Quadrado ...

B(3) A(2) C(1) B(3) A(2) C(1)


...

C(1) B(3) A(2) C(1) B(3) A(2)

A(2) C(1) B(3) A(2) C(1) B(3)

68
Formas de Obter Mais Observações
(linhas e colunas)
Réplica 1 do Quadrado Réplica 2 do Quadrado ...

B(3) A(2) C(1) B(3) A(2) C(1)


...

C(1) B(3) A(2) C(1) B(3) A(2)

A(2) C(1) B(3) A(2) C(1) B(3)

69
Esquema Básico das Fontes de
Variação de Um Experimento

• Observação =
Efeito do plano experimental
+ Efeito do tratamento
+ Efeito do erro experimental

70
Modelo Linear

yijkl = µ +αi +βj +τk + εijkl


y11a1
réplica
ε11a1
linha tratamento µ+α1+β1+Ʈa
ε11a2
y11a2
coluna
µ+α1+β1
µ+α1
µ

Supõe aditividade

71
ANOVA para Quadrado Latino

Fonte de Graus de Liberdade Soma de Quadrado Fo


Variação (G.L.) Quadrados Médio

Tratamentos a–1 SSTratamento QM Tratamento Fo = QM Tratamento


QM Erro
Linha b–1 SSLinha QMLinha

Coluna c–1 SSColuna QMColuna

Erro
(a­1)(b­2) SSErro QM Erro
Experimental

Total N–1 SST


72
Limitações do Quadrado Latino

• Requer mesma quantidade de tratamentos,


linhas e colunas

• Alguns quadrados precisam de mais de 2


réplicas
– Ex: quadrado de tamanho 2

73
Considerações Finais

• Experimentos controlados
– Controle local
– Replicação
– Aleatorização

• Importância experimentação em ES
– SBES, ESELAW, ESEM, ICSE,...

74
Considerações Finais

• Projeto estatístico de experimentos


– Visa melhor controle, precisão e eficiência

• Planos experimentais
– Completamente aleatorizado
– Aleatorizado em blocos completos
– Quadrado latino

75
Referências
• G. Box, J. Hunter e W. Hunter. Statistics for Experimenters. Wiley­Interscience,
2nd edition, 2005.
• D. Montgomery. Design and Analysis of Experiments. Wiley, 7th edition, 2008.
• A. Jedlitschka, M. Ciolkowski and D. Pfahl. Reporting Experiments in Software
Engineering. Guide to Advanced Empirical Software Engineering, Springer
London, 201­228, 2007.
• K. Hinkelmann and O. Kempthorne. Design and Analysis of Experiments,
Introduction to Experimental Design. Wiley­Interscience, 2nd edition, 2007.
• R. Kuehl. Design of Experiments: Statistical Principles of Research Design and
Analysis. Duxbury Press, 2nd edition, 1999.
• K. Maxwell. Applied Statistics for Software Managers. Prentice Hall, 2002.
• G. Milliken and D. Johnson. Analysis of Messy Data: Designed Experiments,
volume I. Chapman Hall/CRC, 1993.
• G. Snedecor and W. Cochran. Statistical Methods. Iowa State University Press,
8 edition, 1989.
• C. Wu and M. Hamada. Experiments: Planning, Analysis, and Parameter
Design Optimization. Wiley­Interscience, 2000.
76
1º Encontro de Engenharia de
Software Experimental 2011
Natal, 10 e 11 de Outubro de 2011

Projeto de Experimentos em
Engenharia de Software
Eduardo Aranha, UFRN (eduardoaranha@dimap.ufrn.br)
Cristiano Ferraz, UFPE (cferraz@de.ufpe.br)
Paulo Borba, UFPE (phmb@cin.ufpe.br)
Proposta C1: RCBD, onde bloco
é (Tamanho, Experiência)

... ... ...


6 desenv.

(baixo, baixo) (baixo, médio) (baixo, alto)

... ... ...

(médio, baixo) (médio, médio) (médio, alto)

... ... ...

(alto, baixo) (alto, médio) (alto, alto) 78


Considerações Sobre C1

• Quantidade de execuções por participante foi


triplicada!
– 18 desenvolv. x 3 projetos = 54 observações

• Efeito de aprendizado é balanceado pela


aleatorização
– Mesmo assim, erro experimental será
inflacionado

79
Proposta C3: Cada Desenvolvedor
em um Único Bloco

... ... ...


(baixo, baixo) (baixo, médio) (baixo, alto)

... ... ...

(médio, baixo) (médio, médio) (médio, alto)

... ... ...

(alto, baixo) (alto, médio) (alto, alto)


80
Considerações Sobre
Propostas C3
• Não tem problema de efeito de aprendizado,
mas aumenta variabilidade de experiência

• Quantidade de participantes foi triplicada!


– De 18 para 54

• Experimento usando RCBD é ineficiente nessas


situações
– Como manter quantidade reduzida de
participantes e controlar efeito de aprendizado?
81

Você também pode gostar