590 research outputs found

    Search-based crash reproduction using behavioural model seeding

    Get PDF
    Search-based crash reproduction approaches assist developers during debugging by generating a test case which reproduces a crash given its stack trace. One of the fundamental steps of this approach is creating objects needed to trigger the crash. One way to overcome this limitation is seeding: using information about the application during the search process. With seeding, the existing usages of classes can be used in the search process to produce realistic sequences of method calls which create the required objects. In this study, we introduce behavioral model seeding: a new seeding method which learns class usages from both the system under test and existing test cases. Learned usages are then synthesized in a behavioral model (state machine). Then, this model serves to guide the evolutionary process. To assess behavioral model-seeding, we evaluate it against test-seeding (the state-of-the-art technique for seeding realistic objects) and no-seeding (without seeding any class usage). For this evaluation, we use a benchmark of 124 hard-to-reproduce crashes stemming from six open-source projects. Our results indicate that behavioral model-seeding outperforms both test seeding and no-seeding by a minimum of 6% without any notable negative impact on efficiency

    Sapienz: Multi-objective automated testing for android applications

    Get PDF
    We introduce Sapienz, an approach to Android testing that uses multi-objective search-based testing to automatically explore and optimise test sequences, minimising length, while simultaneously maximising coverage and fault revelation. Sapienz combines random fuzzing, systematic and search-based exploration, exploiting seeding and multi-level instrumentation. Sapienz significantly outperforms (with large effect size) both the state-of-the-art technique Dynodroid and the widely-used tool, Android Monkey, in 7/10 experiments for coverage, 7/10 for fault detection and 10/10 for fault-revealing sequence length. When applied to the top 1, 000 Google Play apps, Sapienz found 558 unique, previously unknown crashes. So far we have managed to make contact with the developers of 27 crashing apps. Of these, 14 have confirmed that the crashes are caused by real faults. Of those 14, six already have developer-confirmed fixes

    Basic block coverage for search-based unit testing and crash reproduction

    Get PDF
    Search-based techniques have been widely used for white-box test generation. Many of these approaches rely on the approach level and branch distance heuristics to guide the search process and generate test cases with high line and branch coverage. Despite the positive results achieved by these two heuristics, they only use the information related to the coverage of explicit branches (e.g., indicated by conditional and loop statements), but ignore potential implicit branchings within basic blocks of code. If such implicit branching happens at runtime (e.g., if an exception is thrown in a branchless-method), the existing fitness functions cannot guide the search process. To address this issue, we introduce a new secondary objective, called Basic Block Coverage (BBC), which takes into account the coverage level of relevant basic blocks in the control flow graph. We evaluated the impact of BBC on search-based unit test generation (using the DynaMOSA algorithm) and search-based crash reproduction (using the STDistance and WeightedSum fitness functions). Our results show that for unit test generation, BBC improves the branch coverage of the generated tests. Although small (∼ 1.5%), this improvement in the branch coverage is systematic and leads to an increase of the output domain coverage and implicit runtime exception coverage, and of the diversity of runtime states. In terms of crash reproduction, in the combination of STDistance and WeightedSum, BBC helps in reproducing 3 new crashes for each fitness function. BBC significantly decreases the time required to reproduce 43.5% and 45.1% of the crashes using STDistance and WeightedSum, respectively. For these crashes, BBC reduces the consumed time by 71.7% (for STDistance) and 68.7% (for WeightedSum) on average.Software Engineerin

    Drivers and food web effects of Gonyostomum semen blooms

    Get PDF
    The flagellate Gonyostomum semen forms dense late-summer blooms in humic lakes and is a nuisance to swimmers because it forms a slimy coat on the skin, causing irritation in sensitive individuals. Increasing occurrence and bloom incidence of G. semen has been reported during recent decades, but it is not clear which factors affect the distribution and bloom formation of this alga. Large cell size, ejection of long, slimy threads (trichocysts), and nighttime migration to the hypolimnion may limit grazing on G. semen by herbivorous zooplankton, resulting in a decreased coupling between phytoplankton and higher trophic levels during blooms. The studies included in this thesis investigate which factors affect G. semen occurrence and bloom formation and how G. semen blooms affect the community composition and trophic interactions in boreal, humic lakes. The occurrence of G. semen has increased between 1995 and 2010, especially in southern Sweden. Bloom incidence and total biomass did not increase continually, but fluctuated among years and peaked in the middle of the study period. Temperature and length of the growing season affected the occurrence and, to a lesser extent, bloom formation of G. semen, but local factors such as pH and water colour were more important for bloom formation. More lakes may become suitable habitats with the ongoing increase in water colour and increasing temperatures may result in a more frequent occurrence and bloom formation of G. semen. Blooms resulted in a shift in zooplankton assemblages toward predominance by small cladocerans, which were not able to feed on G. semen but instead fed more on heterotrophic food resources, supporting the hypothesis of a reduced coupling between phytoplankton and zooplankton. Zooplankton assemblages predominated by small animals feeding on low-quality resources may reduce the food quality for planktivorous fish. Instead, the invertebrate predator C. flavicans appeared to benefit from G. semen blooms, as indicated by its high abundance in bloom-lakes. Calanoid copepods and a large cladoceran fed efficiently on G. semen in the laboratory, indicating that there is, however, some trophic coupling between G. semen and higher trophic levels. This supports the use of biomanipulation of fish communities for controlling G. semen blooms

    Behavioral Indicators of Predator Space Use: Studying Species Interactions Through the Behavior of Predators

    Get PDF
    Predation has major impacts on survival and reproductive success for many species. To quantify these effects, ecologists often choose to intensively study prey populations to measure predation rates and/or estimate predator abundance. But in some cases, predation rates are less strongly related to predator abundance per se than to spatial and temporal patterns of predator space use; thus, quantifying the latter may provide meaningful surrogates of predation rates that scale up to larger areas. This is particularly true when safety for prey, especially sessile and vulnerable prey, is strongly linked to predator-free space. Our own research programs have used two general types of behavioral indicators to quantify space use by predators: giving-up densities, as a surrogate for patch quitting harvest rates, and activity density. We discus.s two general mechanisms by which predator-free (or predator-poor) space is created and link these mechanisms to behavioral indicators that can be easily collected in the field. We then summarize our past work on prédation on passerine nests and moth pupae to demonstrate how using behavioral indicators of space use can reveal much about the impact of a predator on its prey. We demonstrate that behavioral indicators can be used for the following: (1) leading indicators for predation rates, (2) surrogates for information otherwise difficult to obtain, (3) integrative measures of the strength of species interactions, and (4) to reveal the outcomes of ecological interactions, such as prey persistence
    corecore