![Page 1: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/1.jpg)
1/32
Teste de Integração, Sistema e Aceitação
Alexandre Monteiro
![Page 2: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/2.jpg)
2/32
Teste de integração Unidades ou aplicações que foram
testadas em separado são testadas de forma integrada
A interface entre as unidades integradas é testada
![Page 3: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/3.jpg)
3/32
Teste de integração O teste de integração deve ser
feito de forma incremental, ou seja, as unidades devem ser integradas em pequenos segmentos
Este teste é executado por um testador de integração (geralmente um programador)
![Page 4: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/4.jpg)
4/32
Stubs e Drivers No contexto de teste de integração,
usamos os elementos stubs e drivers Stubs são pseudo-implementações
de determinadas especificações (Casos básicos/triviais/esperados)
Drivers são operações que automatizam testes de acordo com casos de teste
![Page 5: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/5.jpg)
5/32
Teste de Integração Suponha a integração de um grupo
de módulos para formar um componente A estrutura de controle forma uma
‘‘hierarquia de chamadas’’ como segue
A
B C D
E F G H I
J K L
![Page 6: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/6.jpg)
6/32
Teste de integração A integração dos módulos pode ser
feita através das abordagens Top-down ou Bottom-up
![Page 7: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/7.jpg)
7/32
Abordagem Top-down Os módulos são integrados de cima
para baixo. O teste usa driver e stubs O driver é utilizado como módulo de
controle principal, e os módulos reais são substituídos por stubs
À medida que os testes vão sendo realizados os stubs são substituídos pelos módulos reais, um de cada vez
![Page 8: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/8.jpg)
8/32
Top-down
A
B
E F
J K L
C
G
D
H I
![Page 9: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/9.jpg)
9/32
Top-down
A
B
stub
stub
stub
stub
driver
![Page 10: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/10.jpg)
10/32
Top-down
A
B
stub
stub
stub
C
stub
stubE assim por diante. Até que...
driver
![Page 11: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/11.jpg)
11/32
Top-down
A
B
E F
J K L
C
G
D
H I
driver
![Page 12: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/12.jpg)
12/32
Top-down: vantagens Permite verificação antecipada de
comportamento de alto nível Um único driver é necessário Módulos podem ser adicionados, um
por vez, em cada passo, se desejado Suporta ambas as abordagens
‘‘breadth first’’ e ‘‘depth first’’
![Page 13: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/13.jpg)
13/32
Top-down: desvantagens Retarda verificação de
comportamento de baixo nível Stubs são necessários para suprir
elementos ainda inexistentes Entradas de casos de teste podem
ser difíceis de formular
![Page 14: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/14.jpg)
15/32
Abordagem Bottom-up A integração é feita a partir do
nível mais básico da hierarquia. Os stubs nem sempre são necessários Os módulos do nível inferior são
combinados. Para cada combinação é criado um
driver que coordena a entrada e a saída dos casos de teste.
![Page 15: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/15.jpg)
16/32
Abordagem Bottom-up O módulo é testado O driver é substituído pela
combinação de módulos correspondentes, que passam a interagir com os módulos do nível superior
![Page 16: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/16.jpg)
17/32
Bottom-up
A
B
E F
J K L
C
G
D
H I
![Page 17: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/17.jpg)
18/32
Bottom-up
F
J
driver
![Page 18: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/18.jpg)
19/32
Bottom-up
J
driver
E F
E assim por diante. Até que...
![Page 19: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/19.jpg)
20/32
Bottom-up
A
B
E F
J K L
C
G
D
H I
driver
![Page 20: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/20.jpg)
21/32
Bottom-up: vantagens Permite verificação antecipada de
comportamento de baixo nível Stubs não são necessários Mais fácil para formular dados de
entrada para algumas sub-árvores Mais fácil para interpretar dados
de saída para outras sub-árvores
![Page 21: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/21.jpg)
22/32
Bottom-up: desvantagens Retarda verificação de
comportamento de alto nível Drivers são necessários para
elementos ainda não implementados Como sub-árvores são combinadas,
um grande número de elementos deve ser integrado de uma só vez
![Page 22: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/22.jpg)
23/32
Teste SandWich Combinação entre os testes top-
down e bottom-up Geralmente aplicada a uma sub-
árvore do sistema É semelhante a testar um sub-
sistema completo
![Page 23: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/23.jpg)
24/32
Teste baseado em Chamadas Os testes top-down e bottom-up são
puramente funcionais Usando abordagem estrutural
podemos identificar dependências entre unidades
Duas técnicas: Por pares Por vizinhança
Obtém-se melhoria ao reduzir stubs/drivers
![Page 24: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/24.jpg)
25/32
Teste por Pares
![Page 25: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/25.jpg)
26/32
Teste por Vizinhança
![Page 26: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/26.jpg)
27/32
Teste de sistema Investiga o funcionamento da
aplicação como um todo Integração dos componentes de
software com o ambiente operacional (similar ao de produção) é realizada e testada
![Page 27: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/27.jpg)
28/32
Teste de sistema Geralmente emprega teste funcional
(Ideal: executado por membro de um grupo independente de testes)
Pode-se usar o diagrama de casos de uso como fonte de funcionalidades
Pode ser guiado pelos casos de uso (fluxos)
![Page 28: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/28.jpg)
29/32
Teste de aceitação Testes funcionais, realizados pelo
usuário, objetivando demonstrar a conformidade com os requisitos do software
Envolve treinamento, documentação e empacotamento
![Page 29: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/29.jpg)
30/32
Teste de aceitação Os testes podem ser de duas
categorias: Alfa
Feitos por usuários, geralmente nas instalações do desenvolvedor. Observam e registram/problemas
Beta Feitos por usuários, geralmente em suas próprias
instalações, sem supervisão do desenvolvedor. Problemas detectados são então relatados ao desenvolvedor
![Page 30: 1/32 Teste de Integração, Sistema e Aceitação Alexandre Monteiro](https://reader030.vdocuments.net/reader030/viewer/2022033023/5706384d1a28abb8238f6f15/html5/thumbnails/30.jpg)
32/32
Bibliografia Liskov, B. et al. Program
Development in Java (Cap. 10) Sommerville, I. Software
Engineering (Cap. 20)