6 research outputs found

    A theoretical and empirical study of EFSM dependence.

    Get PDF
    Dependence analysis underpins many activities in software maintenance such as comprehension and impact analysis. As a result, dependence has been studied widely for programming languages, notably through work on program slicing. However, there is comparatively little work on dependence analysis at the model level and hitherto, no empirical studies. We introduce a slicing tool for extended finite state machines (EFSMs) and use the tool to gather empirical results on several forms of dependence found in ten EFSMs, including well-known benchmarks in addition to real-world EFSM models. We investigate the statistical properties of dependence using statistical tests for correlation and formalize and prove four of the empirical findings arising from our empirical study. The paper thus provides the maintainer with both empirical data and foundational theoretical results concerning dependence in EFSM models

    Amorphous slicing of extended finite state machines

    Get PDF
    Slicing is useful for many Software Engineering applications and has been widely studied for three decades, but there has been comparatively little work on slicing Extended Finite State Machines (EFSMs). This paper introduces a set of dependency based EFSM slicing algorithms and an accompanying tool. We demonstrate that our algorithms are suitable for dependence based slicing. We use our tool to conduct experiments on ten EFSMs, including benchmarks and industrial EFSMs. Ours is the first empirical study of dependence based program slicing for EFSMs. Compared to the only previously published dependence based algorithm, our average slice is smaller 40% of the time and larger only 10% of the time, with an average slice size of 35% for termination insensitive slicing

    FormlSlicer: A Model Slicing Tool for Feature-rich State-machine Models

    Get PDF
    A model of the feature-oriented requirements of a software system usually contains a large number of non-trivial features; each feature may have unintended interactions with other features. It may be difficult to comprehend or verify such a model. Model slicing is a useful approach to overcome such a challenge by enabling views of models of individual features that preserve feature interactions. Model slicing evolves from traditional program slicing; it is a technique to extract a sub-model from the original model with respect to a slicing criterion. In this thesis we focus on one type of model: state-based models (SBMs). Because of the difference in granularity between programs and SBMs, as well as the difficulty of maintaining well-formedness of a sliced SBM, SBM slicing is much more challenging than program slicing. Among a diverse range of slicing approaches, dependence-based slicing is the most popular; it relies on the computation of dependence relations among states and transitions in order to determine which model elements of the original model must be in the slice and which can be omitted. We present a workflow and tool for automatically constructing a feature-based slice from a feature-oriented state-machine model of the requirements of a software system. Each feature in the model is modeled as a complete state-transition machine called a feature-oriented state machine (FOSM). The workflow consists of two tasks—a preprocessing task and a slicing task. The preprocessing task mainly computes three types of dependences: hierarchy dependence (HD), which represents the state hierarchy relation among states in the original model; data dependence (DD), which captures the define-use relationship among transitions with respect to a variable; and control dependence (CD), which captures the notion of whether one state can affect the execution of another state or transition. The slicing task forks off multiple slicing processes; each process considers one of the FOSMs as the feature of interest (FOI)—which is the slicing criterion—and the rest of FOSMs as the rest of the system (ROS)—which is to be sliced. Each slicing process constructs a sliced model to preserve the portion of the ROS that interacts with the FOI. The construction process is multi-staged; it firstly identifies an initial set of transitions in the ROS that directly affect the FOI; it then finds more states and transitions in the transitive closure of dependences; and it eventually restructures the model to further reduce the model size and maintain its well-formedness property. We provide a correctness proof that shows that the resulting sliced models simulate the original model, by proving that an execution step of a given execution trace in the original model can always be projected to an execution step of at least one execution trace in the sliced model. Our proposed slicing workflow has been implemented in a tool called FormlSlicer. We conducted an empirical evaluation that demonstrates that, on average, the ROS of a sliced model has 23.0% of states, 15.7% of transitions, 32.8% of regions and 19.3% of variables of the ROS of the original model

    A multi-objective evolutionary approach for automatic generation of test cases from state machines

    Get PDF
    Orientador: Eliane MartinsTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: A geração automática de casos de teste contribui tanto para melhorar a produtividade quanto para reduzir esforço e custo no processo de desenvolvimento de software. Neste trabalho é proposta uma abordagem, denominada MOST (Multi-Objective Search-based Testing approach from EFSM), para gerar casos de teste a partir de Máquina de Estados Finitos Estendida (MEFE) com a aplicação de uma técnica de otimização. No teste baseado em MEFE, é necessário encontrar uma sequência de entrada para exercitar um caminho no modelo, a fim de cobrir um critério de teste (e.g. todas as transições). Como as sequências podem ter diferentes tamanhos, motivou-se o desenvolvimento do algoritmo M-GEOvsl (Multi-Objective Generalized Extremal Optimization with variable string length) que permite gerar soluções de diferentes tamanhos. Além disso, por ser um algoritmo multiobjetivo, M-GEOvsl também possibilita que mais de um critério seja usado para avaliar as soluções. Com a aplicação desse algoritmo em MOST, tanto a cobertura da transição alvo quanto o tamanho da sequência são levados em consideração na geração de casos de teste. Para guiar a busca, são utilizadas informações das dependências do modelo. O algoritmo gera as sequências de entrada, incluindo os valores de seus parâmetros. Em MOST, um modelo executável da MEFE recebe como entrada os dados gerados pelo M-GEOvsl e produz dinamicamente os caminhos percorridos. Uma vez que os aspectos de controle e dados do modelo são considerados durante a execução do modelo, evita-se o problema de geração de caminhos infactíveis. Um caminho pode ser sintaticamente possível, mas semanticamente infactível, devido aos conitos de dados envolvidos no modelo. Para avaliar a abordagem proposta foram realizados vários experimentos com modelos da literatura e de aplicações reais. Os resultados da abordagem também foram comparados com os casos de teste obtidos em um trabalho relacionado.Abstract: Automated test case generation can improve the productivity as well as reduce effort and cost in the software development process. In this work an approach, named MOST (Multi- Objective Search-based Testing approach from EFSM), is proposed to generate test cases from Extended Finite State Machine (EFSM) using an optimization technique. In EFSM based testing, an input sequence should be found to sensitize a path in the model, in order to cover a test criterion (e.g. all transitions). As the sequences can have different lengths, it motivates the development of the M-GEOvsl (Multi-Objective Generalized Extremal Optimization with variable string length) algorithm that makes possible the generation of solutions with different lengths. Moreover, as a multiobjective algorithm, M-GEOvsl also allows to use more than one criterion to evaluate the solutions. Using this algorithm in MOST, the coverage of the target transition as well as the sequence length are taken into account in the test case generation. To guide the search, the information about the model dependences is used. The algorithm generates the input sequences, including the values of their parameters. In MOST, an executable model of the EFSM receives as input the data generated by M-GEOvsl and produces the traversed paths dynamically. Since the control and data aspects are considered during model execution, the problem of infeasible path generation is avoided. A path can be syntatically possible, but semantically infeasible, due to the data conicts in the model. In order to evaluate the proposed approach, experiments were performed with models of the literature and real-world applications. The results were also compared to the test cases obtained in a related workDoutoradoCiência da ComputaçãoDoutor em Ciência da Computaçã

    A theoretical and empirical study of EFSM dependence.

    Get PDF
    Dependence analysis underpins many activities in software maintenance such as comprehension and impact analysis. As a result, dependence has been studied widely for programming languages, notably through work on program slicing. However, there is comparatively little work on dependence analysis at the model level and hitherto, no empirical studies. We introduce a slicing tool for extended finite state machines (EFSMs) and use the tool to gather empirical results on several forms of dependence found in ten EFSMs, including well-known benchmarks in addition to real-world EFSM models. We investigate the statistical properties of dependence using statistical tests for correlation and formalize and prove four of the empirical findings arising from our empirical study. The paper thus provides the maintainer with both empirical data and foundational theoretical results concerning dependence in EFSM models
    corecore