@inproceedings {26799,
	title = {RobTest: A CP Approach to Generate Maximal Test Trajectories for Industrial Robots},
	journal = {International Conference on Principles and Practice of Constraint Programming},
	volume = {12333},
	year = {2020},
	month = {08/2020},
	pages = {1-17},
	publisher = {Springer},
	edition = {LNCS},
	author = {Collet, Mathieu and Gotlieb, Arnaud and Lazaar, Nadjib and Carlsson, Mats and Marijan, Dusica and Mossige, Morten},
	editor = {Simonis, Helmut}
}
@misc {26270,
	title = {Time-aware Test Execution Scheduling for Cyber-Physical Systems},
	howpublished = {Gesellschaft f{\"u}r Informatik Software Engineering Conference 2019 (SE19), Germany},
	year = {2019},
	author = {Mossige, Morten and Gotlieb, Arnaud and Spieker, Helge and Meling, Hein and Carlsson, Mats}
}
@inbook {25729,
	title = {Software Product Line Test Suite Reduction with Constraint Optimization},
	booktitle = {Software Technologies},
	volume = {743},
	year = {2017},
	pages = {68-87},
	publisher = {Springer International Publishing},
	organization = {Springer International Publishing},
	author = {Carlsson, Mats and Gotlieb, Arnaud and Marijan, Dusica},
	editor = {Cabello, Enrique and Cardoso, Jorge and Ludwig, Andr{\'e} and Leszek A. {Maciaszek} and van Sinderen, Marten}
}
@inproceedings {25440,
	title = {Time-aware Test Case Execution Scheduling for Cyber-Physical Systems},
	journal = {Proceedings of Principles of Constraint Programming (CP{\textquoteright}17)},
	year = {2017},
	publisher = { Springer},
	abstract = {Testing cyber-physical systems involves the execution of test cases on target-machines equipped with the latest release of a software control system. When testing industrial robots, it is common that the target machines need to share some common resources, e.g., costly hardware devices, and so there is a need to schedule test case execution on the target machines, accounting for these shared resources. With a large number of such tests executed on a regular basis, this scheduling becomes difficult to manage manually. In fact, with manual test execution planning and scheduling, some robots may remain unoccupied for long periods of time and some test cases may not be executed. This paper introduces TC-Sched, a time-aware method for automated test case execution scheduling. TC-Sched uses Constraint Programming to schedule tests to run on multiple machines constrained by the tests{\textquoteright} access to shared resources, such as measurement or networking devices. The CP model is written in SICStus Prolog and uses the Cumulatives global constraint. Given a set of test cases, a set of machines, and a set of shared resources, TC-Sched produces an execution schedule where each test is executed once with minimal time between when a source code change is committed and the test results are reported to the developer. Experiments reveal that TC-Sched can schedule 500 test cases over 100 machines in less than 4 minutes for 99.5\% of the instances. In addition, TC-Sched largely outperforms simpler methods based on a greedy algorithm and is suitable for deployment on industrial robot testing.},
	doi = {10.1007/978-3-319-66158-2_25},
	author = {Mossige, Morten and Gotlieb, Arnaud and Spieker, Helge and Meling, Hein and Carlsson, Mats}
}
@inproceedings {23736,
	title = {Automated Regression Testing Using Constraint Programming},
	journal = {Twenty-Eighth Conference on Innovative Applications of Artificial Intelligence (IAAI-16), Phoenix, AZ, USA, Feb. 2016},
	year = {2016},
	month = {02/2016},
	abstract = {\&nbsp; In software validation, regression testing aims to check the absence of regression faults in new releases of a software system. Typically, test cases used in regression testing are executed during a limited amount of time and are selected to check a given set of user requirements. When testing large systems the number of regression tests grows quickly over the years, and yet the available time slot stays limited. In order to overcome this problem, an approach known as test suite reduction (TSR), has been developed in software engineering to select a smallest subset of test cases, so that each requirement remains covered at least once. However solving the TSR problem is difficult as the underlying optimization problem is NP-hard, but it is also crucial for vendors interested in reducing the time to market of new software releases.\&nbsp; In this paper, we address regression testing and TSR with Constraint Programming (CP).\&nbsp; More specifically, we propose new CP models to solve TSR that exploit global constraints, namely NValue and GCC. We reuse a set of preprocessing rules to reduce a priori each instance, and we introduce a structure-aware search heuristic. We evaluated our CP models and proposed improvements\&nbsp; against existing approaches, including a simple greedy approach and MINTS, the state-of-the-art tool of the software engineering community. Our experiments show that CP outperforms both the greedy approach and MINTS when it is interfaced with MiniSAT, in terms of percentage of reduction and execution time. When MINTS is interfaced with CPLEX, we show that our CP model performs better only on percentage of reduction. Finally, by working closely with validation engineers from Cisco Systems, Norway, we integrated our CP model into an industrial regression testing process.},
	author = {Gotlieb, Arnaud and Carlsson, Mats and Liaaen, Marius and Marijan, Dusica and Petillon, Alexandre}
}
@inproceedings {24525,
	title = {A New Approach to Feature-based Test Suite Reduction in Software Product Line Testing},
	journal = {ICSOFT-EA 2016, 11th Int. Conf. on Software Engineering and Applications, Lisbon, July 2016, Awarded Best Paper},
	year = {2016},
	month = {07/2016},
	publisher = {INSTICC Press},
	author = {Gotlieb, Arnaud and Carlsson, Mats and Marijan, Dusica and Petillon, Alexandre}
}
@inproceedings {24017,
	title = {Optimal Test Execution Scheduling on Multiple Machines with Resource Constraints},
	journal = {Submitted},
	year = {2016},
	abstract = {When testing large-scale systems with hundreds of test cases in continuous integration, it is crucial to minimize the round-trip time, that is, the time from when a source code change is committed until the test results are reported back to the developer. To this end, scheduling as many test case executions as possible in the minimum amount of time is essential to increasing the effectiveness of continuous integration. This paper introduces TSNIC, a time-aware method for test execution scheduling on multiple machines with constraints on accessible resources, such as measurement devices or network equipment. The method uses as input a test suite, a set of machines, and a set of shared resources and produces an execution schedule. The schedule guarantees that each test will be executed once and minimizes the round-trip time. TSNIC has undergone extensive experimental evaluation using generated test suites derived from existing industrial test suites augmented with randomly-selected values. Our results provide evidence that TSNIC conducts effective test execution scheduling and is suitable for deployment in continuous integration. In particular, we show that automatic optimal scheduling of 500 test cases over 100 machines is reacheable in less than 4 minutes for 96.6\% of the instances.},
	author = {Mossige, Morten and Gotlieb, Arnaud and Meling, Hein and Carlsson, Mats}
}
