40 research outputs found

    Multimorphic Testing

    Get PDF
    International audienceThe functional correctness of a software application is, of course, a prime concern, but other issues such as its execution time, precision , or energy consumption might also be important in some contexts. Systematically testing these quantitative properties is still extremely difficult, in particular, because there exists no method to tell the developer whether such a test set is "good enough" or even whether a test set is better than another one. This paper proposes a new method, called Multimorphic testing, to assess the relative effectiveness of a test suite for revealing performance variations of a software system. By analogy with mutation testing, our core idea is to vary software parameters, and to check whether it makes any difference on the outcome of the tests: i.e. are some tests able to " kill " bad morphs (configurations)? Our method can be used to evaluate the quality of a test suite with respect to a quantitative property of interest, such as execution time or computation accuracy

    Critical Textile Topologies X Planet City: the intersection of design practice and research

    Get PDF

    The effect of achene heteromorphism on germination in the shaggy soldier [Galinsoga ciliata (Rafin) S.F. Blake]

    Get PDF

    World Settings

    Get PDF
    Acoustical building materials, with their ability to absorb and diffuse sound, can reshape the character of interior spaces in profound ways. Woven textiles often perform as acoustical materials, whether by coincidence or by design; strategic use of textile structure and dimensionality can yield specific experiential qualities in homes, offices and shared spaces. The way certain materials manipulate sound can feel otherworldly, as if they break the laws of physics or the familiar parameters of one’s surroundings. The same properties can be found in emergent visual patterns and illusory lighting conditions, which provoke an investigative, deliberate way of looking. In this thesis, I explore the history of architectural acoustics and the meaning of noise as a sonic, conceptual and technical term. Visual metaphors of windows and screens, digital and analog noise and perceptual phenomena shape this work, while the “aliveness” of self-organizing materials provides a rationale for new variations on weaving techniques. The result is a collection of interior fabrics that aim to modify room environments acoustically and visually, suggesting that the static “settings” of such places have shifted. I argue that this sense of unfamiliarity can be fruitful, prompting the viewer to spend time in a focused, exploratory state and become aware of the cognitive processes by which they make sense of the physical world

    Performance mutation testing

    Get PDF
    Performance bugs are known to be a major threat to the success of software products. Performance tests aim to detect performance bugs by executing the program through test cases and checking whether it exhibits a noticeable performance degradation. The principles of mutation testing, a well-established testing technique for the assessment of test suites through the injection of artificial faults, could be exploited to evaluate and improve the detection power of performance tests. However, the application of mutation testing to assess performance tests, henceforth called performance mutation testing (PMT), is a novel research topic with numerous open challenges. In previous papers, we identified some key challenges related to PMT. In this work, we go a step further and explore the feasibility of applying PMT at the source-code level in general-purpose languages. To do so, we revisit concepts associated with classical mutation testing, and design seven novel mutation operators to model known bug-inducing patterns. As a proof of concept, we applied traditional mutation operators as well as performance mutation operators to open-source C++ programs. The results reveal the potential of the new performance-mutants to help assess and enhance performance tests when compared to traditional mutants. A review of live mutants in these programs suggests that they can induce the design of special test inputs. In addition to these promising results, our work brings a whole new set of challenges related to PMT, which will hopefully serve as a starting point for new contributions in the area

    Performance mutation testing

    Get PDF
    Performance bugs are known to be a major threat to the success of software products. Performance tests aim to detect performance bugs by executing the program through test cases and checking whether it exhibits a noticeable performance degradation. The principles of mutation testing, a well-established testing technique for the assessment of test suites through the injection of artificial faults, could be exploited to evaluate and improve the detection power of performance tests. However, the application of mutation testing to assess performance tests, henceforth called performance mutation testing (PMT), is a novel research topic with numerous open challenges. In previous papers, we identified some key challenges related to PMT. In this work, we go a step further and explore the feasibility of applying PMT at the source-code level in general purpose languages. To do so, we revisit concepts associated with classical mutation testing, and design seven novel mutation operators to model known bug-inducing patterns. As a proof of concept, we applied traditional mutation operators as well as performance mutation operators to open-source C++ programs. The results reveal the potential of the new performance-mutants to help assess and enhance performance tests when compared to traditional mutants. A review of live mutants in these programs suggests that they can induce the design of special test inputs. In addition to these promising results, our work brings a whole new set of challenges related to PMT, which will hopefully serve as a starting point for new contributions in the areaMinisterio de EconomĂ­a y Competitividad TIN2015-65845-C3-3-RMinisterio de EconomĂ­a y Competitividad RTI2018- 093608-B-C33Ministerio de EconomĂ­a y Competitividad BELI (TIN2015-70560-R)Ministerio de EconomĂ­a y Competitividad (HORATIO) RTI2018-101204-B-C2

    Effective killing of the human pathogen Candida albicans by a specific inhibitor of non-essential mitotic kinesin Kip1p

    Get PDF
    Kinesins from the bipolar (Kinesin-5) family are conserved in eukaryotic organisms and play critical roles during the earliest stages of mitosis to mediate spindle pole body separation and formation of a bipolar mitotic spindle. To date, genes encoding bipolar kinesins have been reported to be essential in all organisms studied. We report the characterization of CaKip1p, the sole member of this family in the human pathogenic yeast Candida albicans. C. albicans Kip1p appears to localize to the mitotic spindle and loss of CaKip1p function interferes with normal progression through mitosis. Inducible excision of CaKIP1 revealed phenotypes unique to C. albicans, including viable homozygous Cakip1 mutants and an aberrant spindle morphology in which multiple spindle poles accumulate in close proximity to each other. Expression of the C. albicans Kip1 motor domain in Escherichia coli produced a protein with microtubule-stimulated ATPase activity that was inhibited by an aminobenzothiazole (ABT) compound in an ATP-competitive fashion. This inhibition results in ‘rigor-like’, tight association with microtubules in vitro. Upon treatment of C. albicans cells with the ABT compound, cells were killed, and terminal phenotype analysis revealed an aberrant spindle morphology similar to that induced by loss of the CaKIP1 gene. The ABT compound discovered is the first example of a fungal spindle inhibitor targeted to a mitotic kinesin. Our results also show that the non-essential nature and implementation of the bipolar motor in C. albicans differs from that seen in other organisms, and suggest that inhibitors of a non-essential mitotic kinesin may offer promise as cidal agents for antifungal drug discovery

    Subtraction Cutting 2014-2020 - 131 Scholarly Encounters and Artefacts [REF 2021 Portfolio]

    Get PDF
    Subtraction Cutting is a series of works that challenge conventional approaches to the construction and communication of fashion design. The research addresses how designers beneficially engage with abstract methodologies of making in large participatory audiences, and within short timeframes. It investigates how creative risk-taking and collaborative making activities become more widely accessible, and used to help raise confidence in creative ability, without requiring high levels of prior knowledge or expertise. Roberts uses action research as the principal method for testing the effectiveness of live performances of garment making, incorporating projected video and spoken narrative to engage collaboratively with mixed participatory audiences of varying sizes, nationalities, age groups, and levels of expertise. By developing simplified and deliberately abstract variations of construction Subtraction Cutting demonstrates how intuitive experimentation in textile material and chance discovery helps re-sequence conventional design procedure, whilst reducing reliance on numerical sizing and measurement. This structural change results in deliberately disorientating, hard-to-predict and elaborate outcomes which provoke aesthetic judgment, and contribute to dialogue about the relationship between the body of the maker and the wearer, and the movement of flexible textile material around the dynamic human form. This action research took place in widespread geographic locations during 2014-2020 producing large iterations of work which converge to evidence new approaches to textile-led fashion design practice. This reached 25 Countries and involved 88 institutions who financially supported the research. The outputs have also been disseminated publicly in the form of documentary videos, photography, writing and shared lectures. These research encounters have international reach evidenced in 5 global regions: Europe and Russia (22 events, 11 countries, 15 institutions); East Asia, South East Asia, India, Middle East (17 events, 6 countries, 14 institutions); Australia (15 events, 11 institutions); South America and USA (14 events, 4 countries, 11 institutions); UK (63 events, 45 institutions

    Modelling, Reverse Engineering, and Learning Software Variability

    Get PDF
    The society expects software to deliver the right functionality, in a short amount of time and with fewer resources, in every possible circumstance whatever are the hardware, the operating systems, the compilers, or the data fed as input. For fitting such a diversity of needs, it is common that software comes in many variants and is highly configurable through configuration options, runtime parameters, conditional compilation directives, menu preferences, configuration files, plugins, etc. As there is no one-size-fits-all solution, software variability ("the ability of a software system or artifact to be efficiently extended, changed, customized or configured for use in a particular context") has been studied the last two decades and is a discipline of its own. Though highly desirable, software variability also introduces an enormous complexity due to the combinatorial explosion of possible variants. For example, the Linux kernel has 15000+ options and most of them can have 3 values: "yes", "no", or "module". Variability is challenging for maintaining, verifying, and configuring software systems (Web applications, Web browsers, video tools, etc.). It is also a source of opportunities to better understand a domain, create reusable artefacts, deploy performance-wise optimal systems, or find specialized solutions to many kinds of problems. In many scenarios, a model of variability is either beneficial or mandatory to explore, observe, and reason about the space of possible variants. For instance, without a variability model, it is impossible to establish a sampling strategy that would satisfy the constraints among options and meet coverage or testing criteria. I address a central question in this HDR manuscript: How to model software variability? I detail several contributions related to modelling, reverse engineering, and learning software variability. I first contribute to support the persons in charge of manually specifying feature models, the de facto standard for modeling variability. I develop an algebra together with a language for supporting the composition, decomposition, diff, refactoring, and reasoning of feature models. I further establish the syntactic and semantic relationships between feature models and product comparison matrices, a large class of tabular data. I then empirically investigate how these feature models can be used to test in the large configurable systems with different sampling strategies. Along this effort, I report on the attempts and lessons learned when defining the "right" variability language. From a reverse engineering perspective, I contribute to synthesize variability information into models and from various kinds of artefacts. I develop foundations and methods for reverse engineering feature models from satisfiability formulae, product comparison matrices, dependencies files and architectural information, and from Web configurators. I also report on the degree of automation and show that the involvement of developers and domain experts is beneficial to obtain high-quality models. Thirdly, I contribute to learning constraints and non-functional properties (performance) of a variability-intensive system. I describe a systematic process "sampling, measuring, learning" that aims to enforce or augment a variability model, capturing variability knowledge that domain experts can hardly express. I show that supervised, statistical machine learning can be used to synthesize rules or build prediction models in an accurate and interpretable way. This process can even be applied to huge configuration space, such as the Linux kernel one. Despite a wide applicability and observed benefits, I show that each individual line of contributions has limitations. I defend the following answer: a supervised, iterative process (1) based on the combination of reverse engineering, modelling, and learning techniques; (2) capable of integrating multiple variability information (eg expert knowledge, legacy artefacts, dynamic observations). Finally, this work opens different perspectives related to so-called deep software variability, security, smart build of configurations, and (threats to) science

    Pharmaceutical Polymorphs, Cocrystals and Solid Solutions

    Get PDF
    Abstrac
    corecore