Baixe o app para aproveitar ainda mais
Prévia do material em texto
05/02/2013 1 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 1/27 Teste de Integração, Sistema e Aceitação ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 2/27 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 • 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) 2/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 3/27 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 3/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 4/27 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 4/29 A B C D E F G H I J K L ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 5/27 Teste de integração • Para simplificar a localização de erros, os sistemas devem ser integrados incrementalmente. • A integração dos módulos pode ser feita através das abordagens • Top-down ou • Bottom-up 5/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 6/27 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 6/29 05/02/2013 2 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 7/27 Top-down 7/29 A B E F J K L C G D H I ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 8/27 8/29 Top-down stubstub stubstub driver A B ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 9/27 9/29 Top-down C stub stub E assim por diante. Até que... stubstub stub A B driver ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 10/27 10/29 Top-down A B E F J K L C G D H I driver ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 11/27 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 as abordagens ‘‘breadth first’’ e ‘‘depth first’’ 11/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 12/27 Top-down: desvantagens • Retarda verificação de comportamento de baixo nível • Stubs são necessários para suprir elementos ainda inexistentes 12/29 05/02/2013 3 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 13/27 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. • 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 13/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 14/27 14/29 Bottom-up A B E F J K L C G D H I ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 15/27 15/29 Bottom-up driver F J ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 16/27 16/29 Bottom-up E E assim por diante. Até que... driver F J ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 17/27 17/29 Bottom-up A B K L C G D H IE F J ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 18/27 Bottom-up: vantagens • Permite verificação antecipada de comportamento de baixo nível • Stubs nem sempre são necessários 18/29 05/02/2013 4 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 19/27 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 19/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 20/27 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 20/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 21/27 Teste por Pares ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 22/27 Teste por Vizinhança ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 23/27 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 • Geralmente emprega teste funcional (Ideal: executado por membro de um grupo independente de testes) • Pode usar o diagrama de casos de uso como fonte de funcionalidades • Pode ser guiado pelos fluxos dos casos de uso 23/29 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 24/27 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 • 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 24/29 05/02/2013 5 ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 25/27 Exemplos de Casos de Testes ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 26/27 Caso de teste:Tela de Login Login do Usuário Casos de Teste Não informar o login É exibido o alerta “O campo login deve ser preenchido. Verifique, por favor.” Não informar senha É exibido o alerta “O campo de senha deve ser preenchido. Verifique por favor.” Verificar sintaxe A sintaxe do texto deve estar correta. Verificar as atribuições do usuário (teste de segurança) No momento em que ocorrer o login, apenas as funcionalidades com permissões atribuídas devem ser exibidas ao usuário. Logar com o mesmo usuário em dois browsers É exibido um alertas notificando a duplicidade, e é notificada por e-mail a ocorrência desta redundância ao usuário. ©Ian Sommerville 2007 Engenharia de Software, 8ª. edição. Capítulo 23 Slide 27/27 Caso de teste: Pesquisa por Período Pesquisa por período Casos de Teste Informar data início e fim em uma seqüência cronológica O sistema retorna todos os registros cadastrados entre asdatas informadas Informar apenas a data de início O sistema pode exigir ou não a data fim como obrigatório, vai depender do critério do analista do sistema (o testador consulta o analista) Informar apenas data fim O sistema pode exigir ou não a data início como obrigatório, vai depender do critério do analista do sistema (o testador consulta o analista) Não informar nenhum dos campos É exibido o alerta para que o usuário preencha o(s) campo(s) obrigatório(s) para a consulta (a obrigatoriedade, mais uma vez, depende do analista). Informar a data fim anterior à data início É exibido o alerta “A data fim informada é anterior à data início. Verifique, por falor.”
Compartilhar