573,106 research outputs found

    Branch-coverage testability transformation for unstructured programs

    Get PDF
    Test data generation by hand is a tedious, expensive and error-prone activity, yet testing is a vital part of the development process. Several techniques have been proposed to automate the generation of test data, but all of these are hindered by the presence of unstructured control flow. This paper addresses the problem using testability transformation. Testability transformation does not preserve the traditional meaning of the program, rather it deals with preserving test-adequate sets of input data. This requires new equivalence relations which, in turn, entail novel proof obligations. The paper illustrates this using the branch coverage adequacy criterion and develops a branch adequacy equivalence relation and a testability transformation for restructuring. It then presents a proof that the transformation preserves branch adequacy

    Test Data Generation of Bytecode by CLP Partial Evaluation

    Full text link
    We employ existing partial evaluation (PE) techniques developed for Constraint Logic Programming (CLP) in order to automatically generate test-case generators for glass-box testing of bytecode. Our approach consists of two independent CLP PE phases. (1) First, the bytecode is transformed into an equivalent (decompiled) CLP program. This is already a well studied transformation which can be done either by using an ad-hoc decompiler or by specialising a bytecode interpreter by means of existing PE techniques. (2) A second PE is performed in order to supervise the generation of test-cases by execution of the CLP decompiled program. Interestingly, we employ control strategies previously defined in the context of CLP PE in order to capture coverage criteria for glass-box testing of bytecode. A unique feature of our approach is that, this second PE phase allows generating not only test-cases but also test-case generators. To the best of our knowledge, this is the first time that (CLP) PE techniques are applied for test-case generation as well as to generate test-case generators

    A testability transformation approach for state-based programs

    Get PDF
    Search based testing approaches are efficient in test data generation; however they are likely to perform poorly when applied to programs with state variables. The problem arises when the target function includes guards that reference some of the program state variables whose values depend on previous function calls. Thus, merely considering the target function to derive test data is not sufficient. This paper introduces a testability transformation approach based on the analysis of control and data flow dependencies to bypass the state variable problem. It achieves this by eliminating state variables from guards and/ or determining which functions to call in order to satisfy guards with state variables. A number of experiments demonstrate the value of the proposed approach

    Developing self-modifying code model

    Get PDF
    This paper presents the technology of constructing and linearization of binary program utilized for program generation, analysis and transformation into a self-modifying code. An example model of the self-modifying software system and its experimental application in vehicle control have been presented in this paper. The module responsible for vehicle control comprising two subsystems has been created within the simulation software. The first subsystem has emerged through the classical software process developed by a human-programmer. The second subsystem has been created as a result of a separate piece of software substituting the part of a programmer in a software process part. The result of this approach is software creation in conjunction with natural and Artificial Intel- ligence in addition to experimental integration into the vehicle control system

    Developing self-modifying code model

    Get PDF
    This paper presents the technology of constructing and linearization of binary program utilized for program generation, analysis and transformation into a self-modifying code. An example model of the self-modifying software system and its experimental application in vehicle control have been presented in this paper. The module responsible for vehicle control comprising two subsystems has been created within the simulation software. The first subsystem has emerged through the classical software process developed by a human-programmer. The second subsystem has been created as a result of a separate piece of software substituting the part of a programmer in a software process part. The result of this approach is software creation in conjunction with natural and Artificial Intel- ligence in addition to experimental integration into the vehicle control system

    Energy homeostasis management strategy for building rooftop nanogrids, considering the thermal model and a HVAC unit installed

    Get PDF
    This paper presents a case study on power control and energy management for a 60 apartments’ residential building with solar generation and energy storage tied to the grid in Santiago, Chile. A new energy management algorithm based on energy homeostasis is designed for a small electro thermal generation system (nanogrid), with smart metering. The test bed employs supervisory control with energy management that regulates the temperature inside a large room by the action of an HVAC (Heating/Ventilating/Air Conditioning) unit. The main objective of supervisory control is to allow temperature comfort for residents while evaluating the decrease in energy cost. The study considers a room with rooftop grid-tie nanogrid with a photovoltaic and wind turbine generation plant, working in parallel. It also has an external weather station that allows predictive analysis and control of the temperature inside the abode. The electrical system can be disconnected from the local network, working independently (islanding) and with voltage regulation executed by the photovoltaic generation system. Additionally, the system has a battery bank that allows the energy management by means of the supervisory control system. Under this scenario, a set of coordination and supervisory control strategies, adapted for the needs defined in the energy management program and considering the infrastructure conditions of the network and the abode, are applied with the aim of efficiently managing the supply and consumption of energy, considering Electricity Distribution Net Billing Laws 20.571 and 21.118 in Chile (https://www.bcn.cl/historiadelaley/historia-de-la-ley/vista-expandida/7596/), the electricity tariffs established by the distribution company and the option of incorporating an energy storage system and temperature control inside the room. The results show the advantage of the proposed tariffs and the overall energy homeostasis management strategy for the integration of distributed power generation and distribution within the smart grid transformation agenda in Chile

    Loo.py: transformation-based code generation for GPUs and CPUs

    Full text link
    Today's highly heterogeneous computing landscape places a burden on programmers wanting to achieve high performance on a reasonably broad cross-section of machines. To do so, computations need to be expressed in many different but mathematically equivalent ways, with, in the worst case, one variant per target machine. Loo.py, a programming system embedded in Python, meets this challenge by defining a data model for array-style computations and a library of transformations that operate on this model. Offering transformations such as loop tiling, vectorization, storage management, unrolling, instruction-level parallelism, change of data layout, and many more, it provides a convenient way to capture, parametrize, and re-unify the growth among code variants. Optional, deep integration with numpy and PyOpenCL provides a convenient computing environment where the transition from prototype to high-performance implementation can occur in a gradual, machine-assisted form

    Loop Transformations for the Optimized Generation of Reconfigurable Hardware

    Get PDF
    Current high-level design environments offer little support to implement data-intensive applications on heterogeneous-memory systems; they rather focus on parallelism. This thesis addresses the memory hierarchy problem to high-level transformations of loop structures. The composition of long transformation sequences by combining shorter subsequences is studied together with the influence of the order of applying transformation steps. Several methods are presented to estimate bounds on Ehrhart quasi-polynomials, which can be used to statically evaluate program properties, such as memory usage. Since loop transformations not only influence the data access pattern but also the control complexity we present a hardware loop controller architecture which supports hardware generation from the polyhedral representation used for loop transformations. The techniques are demonstrated by the semi-automatic generation of an FPGA implementation of an inverse discrete wavelet transform
    corecore