scholarly journals Automated Search-Based Robustness Testing for Autonomous Vehicle Software

2016 ◽  
Vol 2016 ◽  
pp. 1-15 ◽  
Author(s):  
Kevin M. Betts ◽  
Mikel D. Petty

Autonomous systems must successfully operate in complex time-varying spatial environments even when dealing with system faults that may occur during a mission. Consequently, evaluating the robustness, or ability to operate correctly under unexpected conditions, of autonomous vehicle control software is an increasingly important issue in software testing. New methods to automatically generate test cases for robustness testing of autonomous vehicle control software in closed-loop simulation are needed. Search-based testing techniques were used to automatically generate test cases, consisting of initial conditions and fault sequences, intended to challenge the control software more than test cases generated using current methods. Two different search-based testing methods, genetic algorithms and surrogate-based optimization, were used to generate test cases for a simulated unmanned aerial vehicle attempting to fly through an entryway. The effectiveness of the search-based methods in generating challenging test cases was compared to both a truth reference (full combinatorial testing) and the method most commonly used today (Monte Carlo testing). The search-based testing techniques demonstrated better performance than Monte Carlo testing for both of the test case generation performance metrics: (1) finding the single most challenging test case and (2) finding the set of fifty test cases with the highest mean degree of challenge.

Author(s):  
ALLEN PARRISH ◽  
DAVID CORDES

Abstract data types (ADTs) represent the fundamental building blocks of object-oriented software development. There have been a variety of techniques in the literature for testing ADT modules. Virtually all of the proposed techniques have involved testing sequences of ADT operations (e.g., for a stack ADT, test the sequence PUSH; PUSH; POP) to discover defects in their interactions. However, the operations inside an ADT module are really nothing more than conventional procedures and functions. Consequently, it is conceivable that conventional subprogram unit testing techniques can be adapted to test ADT operations. To support such testing techniques, test cases are best designed and expressed in terms of data values. When test cases are integers, for example, expressing a test case is trivial (e.g., ‘253’). However, when test cases are data abstractions (such as stacks), this problem is much more difficult due to the variety of different formats in which a single data abstraction can be legitimately viewed. In this paper, we provide a conceptual framework for applying classical white-box and black-box unit testing techniques to ADT operations. We then use this framework to develop a collection of guidelines for determining the best format for test case design, given different module characteristics and testing techniques.


2021 ◽  
Vol 9 (4) ◽  
pp. 0-0

This paper proposes a novel test case prioritization technique, namely Multi- Objective Crow Search and Fruitfly Optimization (MOCSFO) for test case prioritization. The proposed MOCSFO is designed by integrating Crow search algorithm (CSA) and Chaotic Fruitfly optimization algorithm (CFOA). The optimal test cases are selected based on newly modelled fitness function, which consist of two parameters, namely average percentage of combinatorial coverage (APCC) and Normalized average of the percentage of faults detected (NAPFD). The test case to be selected is decided using a searching criterion or fitness based on sequential weighed coverage size. Accordingly, the effective searching criterion is formulated to determine the optimal test cases based on the constraints. The experimentation of the proposed MOCSFO method is performed by considering the performance metrics, like NAPFD, and APCC. The proposed MOCSFO outperformed the existing methods with enhanced NAPFD of 0.7, and APCC of 0.837.


Author(s):  
Xiaobing Sun ◽  
Xin Peng ◽  
Hareton Leung ◽  
Bin Li

Regression testing is essential to ensure software quality during software evolution. Two widely-used regression testing techniques, test case selection and prioritization, are used to maximize the value of the continuously enlarging test suite. However, few works consider both these two techniques together, which decreases the usefulness of the independently studied techniques in practice. In the presence of changes during program evolution, regression testing is usually conducted by selecting the test cases that cover the impact results of the changes. It seldom considers the false-positives in the information covered. Hence, the effectiveness of such regression testing techniques is decreased. In this paper, we propose an approach, ComboRT, which combines test case selection and prioritization together to directly generate a ranked list of test cases. It is based on the impact results predicted by the change impact analysis (CIA) technique, FCA–CIA, which generates a ranked list of impacted methods. Test cases which cover these impacted methods are included in the new test suite. As each method predicted by FCA–CIA is assigned with an impact factor value corresponding to the probability of this method to be impacted, test cases are then ordered according to the impact factor values of the impacted methods. Empirical studies on four Java based software systems demonstrate that ComboRT can be effectively used for regression testing in object-oriented Java-based software systems during their evolution.


2020 ◽  
Vol 3 (2) ◽  
Author(s):  
Ani - Rahmani

Software testing (testing) is a crucial stage in software development. The success of the testing process will ensure the quality of the software. In the regression testing process, one issue is that not all test cases (retest all) in the test suite need to be executed. Retest all will consume massive resources, as well as a long time. Regression testing techniques seek to find ways to reduce test execution time. One of the regression testing techniques is test case selection, also known as regression test selection (RTS). This paper describes a study on babelRTS, an RTS algorithm, to see its effectiveness. Effectiveness is measured by comparing the execution time of the execution retest all and babelRTS. Experiments were carried out on five software under tests (SUT) that had some faults. Test cases are prepared by designing for each SUT. The results showed a reduction in time so that the effectiveness reached a maximum of 32%, and average of 23% .


2014 ◽  
Vol 13 (7) ◽  
pp. 4633-4637
Author(s):  
Gurpreet Kaur ◽  
Mrs. Gaganpreet Kaur

Software testing is very important phase in any development Life Cycle. The test Case generation is critical task in any type of testing. The automation of test case generation is necessary to reduce cost and effort incurred in the testing of large software. Testing of the BPEL processes is new area of research and the automation of the test cases is necessary in order to find bugs in the processes and reduce the cost of the  testing business  processes .This paper focuses on the survey of the testing techniques used to test the BPEL processes.


2018 ◽  
Vol 5 (1) ◽  
pp. 112-118
Author(s):  
Agus Pamuji

Abstrak Uji coba perangkat lunak merupakan aktifitas yang sangat menentukan sebelum diterima oleh pengguna akhir. Pada siklus pengembangan perangkat lunak, aktiftas uji coba menghabiskan 50% biaya, usaha, dan waktu. Hal ini terutama pada teknik pengujian dengan menggunakan metode white-box yang memerlukan waktu yang lama. Dalam penelitian ini, diusulkan sebuah strategi untuk memperbaiki uji coba struktural menggunakan 4 tahap uji coba yaitu uji alur kontrol, uji alur data, uji coba berbasis slice, uji coba mutasi melalui penerapan parameter metrik uji. Adapun metrik uji antara lain perancangan jumlah kasus uji, jumlah kasus uji dieksekusi, jumlah kasus uji lolos, jumlah kasus uji gagal, waktu ekseskusi kasus uji, dan waktu yang digunakan selama proses pengembangan. Metode ini untuk mengurangi rawan kesalahan dan mempercepat proses uji coba. Hasil akhir menunjukan bahwa dengan strategi uji coba yang diterapkan dapat menurunkan tingkat dan rawan jumlah kesalahan walapun pada awalnya mengalami peningkatan pada tahap 1 dan 2. Kata Kunci: uji coba, metrik uji, strategi, struktural, white-box Abstract Software testing is a crucial activity that have the goal to determine before it are accepted by end-users. In the software development life cycle, testing activity has spent about 50% on cost, effort, and the time. This is especially on the testing techniques when the using white-box method that have takes a long time. In this study, a strategy was proposed to improve the structural testing through four phases, i.e, control flow testing, data flow testing, slice based testing, and the mutation through the implementation of testing metrics parameter. The testing metric include designing the number of test case, a number of test cases executed, a number of test cases passed, a number of test cases failed, a test case execution time, and the time spent during the development process. This method are reduced the error prone and to increas during testing process. As a result show that with the experimental strategy was applied could decrease the level and prone to the number of errors even though initially increased on the 1 and 2 phases. Keywords: testing, testing metrics, strategy, structural, white-box


2018 ◽  
Vol 5 (1) ◽  
pp. 112-118
Author(s):  
Agus Pamuji

Abstrak Uji coba perangkat lunak merupakan aktifitas yang sangat menentukan sebelum diterima oleh pengguna akhir. Pada siklus pengembangan perangkat lunak, aktiftas uji coba menghabiskan 50% biaya, usaha, dan waktu. Hal ini terutama pada teknik pengujian dengan menggunakan metode white-box yang memerlukan waktu yang lama. Dalam penelitian ini, diusulkan sebuah strategi untuk memperbaiki uji coba struktural menggunakan 4 tahap uji coba yaitu uji alur kontrol, uji alur data, uji coba berbasis slice, uji coba mutasi melalui penerapan parameter metrik uji. Adapun metrik uji antara lain perancangan jumlah kasus uji, jumlah kasus uji dieksekusi, jumlah kasus uji lolos, jumlah kasus uji gagal, waktu ekseskusi kasus uji, dan waktu yang digunakan selama proses pengembangan. Metode ini untuk mengurangi rawan kesalahan dan mempercepat proses uji coba. Hasil akhir menunjukan bahwa dengan strategi uji coba yang diterapkan dapat menurunkan tingkat dan rawan jumlah kesalahan walapun pada awalnya mengalami peningkatan pada tahap 1 dan 2. Kata Kunci: uji coba, metrik uji, strategi, struktural, white-box Abstract Software testing is a crucial activity that have the goal to determine before it are accepted by end-users. In the software development life cycle, testing activity has spent about 50% on cost, effort, and the time. This is especially on the testing techniques when the using white-box method that have takes a long time. In this study, a strategy was proposed to improve the structural testing through four phases, i.e, control flow testing, data flow testing, slice based testing, and the mutation through the implementation of testing metrics parameter. The testing metric include designing the number of test case, a number of test cases executed, a number of test cases passed, a number of test cases failed, a test case execution time, and the time spent during the development process. This method are reduced the error prone and to increas during testing process. As a result show that with the experimental strategy was applied could decrease the level and prone to the number of errors even though initially increased on the 1 and 2 phases. Keywords: testing, testing metrics, strategy, structural, white-box


2021 ◽  
Vol 26 (4) ◽  
Author(s):  
Man Zhang ◽  
Bogdan Marculescu ◽  
Andrea Arcuri

AbstractNowadays, RESTful web services are widely used for building enterprise applications. REST is not a protocol, but rather it defines a set of guidelines on how to design APIs to access and manipulate resources using HTTP over a network. In this paper, we propose an enhanced search-based method for automated system test generation for RESTful web services, by exploiting domain knowledge on the handling of HTTP resources. The proposed techniques use domain knowledge specific to RESTful web services and a set of effective templates to structure test actions (i.e., ordered sequences of HTTP calls) within an individual in the evolutionary search. The action templates are developed based on the semantics of HTTP methods and are used to manipulate the web services’ resources. In addition, we propose five novel sampling strategies with four sampling methods (i.e., resource-based sampling) for the test cases that can use one or more of these templates. The strategies are further supported with a set of new, specialized mutation operators (i.e., resource-based mutation) in the evolutionary search that take into account the use of these resources in the generated test cases. Moreover, we propose a novel dependency handling to detect possible dependencies among the resources in the tested applications. The resource-based sampling and mutations are then enhanced by exploiting the information of these detected dependencies. To evaluate our approach, we implemented it as an extension to the EvoMaster tool, and conducted an empirical study with two selected baselines on 7 open-source and 12 synthetic RESTful web services. Results show that our novel resource-based approach with dependency handling obtains a significant improvement in performance over the baselines, e.g., up to + 130.7% relative improvement (growing from + 27.9% to + 64.3%) on line coverage.


Mathematics ◽  
2021 ◽  
Vol 9 (15) ◽  
pp. 1779
Author(s):  
Wanida Khamprapai ◽  
Cheng-Fa Tsai ◽  
Paohsi Wang ◽  
Chi-En Tsai

Test case generation is an important process in software testing. However, manual generation of test cases is a time-consuming process. Automation can considerably reduce the time required to create adequate test cases for software testing. Genetic algorithms (GAs) are considered to be effective in this regard. The multiple-searching genetic algorithm (MSGA) uses a modified version of the GA to solve the multicast routing problem in network systems. MSGA can be improved to make it suitable for generating test cases. In this paper, a new algorithm called the enhanced multiple-searching genetic algorithm (EMSGA), which involves a few additional processes for selecting the best chromosomes in the GA process, is proposed. The performance of EMSGA was evaluated through comparison with seven different search-based techniques, including random search. All algorithms were implemented in EvoSuite, which is a tool for automatic generation of test cases. The experimental results showed that EMSGA increased the efficiency of testing when compared with conventional algorithms and could detect more faults. Because of its superior performance compared with that of existing algorithms, EMSGA can enable seamless automation of software testing, thereby facilitating the development of different software packages.


Sign in / Sign up

Export Citation Format

Share Document