Textos categorizados 'integração de sistemas'

Técnicas de Integração de Sistema – Big Bang e Sandwich

Para finalizar a série de posts sobre técnicas de integração de sistema, irei abordar a técnica Big-bang e a Sandwich.

Big-Bang

big-bang

Na técnica Big-bang, os módulos são testados isoladamente e depois integrados de uma só vez, como pode ser visto na figura abaixo.

Integração usando a técnica Big Bang

Para executar uma integração usando a técnica Big-bang necessitamos de stubs e drives para testar os módulos isoladamente.

Ela é normalmente usada devido às pressões do dia a dia e os testes são aplicados para demonstrar uma operabilidade mínima do sistema.

O maior problema do uso da técnica Big-bang é caso haja alguma falha na interface de um módulo com outro, pois neste caso, será difícil ser preciso e encontrar a causa da falha. Já que ela é uma técnica que usa uma abordagem não incremental.

Vantagens

  • Conveniente para sistemas pequenos

Desvantagens

  • Necessita de drivers e stubs para cada módulo;
  • Só permite o teste em paralelo no início dos testes;
  • Localização difícil da falha;
  • Fácil perder falhas de interface.

Sandwich

Sanduíche de mortadela do Bar do Mané no Mercadão SP

Na técnica Sandwich, um sistema é integrado misturando a técnica Top-down com a Botton-up, dividindo o sistema em três camadas:

  • Lógica – camada que contém os módulos que são mais frequentemente chamados. Esta camada é testada utilizando a técnica Bottom-up;
  • Meio (middle) – são os restantes dos módulos;
  • Operacional- camada que contém os módulos principais, do ponto de vista operacional. Sendo testada utilizando a técnica Top-down.

Muitas vezes uma abordagem combinada Top-down para os níveis superiores e Botton-up para os níveis inferiores pode ser o melhor ajuste para o teste de integração da sua aplicação. Se os níveis superiores da estrutura do programa forem integrados de cima para baixo, o número de drivers pode ser reduzido substancialmente na integração dos módulos inferiores. Agora se os módulos inferiores forem integrados de baixo para cima, o número de clusters (módulos que executam uma sub-função do sistema) pode ser reduzido substancialmente na integração dos módulos superiores.

Usando a técnica Sandwich a integração é mais flexível e adaptativa, porém ela é mais complexa de ser planejada.

Comparação

Para encerrar o último post dessa série, segue abaixo, uma tabela comparativa das 4 técnicas de integração que vimos nessa série:

Tabela Comparativa

Fique por dentro das novidades, assine o feed do QualidadeBR.

Fonte:

Chapter 8 – Testing the Programs, Software Engineering: Theory and Practice: wps.prenhall.com/wps/media/objects/3087/3161346/slides08.ppt

V. Binder. Testing Object-Oriented System: Models, Patterns, and Tools. Addison Wesley, 2000.

Aula 13 – Teste de Software, Walter de Abreu Cybis: http://www.inf.ufsc.br/~cybis/ine5322/Aula13_Teste_de_SW_cont.pdf

System Integration, Dr. Stéphane S. Somé. University of Ottawa: http://www.site.uottawa.ca/~ssome/Cours/SEG3203/integration.pdf

Técnicas de Integração de Sistema – Bottom Up

Continuando a série de posts sobre as técnicas de integração de sistema, aliás, preciso parar de começar e não terminar essas séries de posts (a das resoluções de questões da CTFL terminou, pelo menos por enquanto :) ).

No último post sobre técnicas de integração de sistema, tínhamos comentado sobre a Top-down. Agora irei falar sobre a inversa da Top-down a Botton-up.

Na técnica Botton-up, a integração do sistema começa com a partir do nível mais baixo do software, ou seja, o módulo. O módulo é dito como o mais baixo nível se ele não depende de outro módulo. A Bottom-Up assume que todos os módulos foram individualmente testados antes.

Para integrar um conjunto de módulos usando a Bottom-Up, nós precisamos construir driver (controlador) que chamará o módulo a ser integrado. Uma vez que a integração de um grupo de baixo nível de módulos tenha sido considera satisfatória, o driver irá substituir o atual módulo e um ou mais drivers serão usados para integrar mais módulos com um conjunto de módulos já integrados. O processo de integração Botton-Up continua até todos os módulos terem sido integrados.

Segue abaixo um exemplo de uma integração usando a técnica Botton-up:

Integração Bottom-up dos módulos E, F, e G

Integração Bottom-up dos módulos E, F, e G

Integração Bottom-up dos módulos B, C, e D com o E, F, e G

Integração Bottom-up dos módulos B, C, e D com o E, F, e G

Integração Bottom-up do módulo A com todos os outros.

Integração Bottom-up do módulo A com todos os outros.

As vantagens da técnica Botton-up são:

  • 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.

As desvantagens da técnica Botton-up são:

  • Os testadores não podem visualizar as funções em nível de sistema a partir de uma parte do sistema já integrada. Aliás, eles não podem visualizar as funções em nível de sistema até o último driver ser colocado;
  • Geralmente, as decisões principais estão incorporadas nos módulos de alto nível. Desta maneira as principais falhas do sistema não podem ser encontradas até que os módulos de alto nível estejam integrados. Logo a verificação de comportamento de  alto nível é retardada.

Após ter visto a técnica Botton-up e a Top-down (aqui), podemos comparar as duas:

  • Validação das principais decisões: Os módulos de alto nível contêm as principais decisões. As falhas na modelagem dessas decisões são detectadas antecipadamente, se a integração realizada é a Top-down. Na técnica Botton-up, essas falhas são detectadas no final do processo de integração;
  • Dificuldade em elaborar os casos de teste: na abtécnica Top-down, como mais e mais módulos são integrados e stubs são utilizados mais distantes do módulo de alto nível, torna-se cada vez mais difícil a elaboração do comportamento do stub e a entrada do teste. No entanto, na técnica Botton-up, um comportamento é elaborado para um driver, através da simplificação de um comportamento de real do módulo;
  • Reusabilidade de casos de teste: usando a técnica Top-down os casos de teste são elaborados para testar a interface de um novo módulo e pode ser reusado para fazer testes de regressão nas próximas iterações. E futuramente os casos de teste podem ser reusados para o teste de nível de sistema. No entanto, usando a técnica Botton-up, todos os casos de testes incorporados aos drivers, exceto o driver para o teste alto nível, não podem ser reusados.

Fique por dentro das novidades, assine o feed do QualidadeBR.

Assine o feed

Fonte:

NAIK, Kshirasagar; TRIPATHY, Priyadarshi. Software Testing and Quality Assurance. Hoboken (New Jersey): John Wiley & Sons, Inc., 2008.

Teste de Integração, Sistema e Aceitação, Alexandre Mota. (link)

Técnicas de Integração de Sistema – Top Down

A Top Down, que em tradução literal seria algo como “de cima para baixo”, é uma das técnicas mais conhecidas para teste de Integração usando a abordagem incremental.

Como se pode perceber pelo próprio nome, usando a técnica Top-down, o teste começa do nível mais alto para o mais baixo, ou seja, os componentes de mais alto nível são integrados primeiro.

Para entender melhor, vamos pensar no exemplo abaixo:

Exemplo Top Down

Exemplo Top Down

Como pode ser percebido, o sistema nesse exemplo, é o álbum de música, que é formado por várias músicas, que serão chamadas de componentes. Por fim, uma música é formada pela junção de vários instrumentos, que serão chamados de módulos.

Pela técnica Top-down iremos primeiro testar os componentes de alto nível, que são as músicas, só para depois verificar cada módulo (instrumento) de cada componente (música).

Algo importante de se notar, é que no final do Teste de Integração teremos a integração dos módulos testados e não o sistema como um tudo. Na analogia apresentada, teríamos cada música verificada e não o álbum inteiro. O teste que verificaria o álbum inteiro seria o Teste de Sistema.

Vantagens

  • Permite verificação antecipada de comportamento de alto nível;
  • Módulos podem ser adicionados, um por vez, em cada passo, se desejado;
  • Permiti a busca em profundidade (depth-first search) e a busca em largura (breadth-first search).

Desvantagens

  • Retarda verificação de comportamento de baixo nível;
  • Entradas de casos de teste podem ser difíceis de formular, por geralmente, demandar de uma entrada maior de informações;
  • Saídas de casos de teste podem ser difíceis de interpretar, cada passo executado, pode gerar um resultado e o Tester deverá ficar atento a esses resultados, pois essas saídas intermediárias pode apresentar alguma inconsistência.

Bem, hoje vimos como que a técnica Top-down funciona na realização dos Testes de Integração, espero ter ajudado na compreensão dessa técnica, caso tenha ficado alguma dúvida, sinta-se à vontade em colocá-la nos comentários. Até a próxima!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Fonte:

Teste de Integração, Sistema e Aceitação, Alexandre Mota. (link)

Técnicas de Integração de Sistema – Incremental

Ao realizar os testes de integração uma dúvida que pode surgir é a de como combinar os módulos do software. Existem 5 abordagens diferentes para realizar a junção dos módulos, a fim de obter a montagem de todo o sistema:

  • Incremental
  • Top down
  • Bottom up
  • Sandwich
  • Big bang

Neste post, irei falar sobre a abordagem Incremental, que como o próprio nome sugere ocorre aos poucos, módulo a módulo.

A interação ocorre através de uma série de ciclos de teste. Em cada ciclo de teste, os módulos vão se integrando com os já existentes e testados para gerar maiores módulos. A idéia é concluir um ciclo de testes, os desenvolvedores corrigirem todos os erros encontrados, e continuar o próximo ciclo de testes. O sistema completo é construído incrementalmente, ciclo por ciclo, até que o sistema esteja operacional e pronto para a realização dos testes de nível de sistema.

Uma aplicação da abordagem Incremental ocorre frequentemente na fabricação de bolos: a confeiteira degusta a massa do bolo antes de colocá-la no forno, e antes de colocar a cobertura ela verifica a sua consistência e sabor.

A seguir veremos as vantagens e desvantagens do uso da abordagem Incremental na realização dos testes de integração, sendo interessante notar que boa parte das vantagens e desvantagens apresentadas, também ocorre no desenvolvimento incremental.

Vantagens

  • O tester não precisa esperar até que todo o sistema esteja pronto, para iniciar os testes;
  • Há um menor risco de fracasso geral do projeto, já que cada módulo é verificado antes e caso algo esteja errado a correção será implementada já no próximo ciclo de teste;
  • A integração dos módulos só é realizada, após eles já terem sido verificados, ou seja, se algum erro acontecer a causa, provavelmente, será a comunicação entre esses módulos.

Desvantagens

  • A modulação pode ser uma tarefa difícil de ser realizada, pois os módulos necessitam ser pequenos, mas com alguma funcionalidade completa;
  • Em determinadas situações, a realização do teste só poderá ser feita com a utilização de Mock Object.

Considerações Finais

Na utilização da abordagem Incremental para a realização dos testes de integração, alguns aspectos devem ser considerados, tendo em vista o número de ciclos de testes:

  • O número de módulos do sistema;
  • A complexidade dos módulos;
  • A complexidade da interface entre os módulos;
  • O número de módulos a serem usados para o agrupamento em cada ciclo de teste;
  • Verificar se os módulos a serem integrados foram devidamente testados antes;
  • O tempo de resposta da equipe de desenvolvimento em cada ciclo de teste.

Por hoje é só pessoal. Em breve comentarei sobre a técnica Top-down, que é uma técnica de fazer a integração de forma incremental. Até lá!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Fonte:

NAIK, Kshirasagar; TRIPATHY, Priyadarshi. Software Testing and Quality Assurance. Hoboken (New Jersey): John Wiley & Sons, Inc., 2008.

alisson.brito.googlepages.com/ProcessoDeSoftware_AlissonBrito.ppt


Tweets do QualidadeBR

Creative Commons License
Este trabalho está sob licença Creative Commons Atribuição 3.0 Brasil License.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 34 other followers