<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A Germinal Centre Artificial Immune System for Software Test Suite Reduction</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Lukas</forename><surname>Rosenbauer</surname></persName>
							<email>lukas.rosenbauer@bshg.com</email>
							<affiliation key="aff0">
								<orgName type="department">BSH Home Appliances</orgName>
								<address>
									<addrLine>Im Gewerbepark B35</addrLine>
									<settlement>Regensburg</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Anthony</forename><surname>Stein</surname></persName>
							<affiliation key="aff1">
								<orgName type="laboratory">Artificial Intelligence in Agricultural Engineering</orgName>
								<orgName type="institution">University of Hohenheim</orgName>
								<address>
									<addrLine>Garbenstr. 9</addrLine>
									<settlement>Stuttgart</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jörg</forename><surname>Hähner</surname></persName>
							<affiliation key="aff2">
								<orgName type="laboratory">Organic Computing Group</orgName>
								<orgName type="institution">University of Augsburg</orgName>
								<address>
									<addrLine>Eichleitnerstr. 30</addrLine>
									<settlement>Augsburg</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Germinal Centre Artificial Immune System for Software Test Suite Reduction</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">21EF5D31EF80EEF0B80174A5A61A1362</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T07:12+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Testing is a crucial part in the development of a new product. If too little testing is done, customers might discover previously undetected failures. A common approach to avoid this is to define a test suite that contains at least one test for every requirement. As the execution of manual tests and the implementation of automated ones is timeintensive, it is a profitable goal to reduce the amount of tests during the specification of the test suite whilst still covering all requirements. In this work we provide an artificial immune system to detect redundant tests. Our new approach achieves optimal results for our industrial data sets and further we are able to reduce its runtime and memory usage drastically compared to the existing germinal centre artificial immune system (GCAIS).</p><p>• The size of GCAIS' population may explode. We introduce simple population boundaries and a deletion mech-</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Introduction</head><p>Testing is a timeintensive but nevertheless important part of product development. The verification of new products becomes even more essential as the complexity of software is increasing rapidly. Several studies confirm that the size of the specified test suite has a major impact on the total development cost <ref type="bibr" target="#b8">(Fraser and Wotawa, 2007;</ref><ref type="bibr" target="#b25">Yu et al., 2008;</ref><ref type="bibr" target="#b12">Hsu and Orso, 2009)</ref>. Thus it is a worthy goal to reduce the size of a test suite whilst maintaining its quality, such as its coverage or its capability to find errors.</p><p>Several approaches are already available to reduce the size of the test suite for certain stages of testing. For example <ref type="bibr" target="#b22">Spieker et al. (2018)</ref> determine a test suite based on the history of individual tests (e. g. how often did a test fail or how long does its execution take) using a reinforcement learning agent. The agent selects tests that are more likely to fail and its suite has bounded execution time. <ref type="bibr" target="#b10">Gotlieb and Marijan (2014)</ref> try to reduce the size of the test suite before any test is executed or implemented. In contrast to <ref type="bibr" target="#b22">Spieker et al. (2018)</ref> they maintain the coverage of the original test suite because a testing history is not available yet. Each test covers a set of requirements and their goal is to determine the minimal set of tests that covers all requirements. In mathematics and computer science this problem is known as the minimum set cover problem (MSCP) <ref type="bibr" target="#b23">(Williamson and Shmoys, 2011)</ref>. The MSCP is a NP-hard optimization problem and thus an optimal solution is hard to find within a reasonable amount of time.</p><p>During this work we also intend to reduce the size of the test suite during its specification, similar to <ref type="bibr" target="#b10">Gotlieb and Marijan (2014)</ref>. However, <ref type="bibr" target="#b10">Gotlieb and Marijan (2014)</ref> used a branch and bound approach that has worst case exponential runtime. On the other hand evolutionary algorithms tend to be computational lightweights that may not offer optimal solutions but approximations with reasonable quality and especially the MSCP has undergone heavy research from the evolutionary computation community <ref type="bibr" target="#b17">(Li et al., 2009;</ref><ref type="bibr" target="#b26">Yu et al., 2010;</ref><ref type="bibr" target="#b24">Yu et al., 2014;</ref><ref type="bibr" target="#b1">Balaji and Revathi, 2016</ref>).</p><p>The immune system has been used an inspiration for both computational intelligence and rule based machine learning <ref type="bibr" target="#b0">(Azuaje, 2003)</ref>. The latter is closely related to learning classifier systems (LCS) which are frequently used in organic computing systems. Organic computing (OC) seeks to design systems that have self-x properties (Müller-Schloer and Tomforde, 2017) which can be found in LCS and in the immune system. The former has lead to a rather new evolutionary metaheuristic called germinal centre artificial immune system (GCAIS) <ref type="bibr" target="#b14">(Joshi et al., 2014)</ref>. The approach maintains a population that takes an analogy to self-reacting cells that create antibodies to eradicate pathogens. GCAIS has already been successfully applied to the MSCP on Beasley's OR library <ref type="bibr" target="#b13">Joshi (2017)</ref> and often had optimal or close to optimal results. However, it turns out that GCAIS has a few downsides that we want to tackle in this paper.</p><p>The main contributions of this paper are:</p><p>• GCAIS maintains a population of non-dominated elements which is updated every iteration. The corresponding computation is also known as the calculation of the skyline <ref type="bibr" target="#b2">(Börzsönyi et al., 2001)</ref>. Several methods exist to calculate the skyline but they usually have higher than linear cost. We explicitly exploit the structure of GCAIS and the MSCP and provide an approach that has linear cost in terms of the population size and the problem size.</p><p>• We show on two industrial data sets that GCAIS can drastical reduce the size of the specified test suite. Further we can observe that the structure of test specifications differs from the more theoretical MSCP instances of Beasley's OR library.</p><p>In Section 2 we introduce the MSCP in a formal way, discuss its approximability, and briefly introduce related work. Afterwards we present GCAIS and show how to reduce its runtime and how we keep the population in bounds (Section 3). In Section 4 we perform experiments on two industrial data sets as well as on Beasley's OR library and examine memory usage, runtime and approximation quality. Further future work is discussed in Section 5. We close the paper with a conclusion (Section 6).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Minimum Set Cover Problem</head><p>Here we first intend to describe the MSCP in a more formal way. Let n be the number of sets (the test cases) and m be the number of elements (the requirements) to cover. We denote the sets as T 1 , T 2 ,...,T n . Thus the problem to be solved can be described as follows:</p><formula xml:id="formula_0">min |TS | s.t. i∈TS T i = m i=1 T i TS ⊆ {1, 2, ..., m} T i ⊆ {1, 2, ..., n}<label>(1)</label></formula><p>Thus we want to determine the minmal number of tests that still cover all requirements. A set of tests is called test suite and thus the problem is coined test suite reduction if the undelying MSCP instance corresponds to tests <ref type="bibr" target="#b10">(Gotlieb and Marijan, 2014)</ref>. If redundant tests can already be identified during specification then their implementation as automated ones or their manual execution can be avoided.</p><p>From a mathematical perspective the MSCP is one of the more difficult NP-hard problems to solve as its worst case approximation ratio grows logarithmically in terms of the problem size for algorithms with polynomial runtime <ref type="bibr" target="#b4">(Dinur and Steurer, 2014)</ref>. However, as this result concerns the worst case there is still research ongoing to find a method that performs well on average. <ref type="bibr" target="#b18">Minotra (2008)</ref> gives an overview about genetic algorithms and simulated annealing methods. <ref type="bibr" target="#b1">Balaji and Revathi (2016)</ref>  There are several pure mathematical approaches for solving the MSCP such as greedy algorithms, integer linear programs and rounding techniques which are guaranteed to converge <ref type="bibr" target="#b23">(Williamson and Shmoys, 2011)</ref>. <ref type="bibr" target="#b10">Gotlieb and Marijan (2014)</ref> designed an algorithm called FLOWER that combines a branch and bound approach with flow networks. FLOWER always delivers an optimal solution, but on the other hand may have exponential runtime (depending on the problem instance).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Germinal Center Artificial Immune System</head><p>In this section we introduce the base version of GCAIS. Further, we identify its critical parts and show how the corresponding runtime and memory issues are avoided.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Base algorithm</head><p>GCAIS is a population-based, randomised search heuristic that is based on the immune system of vertebrates. The heuristic has been influenced by recent insights about germinal centre reaction <ref type="bibr" target="#b14">(Joshi et al., 2014)</ref>. Germinal centres (GC) are regions where the invading antigen (Ag) is presented to immune cells. If an invasion occurs, the cells produce antibodies (Ab) that try to bind the pathogen and eradicate it. The GCs start to grow and try to find the best Abs. GCs communicate with each other in order to exchange their Abs. The latter can be improved by proliferation, mutation and selection of immune cells.</p><p>We encode solutions as binary vectors of length m. If the entry i is one then T i belongs to the solution and a zero indicates that T i is not a part of the cover. Furthermore let |x| be the L1-norm of x (corresponds to the number of sets used). The metaheuristic maintains a population of non-dominated solutions and also allows unfeasible solutions. A solution x is said to dominate another solution y if one of the following two condition holds:</p><formula xml:id="formula_1">i) |x| ≤ |y| ∧ | i∈x T i | &gt; | i∈y T i | ii) |x| &lt; |y| ∧ | i∈x T i | ≥ | i∈y T i |</formula><p>We denote this relation as x &gt; p y. This relation is also known as pareto dominance <ref type="bibr" target="#b2">(Börzsönyi et al., 2001)</ref>.</p><p>The initial population P consists out of the zero vector 0 (no set at all is used). In every iteration the entire population is mutated (flipping individual bits with a probability of 1 m ) and merged with the original one. During the merge step every solution is eliminated that is either dominated by a mutated solution or a solution that is already in the population. This is repeated until a stopping criteria is met. We summarized the method in Algorithm 1.</p><p>The for loop (line 4-7) costs O(|P|m) and can easily be parallelized using for example OpenMP or other standard parallelization libraries.</p><p>Algorithm 1: Germinal centre artificial immune system (GCAIS).</p><p>input : T 1 , T 2 , ..., T n , m output: a solution 1 P = {0} 2 while stopping criterion is not met do We decided to go for such a population based approach as usually throughout a project the requirements (and thus the tests) may change <ref type="bibr" target="#b20">(Nurmuliani et al., 2004)</ref>. With previous approaches this would require a complete recalculation. However, GCAIS allows infeasible solutions in its population and would enable us to translate the previous population to the updated problem. We hope that this self-improving approach might reduce the runtime in the future.</p><p>GCAIS is similar to the global simple evolutionary multiobjective optimiser (GSEMO) <ref type="bibr" target="#b9">(Giel and Wegener, 2003)</ref> which is another population-based approach. It differs from GCAIS as it has several populations and only mutates one solution per iteration and population instead of all. Further it sends a new solution with a probability p to all other populations. GSEMO's populations also consist out of nondominated solutions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Skyline</head><p>The for loop of Algorithm 1 is not the only costly step of an iteration. The recalculation of P is also computationally intense. In data engineering the calculation of the set of nondominated solutions is also known as the computation of the skyline <ref type="bibr" target="#b2">(Börzsönyi et al., 2001)</ref>. It is coined skyline as in the two-dimensional case its solutions are "above" the others (see Figure <ref type="figure" target="#fig_2">1</ref>). A side effect of this visualization is that it can be used to track the search process of GCAIS or GSEMO during runtime. The advantage is that a series of these plots displays the development of the population (in terms of its diversity) and the convergence behaviour. Note, that in other research areas the skyline is named pareto-frontier.</p><p>Several algorithms exist in order to calculate the skyline (complexities adapted to this use case):</p><p>• Block nested loop (BNL) is the straightforward approach that compares each solution x with all other solutions in order to determine the skyline. It is trivial to see that this costs O(|P| 2 ) <ref type="bibr" target="#b2">(Börzsönyi et al., 2001)</ref>. • Sort filter skyline (SFS) sorts the considered solutions according to their entropy and exploits that subsequent solutions cannot dominate preceeding ones. The method has a cost of O(|P|log(|P|)) <ref type="bibr" target="#b3">(Chomicki et al., 2003)</ref>.</p><p>• Divide and conquer (D&amp;Q) approaches split the solutions into chunks and calculate skyline recursively. This also costs O(|P|log(|P|)) <ref type="bibr" target="#b2">(Börzsönyi et al., 2001)</ref>.</p><p>There are further approaches especially designed to handle high-dimensional data or memory issues <ref type="bibr" target="#b7">(Endres and Weichmann, 2017;</ref><ref type="bibr">Endres and Kießling, 2015;</ref><ref type="bibr">Endres et al., 2015)</ref>; however, as this is out of the scope of this paper, we will not further discuss them.</p><p>The optimization problem that we try to solve is twodimensional (covered requirements, used tests), both dimensions are discrete, and P is always a non-dominated set. We exploit these facts to provide a skyline calculation that costs O(n + |P|).</p><p>We maintain a look-up table which holds an entry for every i ∈ {0, 1, 2, .., n}. The i-th entry holds all solutions of the population that use i tests. It further holds how many requirements are covered by the solutions (they all cover the same number of requirements, otherwise a solution would be dominated). Whenever we consider to insert a mutated solution x for insertion we check the entry |x|. If the entry covers more elements then x is not inserted, if it covers the same amount of elements then we append the solution to the entry. If it covers more elements then we overwrite the entry with x and update the covered elements of the entry. Thus an insertion costs O(1) and the insertion of the mutated population costs O(|P|).</p><p>After the insertion of a solution the table may contain dominated solutions as only the entry of its cost is checked. An inserted solution could also dominate entries of higher cost. Thus we also need to introduce a repair method that is called at the end of every iteration of GCAIS. We traverse the table exactly once. We start by saving the index 1 into a variable i and check if the current entry to look at covers more entries. If so, we update i by its index and if not, we delete the entry and proceed. Thus the repair method costs O(n) and the calculation of the skyline O(n + |P|).</p><p>We describe our skyline algorithm in Algorithm 2. The variable table denotes the look-up table and table <ref type="bibr">[i]</ref>.cov is the number of requirements covered by the solutions using i tests. The number of requirements covered and the number of tests used by a solution x can easily be retrieved during the creation of the mutated population and thus does not affect the cost of that method. The table should be initialized before the main loop is entered and should be kept throughout the search.</p><p>Algorithm 2: Skyline procedure for GCAIS using a look-up table.</p><p>input : </p><formula xml:id="formula_2">mutated</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Avoiding huge populations</head><p>A difference between GCAIS and for example genetic algorithms is that its population is unbounded. GCAIS keeps the non-dominated solutions it encounters throughout its search. The idea is that a mutated solution based on a nondominated solution has a higher likelihood to be an optimal or close to optimal solution. However, this has the downside that the population may grow rapidly. For example if all tests cover the same amount of requirements and no requirement is covered by more than one test, then the population even grows exponentially.</p><p>In order to avoid an explosion of the population size, we introduce simple population boundaries for each entry of the look-up table. Whenever the capacity of an entry is exceeded then we delete a random solution from the entry to make space for a new one. Unlike the skyline computation, this may change the convergence behaviour of the algorithm which we examine in our experimental evaluation.</p><p>There is also another approach to keep GCAIS' population from growing too fast. <ref type="bibr" target="#b15">Joshi et al. (2015)</ref> used εdominance instead of pareto-dominance. For the former, the space is separated in squares of side length ε (for spaces of higher dimensions it is separated into hypercubes). For two solutions from different squares the ε-dominace relation is the same as the pareto-dominance relation. If two solutions x and y are in the same square then x ε-dominates y if and only if:</p><formula xml:id="formula_3">|y| − |x| + | i∈x T i | − | i∈y T i | &gt; 0 (2)</formula><p>If this approach is used then GCAIS keeps a population of non-ε-dominated solutions instead of non-pareto-dominated solutions. ε-dominance is more strict than pareto-dominance and thus it makes it harder for a solution to be inserted. However, this no guarantee that the population does not grow unrestricted.</p><p>Both approaches can easily be integrated into Algorithm 2. The boundary check and deletion of a random solution can be incorporated into the insertion part. In order to use ε-dominance we have to extend our repair method by incorporating a check if the table entries are in the same square and deleting ε-dominated entries. This updated version has the same worst case complexity as Algorithm 2. We describe the new repair method in Algorithm 3.</p><p>Algorithm 3: Updated repair method if epsilon dominance is used.</p><p>input : look-up table, ε</p><formula xml:id="formula_4">1 i = 1 2 for k in {2, ...n} do 3 if k−i ε == 0 then 4 // both entries are in the same square 5 d = k-i+table[i].cov -table[k].cov 6 if d &gt; 0 then 7 // i dominates k 8 delete table[k] 9 else if d &lt; 0 then 10 // k dominates i 11 delete table[k] 12 i = k 13 else if table[k].cov ≤ table[i].cov then 14 delete table[k]</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Evaluation</head><p>In our experiments we want to evaluate how much execution time we save due to our look-up table. Further, we investigate if the introduction of ε-dominance and population boundaries limits the capability of GCAIS to find close to optimal or optimal solutions. To our knowledge the former has yet only been applied to the multiobjective Knapsack problem <ref type="bibr" target="#b15">(Joshi et al., 2015)</ref>.</p><p>In our experiments we first focus on the main goal of this paper: the reduction of the amount of tests. For this we acquired two data sets from BSH Home Appliances which is a german company that develops and produces various home appliances such as ovens or dishwashers. Our data sets are for two different fridge projects. In our experiments we use cleaned versions of the data sets. We removed tests that exclusively cover a single requirement (these tests must be in a test suite that covers all requirements). We call these data sets Fridge-1 and Fridge-2.</p><p>As we deem two datasets as too little, we additionally perform evaluations on the scpe instances of Beasley's OR library which is frequently used for benchmarking MSCP algorithms <ref type="bibr" target="#b1">(Balaji and Revathi, 2016;</ref><ref type="bibr" target="#b14">Joshi et al., 2014)</ref>.</p><p>During our evaluation we consider the various variants of GCAIS next to the GSEMO algorithm. We follow the variant of <ref type="bibr" target="#b14">Joshi et al. (2014)</ref> which was adapted to the MSCP. We examined several parameterizations for GSEMO and concluded that a population size of 30 and a send probability of 30  nm are suitable choices. We also performed a fine tuning of the hyperparameters of the artificial immune systems which we will not discuss here (due to space restrictions). We achieved reasonable results with a population boundary of 200. For ε we consider 0, 5, 10 and 15. The base variant of GCAIS (Algorithm 1) is parameterfree.</p><p>We repeat every experiment 100 times. Our implementation 1 is in Python and we used a Dell Precision 3520 for our experiments (Intel i7-6820HQ processor with 4 Cores and an individual clock rate of 2.7 Ghz, 32 GB RAM).</p><p>Every algorithm is given a time budget of ten minutes. Further, if there is no improvement in terms of the solutions quality for 100 iterations then we interpret this as convergence.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Quality Criteria</head><p>During our experiments we intend to measure the approximation quality, memory usage, and runtime. where alg denotes any considered algorithm (and its corresponding hyperparameters). GCAIS BASE is the standard variant of GCAIS described in Algorithm 1 and for the calculation of its non-dominated population we use the BNL method. P(alg) is the maximum size of an algorithm's population during a run and r(alg) is its total runtime (until convergence is reached). OPT is the optimal value and o(alg) is the algorithm's output. The optimal values for the considered data sets of Beasley's OR library are known and for the industrial data sets we determined them via brute force.</p><p>The mem save key performance indicator (Equation <ref type="formula">3</ref>) measures the relative size of an algorithm's population with regards to GCAIS BASE. We use the standard variant as all other GCAIS variants intend to either bound the population or to increase the likelihood of deleting solutions (e. g. εdominance). Thus we have a common baseline for all methods. Further, the population size is the main factor for memory usage of the considered algorithms.</p><p>Our speed up KPI (Equation <ref type="formula">4</ref>) is an analogy to parallel computing. There the speed up is the quotient of a parallel program's runtime and the runtime of the sequential one <ref type="bibr" target="#b16">(Kumar, 2002)</ref>. Thus it measures how fast the parallel method is compared to the sequential one. Instead we evaluate how much faster an algorithm is compared to the standard GCAIS version.</p><p>Our third KPI is the approximation rate (Equation <ref type="formula">5</ref>) which indicates how close the produced solution is to being optimal and a value of one corresponds to an optimal solution.</p><p>All three KPIs should be seen in context to each other. For example a brute force search always leads to an optimal solution but will have an exponential runtime and on the other hand an algorithm that just takes all tests has the worst approximation ratio but the best speed up and memory usage. Hence the goal is to find an approach that leads to reasonable values in all three categories.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Industrial Datasets</head><p>The results of our experiments are displayed in Table <ref type="table" target="#tab_2">1</ref>. Our first dataset (Fridge-1) is rather easy to solve for the considered methods compared to our second one. The epsilon dominance variants, the bounded variant and the base variant of GCAIS always achieve optimal results. Also, GSEMO has close to optimal results. However the combination of a bounded population and epsilon dominance is rather detrimental as these versions produce worse solutions than the version without it. We can see certain differences in the memory usage and the speed up. The bounded version of GCAIS only uses about a tenth of the memory of its base variant and is about fourteen times faster. Yet GESMO is even faster but only achieves close to optimal results and requires more memory.  Our other dataset (Fridge-2) is tougher to solve for the considered metaheuristics as only the bounded GCAIS variant without epsilon dominance always achieves optimal results. Once more the results show that this variant can drastically cut down memory usage and runtime. GSEMO has an even shorter runtime and memory usage but on the other hand only achieves approximation rates of about three. These differences between GSEMO and our bounded version of GCAIS are due to GSEMO's convergence to an inferior solution. GCAIS does not get stuck (as it always finds optimal solutions) and thus the population continues to grow as does the runtime.</p><p>On both datasets we could observe that in our case the epsilon dominance has a detrimental effect on the population size and therefore on the runtime. Combined with a bounded population these effects disappear but the method is unable to find optimal solutions. Hence we could not observe the same positive effects of the usage of epsilon dominance as <ref type="bibr" target="#b15">Joshi et al. (2015)</ref> did for the Knapsack problem. The pure bounded version always achieved optimal results and achieved high values in our other KPIs as well.</p><p>Most of the observed differences can be explained by taking a look at the population growth and size which we visualized in Figures <ref type="figure" target="#fig_3">2 and 3</ref>. The base variant and pure epsilon dominance variants of GCAIS show an exponential growth for Fridge-1 and on the other dataset we can observe a similar observation for epsilon equal to 5. For the other two variants the runtime ran out and thus we do not fully see an exponential growth. GSEMO's population size grows linearly for Fridge-1 and more or less logarithmically for Fridge-2. Our bounded GCAIS version has, as expected, a constant population size (after several iterations). The jumps in the graphs are due to newly found solutions that dominate other solutions in the population which get deleted. These different growths are one of the causes for the differences in speed up as all of the considered algorithms have a runtime which depends on this magnitude.</p><p>The growths in terms of population size can be explained by taking a look at the structure of our datasets and the problem itself. Our test specifications consist out of test cases that have similar sizes and only slightly overlap in terms of the requirements which they cover. Also, the two dimensions (covered requirements and used tests) are integers and there are only limited valid values. Thus there can be many solutions that cover the same amount of requirements and use the same tests and it is hard to find solutions which dominate large portions of the population. If the tests would highly differ in their size then it would be easier to find dominating solutions which would lead to smaller populations.</p><p>Next to our visual evaluation and the discussion of the raw values of Table <ref type="table" target="#tab_2">1</ref>, we perform additional statistical testing to confirm our observations. We test each KPI and each dataset individually. Our null hypothesis is that the algorithms do not differ on one dataset regarding one KPI. This can be verified using a Friedman test. On all different null hypotheses we observed p-values below 10 −10 which we regard as significant. Thus we conclude that the algorithms differ in terms of the KPIs.</p><p>Overall we are able to reduce the size of original test suites by over 30 percent.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Beasley's OR Library</head><p>Due to the results on the industrial datasets and the spatial restrictions we focus solely on the base variant of GCAIS, the bounded variant without epsilon dominance, and GSEMO during this experiment. We evaluate the scpe1 to scpe5 instances of Beasley's OR library.</p><p>We displayed the experimental results in Table <ref type="table" target="#tab_3">2</ref>. Once more the population boundaries for GCAIS lead to a cut down in terms of memory and runtime. Further, they reveal that our adapted version of GCAIS did not lose its capability to find close to optimal or optimal solutions on these more theoretical instances. In all cases our version was even superior to the base variant. However, in three out of five cases GSEMO was once more faster than our bounded version as it once more converged towards a suboptimal solution.</p><p>We verified our observations about the bounded GCAIS' superiority in terms of memory usage and approximation quality using one-sided Wilcoxon signed-rank tests. The pvalues were below 0.05 which we regard as significant.</p><p>Further, on these datasets the population of the base variant of GCAIS does not grow as much as during our evaluation of the industrial datasets. This explains why the memory savings are lower. The smaller populations thus lead to a smaller runtime which unfolds in smaller speed ups for the other algorithms. The reason for the smaller popula-tions is that GCAIS detects dominating solutions more easily, which keep the population in bounds. Hence we think that the problem structure of test specifications differs from these more theoretical MSCP instances.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Future Work</head><p>From an engineering perspective we intend to roll out our version of GCAIS in the company. We further want to gather more datasets from different test levels to verify our approach. We take special interest in the evolution of the requirements and tests over the lifetime of a project. Thus we could examine if the reuse of past populations is an advantage.</p><p>Our next scientific goal is to apply the GCAIS approach to the adaptive test case selection problem (ATCS) <ref type="bibr" target="#b22">(Spieker et al., 2018)</ref>. Its goal is to find a test suite that maximizes a test metric such as coverage whilst maintaining a test suite that has a bounded duration (for its execution). In the case of coverage, the problem becomes a variant of the weighted MSCP and GCAIS could be applied. In this case the problem landscape varies even more over time as newly written test cases are being added and their duration might change over time (as the software to be tested might be changed). A reuse of GCAIS' population might lead in this case to a self-improving system as it is continuously adapted and optimised towards the new testing environment.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Conclusion</head><p>We introduced a test suite reduction problem which is a variant of minimum set cover problem (MSCP). Its goal is to find a test suite of minimal size that still covers all requirements. A state of the art approach for the MSCP is the germinal centre artificial immune systems (GCAIS) which has been heavily benchmarked on rather theoretical instances.</p><p>GCAIS maintains a population of non-dominated solutions whose calculation cost is quadratic. We apply a simple datastructure and an incremental update approach that allows us to reduce the cost to a linear one.</p><p>Our experiments revealed that on our test specifications, the populations of the standard variant of GCAIS explode which leads to a high memory consumption and longer runtimes. Thus we adapted GCAIS by applying fixed population capacities. Our improved variant could not only cut down runtime and memory usage compared to the standard variant, it was also able to find optimal or close to optimal solutions on our industrial data as well as on the more theoretical instances of Beasley's OR library.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>designed a particle swarm optimization method, Yu et al. (2014) used chemical reaction optimization, and Ren et al. (2010) developed an algorithm based on ant colony optimization.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>∈ Q|∀y ∈ Q : ¬y &gt; p x} 10 end 11 return best solution of P</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Example of a skyline. The elements of the skyline are marked black. The gray balls represent solutions found throughout the search that have been dominated.</figDesc><graphic coords="3,331.65,54.00,214.19,160.90" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Population sizes ±σ for the Fridge-1 dataset.</figDesc><graphic coords="6,54.00,383.33,239.39,125.59" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 1 :</head><label>1</label><figDesc>KPIs for the experimental results (averaged values ±σ). A -character indicates that the parameter was not used. We marked the best values of algorithms that always found optimal solutions bold. The best values of individual KPIs are marked in italics. The horizontal line separates our approaches to the ones we are comparing to.</figDesc><table><row><cell>Fridge-1</cell><cell cols="2">population boundary (per entry) ε</cell><cell>mem save</cell><cell>speed up</cell><cell>approx rate</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell>5</cell><cell>22.77 ± 0.0</cell><cell>1.28 ± 0.19</cell><cell>1.29 ± 0.2</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell cols="2">10 22.77 ± 0.0</cell><cell>1.54 ± 0.19</cell><cell>1.34 ± 0.17</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell cols="2">15 28.47 ± 0.0</cell><cell>2.11 ± 0.16</cell><cell>1.38 ± 0.16</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell>-</cell><cell cols="2">10.35 ± 0.0 14.14 ± 0.02</cell><cell>1.0 ± 0.0</cell></row><row><cell>GCAIS</cell><cell>-</cell><cell>5</cell><cell>0.03 ± 0.03</cell><cell>0.77 ± 0.16</cell><cell>1.0 ± 0.0</cell></row><row><cell>GCAIS</cell><cell>-</cell><cell cols="2">10 0.03 ± 8.95</cell><cell>0.75 ± 0.16</cell><cell>1.0 ± 0.0</cell></row><row><cell>GCAIS</cell><cell>-</cell><cell cols="2">15 0.03 ± 16.27</cell><cell>0.73 ± 0.15</cell><cell>1.0 ± 0.0</cell></row><row><cell>GCAIS BASE</cell><cell>-</cell><cell>-</cell><cell>1.0</cell><cell>1.0</cell><cell>1.0 ± 0.0</cell></row><row><cell>GSEMO</cell><cell>-</cell><cell>-</cell><cell cols="3">1.66 ± 0.78 16.81 ± 0.13 1.03 ± 0.05</cell></row><row><cell>Fridge-2</cell><cell cols="2">population boundary (per entry) ε</cell><cell>mem save</cell><cell>speed up</cell><cell>approx rate</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell>5</cell><cell>8.49 ± 0.0</cell><cell>0.32 ± 0.38</cell><cell>3.62 ± 0.46</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell>10</cell><cell>10.9 ± 0.0</cell><cell>0.51 ± 0.48</cell><cell>3.82 ± 0.47</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell cols="2">15 12.49 ± 0.0</cell><cell>0.84 ± 0.33</cell><cell>3.96 ± 0.3</cell></row><row><cell>GCAIS</cell><cell>200</cell><cell>-</cell><cell cols="2">5.11 ± 0.01 3.58 ± 0.08</cell><cell>1.0 ± 0.0</cell></row><row><cell>GCAIS</cell><cell>-</cell><cell>5</cell><cell>0.14 ± 3.4</cell><cell>0.88 ± 0.14</cell><cell>2.7 ± 0.13</cell></row><row><cell>GCAIS</cell><cell>-</cell><cell cols="2">10 0.18 ± 3.14</cell><cell>0.88 ± 0.14</cell><cell>2.66 ± 0.28</cell></row><row><cell>GCAIS</cell><cell>-</cell><cell cols="2">15 0.23 ± 2.47</cell><cell>0.96 ± 0.23</cell><cell>2.8 ± 0.19</cell></row><row><cell>GCAIS BASE</cell><cell>-</cell><cell>-</cell><cell>1.0</cell><cell>1.0</cell><cell>1.0 ± 0.02</cell></row><row><cell>GSEMO</cell><cell>-</cell><cell>-</cell><cell cols="3">9.89 ± 0.01 47.33 ± 0.01 2.94 ± 0.15</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 2 :</head><label>2</label><figDesc>Experimental results for Beasley's OR library. The best values are marked bold. Each KPI is displayed ±σ.</figDesc><table><row><cell>KPI</cell><cell>algorithm</cell><cell>scpe1</cell><cell>scpe2</cell><cell>scpe3</cell><cell>scpe 4</cell><cell>scpe5</cell></row><row><cell>mem save</cell><cell>GSEMO</cell><cell cols="2">1.62 ± 0.15 1.62 ± 0.13</cell><cell>1.39 ± 0.2</cell><cell>1.1 ± 0.3</cell><cell>1.91 ± 0.15</cell></row><row><cell cols="7">mem save bounded GCAIS 4.23 ± 0.01 4.54 ± 0.01 4.68 ± 0.02 4.31 ± 0.02 4.54 ± 0.01</cell></row><row><cell>speed up</cell><cell>GSEMO</cell><cell cols="5">2.56 ± 0.15 2.22 ± 0.15 1.69 ± 0.28 1.26 ± 0.41 3.37 ± 0.15</cell></row><row><cell>speed up</cell><cell cols="5">bounded GCAIS 1.73 ± 0.18 1.36 ± 0.24 2.56 ± 0.14 2.04 ± 0.2</cell><cell>1.87 ± 0.21</cell></row><row><cell>approx rate</cell><cell>GSEMO</cell><cell>1.46 ± 0.16</cell><cell>1.53 ± 0.1</cell><cell cols="2">1.49 ± 0.12 1.43 ± 0.14</cell><cell>1.53 ± 0.1</cell></row><row><cell cols="7">approx rate bounded GCAIS 1.06 ± 0.04 1.01 ± 0.03 1.09 ± 0.03 1.04 ± 0.05 1.08 ± 0.04</cell></row><row><cell>approx rate</cell><cell>GCAIS BASE</cell><cell cols="5">1.11 ± 0.04 1.08 ± 0.06 1.11 ± 0.05 1.07 ± 0.05 1.14 ± 0.06</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="15" xml:id="foot_0">else if table[k].cov &gt; table[i].cov then</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="16" xml:id="foot_1">i = k</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgement</head><p>We would like to thank Oliver Banf who helped us acquiring the industrial data.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Review of &quot;artificial immune systems: A new computational intelligence approach</title>
		<author>
			<persName><forename type="first">F</forename><surname>Azuaje</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Neural Netw</title>
		<editor>de castro and j. timmis</editor>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="issue">8</biblScope>
			<biblScope unit="page">1229</biblScope>
			<date type="published" when="2002">2003. 2002</date>
			<publisher>springer</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">A new approach for solving set covering problem using jumping particle swarm optimization method</title>
		<author>
			<persName><forename type="first">S</forename><surname>Balaji</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Revathi</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="page" from="503" to="517" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">The skyline operator</title>
		<author>
			<persName><forename type="first">S</forename><surname>Börzsönyi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kossmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Stocker</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 17th International Conference on Data Engineering</title>
				<meeting>the 17th International Conference on Data Engineering</meeting>
		<imprint>
			<publisher>USA. IEEE Computer Society</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="421" to="430" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Skyline with presorting</title>
		<author>
			<persName><forename type="first">J</forename><surname>Chomicki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Godfrey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gryz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Liang</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="717" to="719" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Analytical approach to parallel repetition</title>
		<author>
			<persName><forename type="first">I</forename><surname>Dinur</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Steurer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Forty-sixth Annual ACM Symposium on Theory of Computing, STOC &apos;14</title>
				<meeting>the Forty-sixth Annual ACM Symposium on Theory of Computing, STOC &apos;14<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="624" to="633" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Parallel skyline computation exploiting the lattice structure</title>
		<author>
			<persName><forename type="first">M</forename><surname>Endres</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Kießling</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Database Management</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="page" from="18" to="43" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Scalagon: An efficient skyline algorithm for all seasons</title>
		<author>
			<persName><forename type="first">M</forename><surname>Endres</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Roocks</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Kießling</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Database Systems for Advanced Applications</title>
				<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="292" to="308" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Index structures for preference database queries</title>
		<author>
			<persName><forename type="first">M</forename><surname>Endres</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Weichmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Flexible Query Answering Systems</title>
				<imprint>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="137" to="149" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Redundancy based test-suite reduction</title>
		<author>
			<persName><forename type="first">G</forename><surname>Fraser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Wotawa</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Fundamental Approaches to Software Engineering</title>
				<editor>
			<persName><forename type="first">M</forename><forename type="middle">B</forename><surname>Dwyer</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Lopes</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin, Heidelberg; Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="291" to="305" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Evolutionary algorithms and the maximum matching problem</title>
		<author>
			<persName><forename type="first">O</forename><surname>Giel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Wegener</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th Annual Symposium on Theoretical Aspects of Computer Science, STACS &apos;03</title>
				<meeting>the 20th Annual Symposium on Theoretical Aspects of Computer Science, STACS &apos;03<address><addrLine>Berlin, Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="415" to="426" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Flower: Optimal test suite reduction as a network maximum flow</title>
		<author>
			<persName><forename type="first">A</forename><surname>Gotlieb</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Marijan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2014 International Symposium on Software Testing and Analysis, ISSTA 2014</title>
				<meeting>the 2014 International Symposium on Software Testing and Analysis, ISSTA 2014<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="171" to="180" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Genetic algorithms</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">H</forename><surname>Holland</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Scientific American</title>
		<imprint>
			<biblScope unit="volume">267</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="66" to="73" />
			<date type="published" when="1992">1992</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Mints: A general framework and tool for supporting test-suite minimization</title>
		<author>
			<persName><forename type="first">H</forename><surname>Hsu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Orso</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE 31st International Conference on Software Engineering</title>
				<imprint>
			<date type="published" when="2009">2009. 2009</date>
			<biblScope unit="page" from="419" to="429" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">The germinal centre artificial immune system</title>
		<author>
			<persName><forename type="first">A</forename><surname>Joshi</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
		<respStmt>
			<orgName>University of Birmingham</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">An immune-inspired algorithm for the set cover problem</title>
		<author>
			<persName><forename type="first">A</forename><surname>Joshi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E</forename><surname>Rowe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Zarges</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Parallel Problem Solving from Nature -PPSN XIII</title>
				<editor>
			<persName><forename type="first">T</forename><surname>Bartz-Beielstein</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Branke</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">B</forename><surname>Filipič</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Smith</surname></persName>
		</editor>
		<imprint>
			<publisher>Cham. Springer International Publishing</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="243" to="251" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Improving the performance of the germinal center artificial immune system using epsilon-dominance: A multi-objective knapsack problem case study</title>
		<author>
			<persName><forename type="first">A</forename><surname>Joshi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E</forename><surname>Rowe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Zarges</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Evolutionary Computation in Combinatorial Optimization</title>
				<editor>
			<persName><forename type="first">G</forename><surname>Ochoa</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">F</forename><surname>Chicano</surname></persName>
		</editor>
		<imprint>
			<publisher>Cham. Springer International Publishing</publisher>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="114" to="125" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title level="m" type="main">Introduction to Parallel Computing</title>
		<author>
			<persName><forename type="first">V</forename><surname>Kumar</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Addison-Wesley Longman Publishing Co., Inc</publisher>
			<pubPlace>USA</pubPlace>
		</imprint>
	</monogr>
	<note>2nd edition</note>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">A new genetic algorithm for the set k-cover problem in wireless sensor networks</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Zhang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE International Conference on Systems, Man and Cybernetics</title>
				<imprint>
			<date type="published" when="2009">2009. 2009</date>
			<biblScope unit="page" from="1405" to="1410" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">A study of heuristic-algorithms for setcovering problems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Minotra</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Organic computingtechnical systems for survival in the real world</title>
		<author>
			<persName><forename type="first">C</forename><surname>Müller-Schloer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Tomforde</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Autonomic Systems</title>
				<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Analysis of requirements volatility during software development life cycle</title>
		<author>
			<persName><forename type="first">N</forename><surname>Nurmuliani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Zowghi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Powell</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Australian Software Engineering Conference. Proceedings</title>
				<imprint>
			<date type="published" when="2004">2004. 2004</date>
			<biblScope unit="page" from="28" to="37" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">New ideas for applying ant colony optimization to the set covering problem</title>
		<author>
			<persName><forename type="first">Z.-G</forename><surname>Ren</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z.-R</forename><surname>Feng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L.-J</forename><surname>Ke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z.-J</forename><surname>Zhang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computers &amp; Industrial Engineering</title>
		<imprint>
			<biblScope unit="volume">58</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="774" to="784" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<title level="m" type="main">Reinforcement learning for automatic test case prioritization and selection in continuous integration</title>
		<author>
			<persName><forename type="first">H</forename><surname>Spieker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Gotlieb</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Marijan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Mossige</surname></persName>
		</author>
		<idno>CoRR, abs/1811.04122</idno>
		<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<monogr>
		<title level="m" type="main">The design of approximation algorithms. The Design of Approximation Algorithms</title>
		<author>
			<persName><forename type="first">D</forename><surname>Williamson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Shmoys</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Chemical reaction optimization for the set covering problem</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J Q</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">Y S</forename><surname>Lam</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">O K</forename><surname>Li</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE Congress on Evolutionary Computation (CEC)</title>
				<imprint>
			<date type="published" when="2014">2014. 2014</date>
			<biblScope unit="page" from="512" to="519" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">An empirical study of the effects of test-suite reduction on fault localization</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Jones</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>Harrold</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 30th International Conference on Software Engineering, ICSE &apos;08</title>
				<meeting>the 30th International Conference on Software Engineering, ICSE &apos;08<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="201" to="210" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">On the approximation ability of evolutionary optimization with application to minimum set cover</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Yao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z.-H</forename><surname>Zhou</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artificial Intelligence</title>
		<imprint>
			<biblScope unit="page" from="180" to="181" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
