226 research outputs found

    Testes incrementais em um desenvolvimento guiado por testes baseados em modelo

    Get PDF
    Orientador: Eliane MartinsDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: O desenvolvimento de sistemas pode ser realizado seguindo diversos modelos de processo. Os métodos ágeis propõem realizar implementações iterativas e incrementais e testes antecipados, buscando uma validação antecipada do sistema. Algumas técnicas ágeis adicionam a característica de um desenvolvimento de sistema baseado em testes, como as técnicas de Desenvolvimento Baseado em Teste (do inglês Test Driven Development (TDD)) e Desenvolvimento Baseado em Comportamento (do inglês Behaviour Driven Development (BDD)). Recentemente algumas técnicas propõem a união de técnicas ágeis de desenvolvimento baseado em testes com técnicas consolidadas da área de testes, com o objetivo principal de auxiliar na etapa de criação de testes, que serão utilizados para guiar o desenvolvimento do sistema. Um exemplo é a técnica de Desenvolvimento Guiado por Testes Baseados em Modelo (do inglês Model-Based Test Driven Development (MBTDD)) que une os conceitos de Testes Baseados em Modelo (do inglês Model-Based Testing (MBT)) e Desenvolvimento Baseado em Teste (TDD). Portanto em MBTDD, testes são derivados de modelos que representam os comportamentos esperados do sistema, e baseado nesses testes, o desenvolvimento iterativo e incremental ocorre. Entretanto quando lidamos com processos iterativos e incrementais, surgem problemas decorrente da evolução do sistema, como por exemplo: como reutilizar os artefatos de testes, e como selecionar os testes relevantes para a codificação da nova versão do sistema. Nesse contexto, este trabalho explora um processo no qual o desenvolvimento ágil de sistema é guiado por testes baseados em modelos, com o enfoque no auxílio do reúso dos artefatos de testes e no processo de identificação de testes relevantes para o desenvolvimento de uma nova versão do sistema. Para tanto, características do processo de MBTDD são unidas com características de uma técnica que busca o reúso de artefatos de testes baseado em princípios de testes de regressão, denominada Testes de Regressão SPL Baseados em Modelo Delta (do inglês Delta-Oriented Model-Based SPL Regression Testing). Para realizar a avaliação da solução proposta, ela foi aplicada em exemplos existentes e comparada com a abordagem no qual nenhum caso de teste é reutilizadoAbstract: Systems can be developed following different process models. Agile methods propose iterative and incremental implementations and anticipating tests, in order to anticipate system validation. Some agile techniques add the characteristic of development based on tests, like in Test Driven Development (TDD) and Behaviour Driven Development (BDD). Recently some techniques proposed joining the agile techniques of development based on tests with techniques consolidated in the field of testing, with the main purpose of aiding in the test creation stage, which are used to guide the development of the system. An example is Model-Based Test Driven Development (MBTDD) which joins the concepts of Model-Based Testing (MBT) and Test Driven Development (TDD). Therefore in MBTDD, tests are derived from models that represent the expected behaviour of the system, and based on those tests, iterative and incremental development is performed. However, when iterative and incremental processes are used, problems appear as the consequence of the evolution of the system, such as: how to reuse the test artefacts, and how to select the relevant tests for implementing the new version of the system. In this context, this work proposes a process in which the agile development of a system is guided by model based tests, focusing on helping with the reuse of test artefacts and on the process of identifying tests relevant to development. To achieve this goal, MBTDD process characteristics are joined with characteristics from a technique that aims to find reusability of test artefacts based on principles of regression tests, called Delta-Oriented Model-Based SPL Regression Testing. To evaluate the proposed solution, it was applied to existing examples and compared to the approach without any test case reuseMestradoCiência da ComputaçãoMestra em Ciência da Computação151647/2013-5CNP

    Aspects of Java program verification

    Get PDF

    Acta Cybernetica : Volume 20. Number 2.

    Get PDF

    Proof support for hybridised logics

    Get PDF
    Dissertação de mestrado em Engenharia InformáticaFormal methods are mathematical techniques used to certify safe systems. Such methods abound and have been successfully used in classical Engineering domains, yet informatics is the exception. There, they are still immature and costly; furthermore, software engineers frequently view them with "fear". Thus, the use of formal methods is typically restricted to cases where they are essential. In other words, they are mostly used in the class of systems where safety is imperative, as the lack of it can lead to significant losses (material or human). We denote such systems critical. The present is leading us to a future where critical systems are ubiquitous. Recent research in the Mondrian project emphasises the need for expressive logics to formally specify reconfigurable systems, i.e., systems capable of evolving in order to adapt to the different contexts induced by the dynamics of their surroundings. In the same project, theoretical foundations for the formal specification of reconfigurable systems, were developed in a sound, generic, and systematic way, resorting for this to hybrid logics – their intrinsic properties make them natural candidates for such job. From those foundations a methodology for specifying reconfigurable systems was built and proposed: Instead of choosing a logic for the specification, build an hybrid ad-hoc one, by taking into account the particular characteristics of each reconfigurable system to be specified. The purpose of this dissertation is to bring the proposed methodology into practice, by creating suitable tools for it, and by illustrating its application to relevant case studies.Métodos formais são técnicas matemáticas usadas para certificar sistemas fiáveis. Tais métodos são comuns e usados com sucesso nas engenharias clássicas. No entanto, informática é a excepção. No que respeita este campo, os métodos formais são prematuros e relativamente dispendiosos; para além disso, os engenheiros de software vêem estas técnicas com alguma apreensão. Assim, o emprego de métodos formais está tipicamente restrito a casos onde são absolutamente essenciais. Por outras palavras, são maioritariamente usados na classe de sistemas, cujas falhas têm o potencial de tragédia, seja ela material ou humana; tais sistemas têm a denominação de críticos. O presente leva-nos para um futuro em que os sistemas críticos são ubíquos. Investigação recente no project Mondrian enfatiza a necessidade de lógicas expressivas, para especificar formalmente sistemas reconfiguráveis, i.e., sistemas que evoluem de modo a se adaptarem aos diferentes contextos, induzidos pela dinâmica do meio que os rodeia. No mesmo projecto, bases teóricas para a especificação formal de sistemas reconfiguráveis foram establecidas de forma sólida, genérica e sistemática, recorrendo-se para isso às lógicas híbridas – as suas propriedades intrínsecas, fazem delas candidatos naturais para a especificação de sistemas reconfiguráveis. Dessas teorias foi inferida e proposta uma metodologia para especificar sistemas reconfiguráveis: Em vez de escolher uma lógica para a especificação, construir uma outra, híbrida ad-hoc, tendo em conta as características particulares de cada sistema reconfigurável a especificar. O propósito desta dissertação é de trazer a metodologia proposta à práctica, criando-se para isso, ferramentas que a suportem, e ilustrando a sua aplicação a casos de estudo relevantes

    Type systems for modular programs and specifications

    Get PDF

    Combining SOA and BPM Technologies for Cross-System Process Automation

    Get PDF
    This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation

    Tool support for CSP-CASL.

    Get PDF
    This work presents the design of the specification language CSP-CASL, and the design and implementation of parsing and static analysis tools for that language. CSP-CASL is an extension of the algebraic specification language CASL, adding support for the specification of reactive systems in the style of the process algebra CSP. While CSP-CASL has been described and used in previous works, we present the first formal description of the language's syntax and static semantics. Indeed, this is the first formalisation of the static semantics of any CSP-like language of which we are aware. We describe Csp-Casl both informally and formally. We introduce and systematically describe its various components, with examples, and consider various design decisions made along the way. On the formal side, we present grammars for its abstract and concrete syntax, specify its static semantics in the style of natural semantics, and formulate a solution to the problem of computation of local lop elements of Csp-Casl specifications. Going on, we describe tool support for the language, as implemented using the functional programming language Haskell, in particular, we have a parser utilising the monadic combinator library Parsec, and a static analyser directly implementing our static semantics in Haskell. The implementation extends Hets, an existing toolset for specifications written in heterogeneous combinations of languages based on Casl
    corecore