48 research outputs found

    Three-dimensional bio-printing and bone tissue engineering: technical innovations and potential applications in maxillofacial reconstructive surgery

    Get PDF
    Background Bone grafting has been considered the gold standard for hard tissue reconstructive surgery and is widely used for large mandibular defect reconstruction. However, the midface encompasses delicate structures that are surrounded by a complex bone architecture, which makes bone grafting using traditional methods very challenging. Three-dimensional (3D) bioprinting is a developing technology that is derived from the evolution of additive manufacturing. It enables precise development of a scaffold from different available biomaterials that mimic the shape, size, and dimension of a defect without relying only on the surgeon’s skills and capabilities, and subsequently, may enhance surgical outcomes and, in turn, patient satisfaction and quality of life. Review This review summarizes different biomaterial classes that can be used in 3D bioprinters as bioinks to fabricate bone scaffolds, including polymers, bioceramics, and composites. It also describes the advantages and limitations of the three currently used 3D bioprinting technologies: inkjet bioprinting, micro-extrusion, and laser-assisted bioprinting. Conclusions Although 3D bioprinting technology is still in its infancy and requires further development and optimization both in biomaterials and techniques, it offers great promise and potential for facial reconstruction with improved outcome

    Multiscale multifactorial approaches for engineering tendon substitutes

    Get PDF
    The physiology of tendons and the continuous strains experienced daily make tendons very prone to injury. Excessive and prolonged loading forces and aging also contribute to the onset and progression of tendon injuries, and conventional treatments have limited efficacy in restoring tendon biomechanics. Tissue engineering and regenerative medicine (TERM) approaches hold the promise to provide therapeutic solutions for injured or damaged tendons despite the challenging cues of tendon niche and the lack of tendon-specific factors to guide cellular responses and tackle regeneration. The roots of engineering tendon substitutes lay in multifactorial approaches from adequate stem cells sources and environmental stimuli to the construction of multiscale 3D scaffolding systems. To achieve such advanced tendon substitutes, incremental strategies have been pursued to more closely recreate the native tendon requirements providing structural as well as physical and chemical cues combined with biochemical and mechanical stimuli to instruct cell behavior in 3D architectures, pursuing mechanically competent constructs with adequate maturation before implantation.Authors acknowledge the project “Accelerating tissue engineering and personalized medicine discoveries by the integration of key enabling nanotechnologies, marinederived biomaterials and stem cells,” supported by Norte Portugal Regional Operational Programme (NORTE 2020), under the Portugal 2020 Partnership Agreement, through the European Regional Development Fund (ERDF). Authors acknowledge the H2020 Achilles Twinning Project No. 810850, and also the European Research Council CoG MagTendon No. 772817, and the FCT Project MagTT PTDC/CTM-CTM/ 29930/2017 (POCI-01-0145-FEDER-29930

    Carving Information Sources to Drive Search-Based Crash Reproduction and Test Case Generation

    No full text
    Software testing is one of the essential and expensive tasks in software development. Hence, many approaches were introduced to automate different software testing tasks. Among these techniques, search-based test generation techniques have been vastly applied in real-world cases and have shown promising results. These strategies apply search-based methods for generating tests according to various test criteria such as line and branch coverage. In this thesis, we introduce new search objectives and techniques using various knowledge carved from resources like source code, hand-written test cases, and execution logs. These novel search objectives and approaches (i) improve the state-of-the-art in search-based crash reproduction, (ii) present a new search-based approach to generate class-integration tests covering interactions between two given classes., and (iii) introduce two new search objectives for covering common/uncommon execution patterns observed during the software production.Software Engineerin

    Basic Block Coverage for Unit Test Generation at the SBST 2022 Tool Competition

    No full text
    Basic Block Coverage (BBC) is a secondary objective for search-based unit test generation techniques relying on the approach level and branch distance to drive the search process. Unlike the approach level and branch distance, which considers only information related to the coverage of explicit branches coming from conditional and loop statements, BBC also takes into account implicit branchings (e.g., a runtime exception thrown in a branchless method) denoted by the coverage level of relevant basic blocks in a control flow graph to drive the search process. Our implementation of BBC for unit test generation relies on the DynaMOSA algorithm and EvoSuite. This paper summarizes the results achieved by EvoSuite's DynaMOSA implementation with BBC as a secondary objective at the SBST 2022 unit testing tool competition

    Basic Block Coverage for Unit Test Generation at the SBST 2022 Tool Competition

    No full text
    Basic Block Coverage (BBC) is a secondary objective for search-based unit test generation techniques relying on the approach level and branch distance to drive the search process. Unlike the approach level and branch distance, which considers only information related to the coverage of explicit branches coming from conditional and loop statements, BBC also takes into account implicit branchings (e.g., a runtime exception thrown in a branchless method) denoted by the coverage level of relevant basic blocks in a control flow graph to drive the search process. Our implementation of BBC for unit test generation relies on the DynaMOSA algorithm and EvoSuite. This paper summarizes the results achieved by EvoSuite's DynaMOSA implementation with BBC as a secondary objective at the SBST 2022 unit testing tool competition.Software Engineerin

    An Application of Model Seeding to Search-based Unit Test Generation for Gson

    No full text
    Model seeding is a strategy for injecting additional information in a search-based test generation process in the form of models, representing usages of the classes of the software under test. These models are used during the search-process to generate logical sequences of calls whenever an instance of a specific class is required. Model seeding was originally proposed for search-based crash reproduction. We adapted it to unit test generation using EvoSuite and applied it to GSON, a Java library to convert Java objects from and to JSON. Although our study shows mixed results, it identifies potential future research directions.Software Engineerin

    A benchmark-based evaluation of search-based crash reproduction

    No full text
    Crash reproduction approaches help developers during debugging by generating a test case that reproduces a given crash. Several solutions have been proposed to automate this task. However, the proposed solutions have been evaluated on a limited number of projects, making comparison difficult. In this paper, we enhance this line of research by proposing JCrashPack, an extensible benchmark for Java crash reproduction, together with ExRunner, a tool to simply and systematically run evaluations. JCrashPack contains 200 stack traces from various Java projects, including industrial open source ones, on which we run an extensive evaluation of EvoCrash, the state-of-the-art tool for search-based crash reproduction. EvoCrash successfully reproduced 43% of the crashes. Furthermore, we observed that reproducing NullPointerException, IllegalArgumentException, and IllegalStateException is relatively easier than reproducing ClassCastException, ArrayIndexOutOfBoundsException and StringIndexOutOfBoundsException. Our results include a detailed manual analysis of EvoCrash outputs, from which we derive 14 current challenges for crash reproduction, among which the generation of input data and the handling of abstract and anonymous classes are the most frequents. Finally, based on those challenges, we discuss future research directions for search-based crash reproduction for Java

    Hybrid Multi-level Crossover for Unit Test Case Generation

    No full text
    State-of-the-art search-based approaches for test case generation work at test case level, where tests are represented as sequences of statements. These approaches make use of genetic operators (i.e., mutation and crossover) that create test variants by adding, altering, and removing statements from existing tests. While this encoding schema has been shown to be very effective for many-objective test case generation, the standard crossover operator (single-point) only alters the structure of the test cases but not the input data. In this paper, we argue that changing both the test case structure and the input data is necessary to increase the genetic variation and improve the search process. Hence, we propose a hybrid multi-level crossover (HMX) operator that combines the traditional test-level crossover with data-level recombination. The former evolves and alters the test case structures, while the latter evolves the input data using numeric and string-based recombinational operators. We evaluate our new crossover operator by performing an empirical study on more than 100 classes selected from open-source Java libraries for numerical operations and string manipulation. We compare HMX with the single-point crossover that is used in EvoSuite w.r.t structural coverage and fault detection capability. Our results show that HMX achieves a statistically significant increase in 30% of the classes up to 19% in structural coverage compared to the single-point crossover. Moreover, the fault detection capability improved up to 12% measured using strong mutation score.Software Engineerin

    It is not Only About Control Dependent Nodes: Basic Block Coverage for Search-Based Crash Reproduction

    No full text
    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 crash reproduction because the implicit branches commonly occur when trying to reproduce a crash, and the search process needs to cover only a few basic blocks (i.e., blocks that are executed before crash happening). We combined BBC with existing fitness functions (namely STDistance and WeightedSum) and ran our evaluation on 124 hard-to-reproduce crashes. Our results show that BBC, in combination with STDistance and WeightedSum, reproduces 6 and 1 new crashes, respectively. BBC significantly decreases the time required to reproduce 26.6% and 13.7% of the crashes using STDistance and WeightedSum, respectively. For these crashes, BBC reduces the consumed time by 44.3% (for STDistance) and 40.6% (for WeightedSum) on average
    corecore