46 research outputs found

    Finding a boundary between valid and invalid regions of the input space

    Full text link
    In the context of robustness testing, the boundary between the valid and invalid regions of the input space can be an interesting source of erroneous inputs. Knowing where a specific software under test (SUT) has a boundary is essential for validation in relation to requirements. However, finding where a SUT actually implements the boundary is a non-trivial problem that has not gotten much attention. This paper proposes a method of finding the boundary between the valid and invalid regions of the input space. The proposed method consists of two steps. First, test data generators, directed by a search algorithm to maximise distance to known, valid test cases, generate valid test cases that are closer to the boundary. Second, these valid test cases undergo mutations to try to push them over the boundary and into the invalid part of the input space. This results in a pair of test sets, one consisting of test cases on the valid side of the boundary and a matched set on the outer side, with only a small distance between the two sets. The method is evaluated on a number of examples from the standard library of a modern programming language. We propose a method of determining the boundary between valid and invalid regions of the input space and apply it on a SUT that has a non-contiguous valid region of the input space. From the small distance between the developed pairs of test sets, and the fact that one test set contains valid test cases and the other invalid test cases, we conclude that the pair of test sets described the boundary between the valid and invalid regions of that input space. Differences of behaviour can be observed between different distances and sets of mutation operators, but all show that the method is able to identify the boundary between the valid and invalid regions of the input space. This is an important step towards more automated robustness testing.Comment: 10 pages, conferenc

    A Testability Analysis Framework for Non-Functional Properties

    Full text link
    This paper presents background, the basic steps and an example for a testability analysis framework for non-functional properties

    Transferring Interactive Search-Based Software Testing to Industry

    Full text link
    Search-Based Software Testing (SBST) is the application of optimization algorithms to problems in software testing. In previous work, we have implemented and evaluated Interactive Search-Based Software Testing (ISBST) tool prototypes, with a goal to successfully transfer the technique to industry. While SBSE solutions are often validated on benchmark problems, there is a need to validate them in an operational setting. The present paper discusses the development and deployment of SBST tools for use in industry and reflects on the transfer of these techniques to industry. In addition to previous work discussing the development and validation of an ISBST prototype, a new version of the prototype ISBST system was evaluated in the laboratory and in industry. This evaluation is based on an industrial System under Test (SUT) and was carried out with industrial practitioners. The Technology Transfer Model is used as a framework to describe the progression of the development and evaluation of the ISBST system. The paper presents a synthesis of previous work developing and evaluating the ISBST prototype, as well as presenting an evaluation, in both academia and industry, of that prototype's latest version. This paper presents an overview of the development and deployment of the ISBST system in an industrial setting, using the framework of the Technology Transfer Model. We conclude that the ISBST system is capable of evolving useful test cases for that setting, though improvements in the means the system uses to communicate that information to the user are still required. In addition, a set of lessons learned from the project are listed and discussed. Our objective is to help other researchers that wish to validate search-based systems in industry and provide more information about the benefits and drawbacks of these systems.Comment: 40 pages, 5 figure

    EvoMaster: A Search-Based System Test Generation Tool

    Get PDF
    Testing web/enterprise applications is complex and expensive when done manually. Often, software testing takes up to half of the development time and cost for a system. So much testing is needed because the cost of software failure is simply too large: for example, in 2017, 304 software failures (reported in the media) impacted 3.6 billion people and $1.7 trillion in assets worldwide (Tricentis, 2017). Unfortunately, due to its high cost, software testing is often left incomplete, and only applied partially.To address this problem, in Software Engineering (SE) research a lot of effort has been spent in trying to design and implement novel techniques aimed at automating several different tasks, where software testing is among the most studied tasks. Search-Based Software Test- ing (SBST) (Harman et al., 2012) casts the problem of software testing as an optimization problem, aimed at, for example, maximizing code coverage and fault detection.Our SBST tool called EvoMaster addresses these challenges by using evolutionary techniques to automatically generate test cases. It currently focuses on RESTful web services, which are the pillars of modern web and enterprise applications (Allamaraju, 2010; Fielding, 2000).Fil: Arcuri, Andrea. Kristiania University College; NoruegaFil: Galeotti, Juan Pablo. Consejo Nacional de Investigaciones Científicas y Técnicas. Oficina de Coordinación Administrativa Ciudad Universitaria. Instituto de Investigación en Ciencias de la Computación. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales. Instituto de Investigación en Ciencias de la Computación; Argentina. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales. Departamento de Computación; ArgentinaFil: Marculescu, Bogdan. Kristiania University College; NoruegaFil: Zhang, Man. Kristiania University College; Norueg

    Building an open-source system test generation tool: lessons learned and empirical analyses with EvoMaster

    Get PDF
    Research in software testing often involves the development of software prototypes. Like any piece of software, there are challenges in the development, use and verification of such tools. However, some challenges are rather specific to this problem domain. For example, often these tools are developed by PhD students straight out of bachelor/master degrees, possibly lacking any industrial experience in software development. Prototype tools are used to carry out empirical studies, possibly studying different parameters of novel designed algorithms. Software scaffolding is needed to run large sets of experiments efficiently. Furthermore, when using AI-based techniques like evolutionary algorithms, care needs to be taken to deal with their randomness, which further complicates their verification. The aforementioned represent some of the challenges we have identified for this domain. In this paper, we report on our experience in building the open-source EvoMaster tool, which aims at system-level test case generation for enterprise applications. Many of the challenges we faced would be common to any researcher needing to build software testing tool prototypes. Therefore, one goal is that our shared experience here will boost the research community, by providing concrete solutions to many development challenges in the building of such kind of research prototypes. Ultimately, this will lead to increase the impact of scientific research on industrial practice.publishedVersio

    Interactive Search-Based Testing of Embedded Software: Understanding the Benefits and Difficulties of Industrial Application

    No full text
    The ubiquity of software has wide-ranging consequences for its development and testing. Increasingly often, software is developed and tested by engineers specialized in other areas. Embedded software, for example, is developed ad-hoc, for each product, by systems and domain engineers. Supporting testing activities in this context requires a highly flexible approach, powerful enough to create useful test cases, yet simple enough to not require specialized training in software testing. Search-based software testing promises the ability to generate and evaluate large numbers of test cases at minimal cost. It is, however, a set of complex techniques that cannot be used off-the-shelf as part of the software development process of a company. The objective of the work presented in this thesis is to investigate the applicability of Search-Based Software Testing in an industrial environment. A second objective was identifying additional knowledge gaps relating to integrating such techniques in existing software development processes. Investigating how meaningful interaction is to take place, what information is needed in order for both stakeholders to be able to achieve their objectives is a third goal. The findings are obtained by means of a series of case studies in a company developing both embedded software and the tools to enable embedded software development. A prototype Interactive Search-Based Software Testing (ISBST) system was developed that uses user interaction to drive the search-based component towards interesting test cases. The ISBST system was evaluated constantly, and improved based on the findings of each case study. The latest case study was an empirical evaluation of the system with the engineers, both software engineers and domain specialists, in the company. The empirical work includes both qualitative and quantitative data, with a focus on the exploratory study of the practical factors affecting the use of the ISBST system. A key early finding is that interactivity is essential when implementing search-based techniques in the industrial context described above. Repeated validations conducted with the company yielded additional information on the practicalities of interaction. The strength of SBST proved useful in investigating areas of the test space that were normally overlooked due to limitations in terms of resources. At the same time, developers were able to use their experience and intuition to guide the SBST system towards test cases that were more likely to be problematic. Overall, the results obtained indicate that the search-based techniques provide a useful complement to existing testing techniques. SBST, in its interactive form, can be a useful complement to existing testing techniques. An Interactive SBST (ISBST) system has been developed as a result of this research. Results show that this system is usable by the developers of embedded software, that often specialize on acquiring domain knowledge rather than software engineering expertise
    corecore