1 / 26

Built-In Contract Testing

Built-In Contract Testing. João dos Prazeres. Motivação. Novo desafio na Engenharia de Software: Reuso Componentes é uma abordagem para facilitar reuso Mas há o problema de integração dos componentes Built-In Contract Testing: Testes embutidos nos componentes clientes e servidores

howard
Download Presentation

Built-In Contract Testing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Built-In Contract Testing João dos Prazeres

  2. Motivação • Novo desafio na Engenharia de Software: Reuso • Componentes é uma abordagem para facilitar reuso • Mas há o problema de integração dos componentes • Built-In Contract Testing: • Testes embutidos nos componentes clientes e servidores • Testam os contratos entre os componentes

  3. BICT • Testing Profile aborda apenas black-box conformance test • SUT (system under test) só interfaces funcionais • BICT requer interfaces que mostre o estado interno.

  4. Artefatos de BICT Server Tester • Baseado nas relações cliente/servidor aplicada ao nível de componentes. • O componente cliente contém um sub-componente testador • Testa as interfaces do servidor antes que a interação entre eles se inicie.

  5. Context <<creates>> <<component>> Server <<acquires>> <<component>> Client <<acquires>> <<component>> Server Tester Context <<creates>> <<acquires>> <<component>> Server <<component>> Client Artefatos de BICT Server Tester

  6. <<component>> Testing Client Server Tester <<component>> Testable Server Public interface Artefatos de BICT Server Tester – 1 abordagem • Server Tester (subcomponente do cliente) se utiliza da interface Server, que passa a se chamar Testable Server. • Esta abordagem também é utilizada para modelar BICT a componentes de terceiros.

  7. <<component>> Testing Client Server Tester <<component>> Testable Server Public interface Testing interface Artefatos de BICT Server Tester – 2 abordagem • O Testable Server (antigo Server Component) disponibiliza um conjunto de interfaces que expõe seus estados internos para facilitar testes – Testing Interfaces

  8. Artefatos de BICT Server Tester • Há três maneiras para a implementação das interfaces de teste: • A primeira trata de implementa-la criando vários métodos para determinar e verificar cada estado. • A segunda, cria atributos para cada estado, e cria apenas dois métodos genéricos para determinar e verificar o estado, passando-o como parâmetro. • A terceira abordagem cria um componente que herda do componente a ser testado, e neste utiliza a segunda abordagem.

  9. <<component>> Testable Server Public interface Testing interface Artefatos de BICT • Testing Interface – Formas de Implementar Testing Interfaces

  10. Perguntas?!?

  11. Transparências Complementares

  12. SPEM – Software Process Engineering MetaModel • A modelagem é feita através do uso de estereótipos • Os principais estereótipos definidos pelo SPEM são: • WorkProduct • WorkDefinition • ProcessPerformer • ProcessRole • ProcessPackage • Phase • Process • Document • UMLModel • Activity • Guidance

  13. WorkProduct: classe de produto de trabalho produzido em um processo e está associado a um tipo de produto. Ex: documento, código fonte, etc. Artefato Notação: WorkDefinition: é um tipo de operação que descreve o trabalho realizado no processo. É a representação para atividades compostas por outras sub-atividades. Notação: SPEM – Software Process Engineering MetaModel

  14. SPEM – Software Process Engineering MetaModel • ProcessPerformer: define o “realizador” de um conjunto de WorkDefinitions do processo. • Notação: • ProcessRole: define responsabilidades em relação a WorkProducts específicos e define papéis que realizam e auxiliam atividades específicas. • Notação:

  15. SPEM – Software Process Engineering MetaModel • ProcessPackage: notação especial para pacotes no contexto SPEM • Notação: • Phase: é uma especialização de um WorkDefinition em que sua pré-condição define a fase de critérios de entrada e seus objetivos definem a fase de critérios de saída • Notação:

  16. SPEM – Software Process Engineering MetaModel • Process: representa um processo completo, em toda sua extensão. • Notação: • Document: notação específica para diferentes tipos de WorkProducts • Notação:

  17. SPEM – Software Process Engineering MetaModel • UMLModel: notação específica para diferentes tipos de WorkProducts • Notação: • Activity: descreve uma parte do trabalho realizado por um ProcessRole: suas tarefas, operações e ações executadas por um papel ou de que forma o papel deve auxiliar • Notação:

  18. SPEM – Software Process Engineering MetaModel • Guidance: Informação mais detalhada sobre o elemento associado fornecida aos praticantes Ex:Guidelines, Metrics, Tools, Checklists e Templates. • Notação:

  19. BICT Reuse

  20. Step 1 - Identification of Tested Interactions Este passo trata de analisar se os elementos de BICT devem ficar permanentes num contexto ou se devem ser removidos após a integração dos componentes e como identificar as interações testáveis.

  21. Step 2 – Definition and Modeling of the Testing Architecture Este passo é a explicitação de como estender o modelo do sistema para considerar elementos do modelo de contract testing. Os elementos do modelo que pertencem a testes devem ser indicados com o estereótipo <<Testing ...>>.

  22. Step 3 – Specification of the Testing Interfaces for the identified associations Como entrada é necessário uma especificação funcional completa das operações do servidor (como previsto no método Kobra). A especificação funcional é informação suficiente para definir as operações de verificação e determinação do estado do componente, as quais constituem as interfaces de teste.

  23. Step 4 – Realization of the Testing Interfaces Este passo trata da realização da interface de testes para o papel servidor de uma associação. A realização das interfaces de teste dependem diretamente da realização do componente servidor a qual ela pertence.

  24. Step 5 – Tester Component Specification Os componentes testadores são identificados e desenvolvidos na especicificação do componente cliente (Testing Component). Os casos de teste são derivados de acordo com a realização do modelo comportamental do componente cliente que o contém.

  25. Step 6 – Realization of the Tester Component A realização de um componente testador está relacionado a como um o componente será organizado e implementado e que testes ele conterá. Eles podem conter sub-componentes testadores ou que auxiliam nos testes.

  26. Step 7 – Integration of the Components Este passo trata de definir adaptadores ou wrapers entre os clientes e servidores que já possuem artefatos de BICT. Trata também da criação de stubs para a execução de testes. Tais stubs, seguindo os conceitos de Testing Profile, teriam o estereótipo <<Test Component>>.

More Related