Teste de Integrao Sistema e Aceitao Alexandre Vasconcelos

  • Slides: 29
Download presentation
Teste de Integração, Sistema e Aceitação Alexandre Vasconcelos (amlv@cin. ufpe. br) 1/29

Teste de Integração, Sistema e Aceitação Alexandre Vasconcelos (amlv@cin. ufpe. br) 1/29

Teste de integração n n Unidades ou aplicações que foram testadas em separado são

Teste de integração n n Unidades ou aplicações que foram testadas em separado são testadas de forma integrada A interface entre as unidades integradas é testada 2/29

Teste de integração n n O teste de integração deve ser feito de forma

Teste de integração n n 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) 3/29

Stubs e Drivers n n n No contexto de teste de integração, usamos os

Stubs e Drivers n n n 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 4/29

Teste de Integração n Suponha a integração de um grupo de módulos para formar

Teste de Integração n Suponha a integração de um grupo de módulos para formar um componente n A estrutura de controle forma uma ‘‘hierarquia de chamadas’’ como segue A E B C D F G H J K I L 5/29

Teste de integração n A integração dos módulos pode ser feita através das abordagens

Teste de integração n A integração dos módulos pode ser feita através das abordagens n n Top-down ou Bottom-up 6/29

Abordagem Top-down n Os módulos são integrados de cima para baixo. O teste usa

Abordagem Top-down n Os módulos são integrados de cima para baixo. O teste usa driver e stubs n n 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 7/29

Top-down A E B C D F G H J K I L 8/29

Top-down A E B C D F G H J K I L 8/29

Top-down driver A B stub 9/29

Top-down driver A B stub 9/29

Top-down driver A stub B C stub E assim por diante. Até que. .

Top-down driver A stub B C stub E assim por diante. Até que. . . 10/29

Top-down driver A E B C D F G H J K I L

Top-down driver A E B C D F G H J K I L 11/29

Top-down: vantagens n n Permite verificação antecipada de comportamento de alto nível Um único

Top-down: vantagens n n 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 as abordagens ‘‘breadth first’’ e ‘‘depth first’’ 12/29

Top-down: desvantagens n n Retarda verificação de comportamento de baixo nível Stubs são necessários

Top-down: desvantagens n n Retarda verificação de comportamento de baixo nível Stubs são necessários para suprir elementos ainda inexistentes 13/29

Abordagem Bottom-up n A integração é feita a partir do nível mais básico da

Abordagem Bottom-up n A integração é feita a partir do nível mais básico da hierarquia. Os stubs nem sempre são necessários n n 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. 14/29

Abordagem Bottom-up n n O módulo é testado O driver é substituído pela combinação

Abordagem Bottom-up n n 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 15/29

Bottom-up A E B C D F G H J K I L 16/29

Bottom-up A E B C D F G H J K I L 16/29

Bottom-up driver F J 17/29

Bottom-up driver F J 17/29

Bottom-up driver E F J E assim por diante. Até que. . . 18/29

Bottom-up driver E F J E assim por diante. Até que. . . 18/29

Bottom-up driver A E B C D F G H J K I L

Bottom-up driver A E B C D F G H J K I L 19/29

Bottom-up: vantagens n n Permite verificação antecipada de comportamento de baixo nível Stubs nem

Bottom-up: vantagens n n Permite verificação antecipada de comportamento de baixo nível Stubs nem sempre são necessários 20/29

Bottom-up: desvantagens n n n Retarda verificação de comportamento de alto nível Drivers são

Bottom-up: desvantagens n n n 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 21/29

Teste baseado em Chamadas n n n Os testes top-down e bottom-up são puramente

Teste baseado em Chamadas n n n Os testes top-down e bottom-up são puramente funcionais Usando abordagem estrutural podemos identificar dependências entre unidades Duas técnicas: n n n Por pares Por vizinhança Obtém-se melhoria ao reduzir stubs/drivers 22/29

Teste por Pares 23/29

Teste por Pares 23/29

Teste por Vizinhança 24/29

Teste por Vizinhança 24/29

Teste de sistema n n Investiga o funcionamento da aplicação como um todo Integração

Teste de sistema n n 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 25/29

Teste de sistema n n n Geralmente emprega teste funcional (Ideal: executado por membro

Teste de sistema n n n 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) 26/29

Teste de aceitação n n Testes funcionais, realizados pelo usuário, objetivando demonstrar a conformidade

Teste de aceitação n n Testes funcionais, realizados pelo usuário, objetivando demonstrar a conformidade com os requisitos do software Envolve treinamento, documentação e empacotamento 27/29

Teste de aceitação n Os testes podem ser de duas categorias: n Alfa n

Teste de aceitação n Os testes podem ser de duas categorias: n Alfa n n Feitos por usuários, geralmente nas instalações do desenvolvedor. Observam e registram/problemas Beta n 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 28/29

Bibliografia n n Liskov, B. et al. Program Development in Java (Cap. 10) Sommerville,

Bibliografia n n Liskov, B. et al. Program Development in Java (Cap. 10) Sommerville, I. Software Engineering (Cap. 20) 29/29