<?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 Condition Coverage-Based Black Hole Inspired Meta-Heuristic for Test Data Generation</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Derya</forename><forename type="middle">Yeliz</forename><surname>Ulutaş</surname></persName>
							<email>dyulutas@aselsan.com.tr</email>
							<affiliation key="aff0">
								<orgName type="institution">ASELSAN Inc</orgName>
								<address>
									<settlement>Ankara</settlement>
									<country key="TR">Turkey</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">Faculty of Computer and Informatics Engineering</orgName>
								<orgName type="institution">Istanbul University</orgName>
								<address>
									<settlement>Istanbul</settlement>
									<country key="TR">Turkey</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ayşe</forename><surname>Tosun</surname></persName>
							<email>tosunay@itu.edu.tr</email>
							<affiliation key="aff1">
								<orgName type="department">Faculty of Computer and Informatics Engineering</orgName>
								<orgName type="institution">Istanbul University</orgName>
								<address>
									<settlement>Istanbul</settlement>
									<country key="TR">Turkey</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Condition Coverage-Based Black Hole Inspired Meta-Heuristic for Test Data Generation</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">AB4CA453E1851395B5FC43568900026D</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T22:27+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>
			<textClass>
				<keywords>
					<term>Combinatorial Search-based Software Testing (CSST)</term>
					<term>Test Data Generation</term>
					<term>Meta-heuristic</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Combinatorial Testing (CT) strategy is one of the well-known methods to achieve high code coverage rates during testing for safety critical systems. While generating test data in CT, we often encounter the problem of test case explosion, especially for the systems with multiple parameters and values. To overcome this challenge, search-based CT (CSST) strategies are introduced. In this study, we propose a new algorithm that inspires from a binary variant of Black Hole Algorithm (BBH) in CSST and adopt BBH according to the CT challenges in an industrial context. The proposed BBH version, BH-AllStar, aims the following: (1) obtaining higher condition coverage, (2) avoiding being stuck in local minima and (3) handling discrete input values. We finalize the solution space of BH-AllStar by reassessing the previously removed stars and incorporating the useful ones into it. We evaluate our approach on a real-life software project in the safety-critical domain with respect to condition coverage, number of test cases and execution time. Compared to BBH, BH-AllStar generates more test cases which achieve up to 43% increase in condition coverage.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>The complexity and the criticality of the safety critical systems in the defense industry are growing <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2]</ref>, hence, these systems require more thorough and efficient testing technologies, such as test automation and regression test selection/prioritization <ref type="bibr" target="#b2">[3]</ref> and continuous integration. The software testing field in the defense industry needs to develop more efficient and qualified techniques to meet security-critical requirements. <ref type="bibr" target="#b0">[1]</ref>. For instance, various test techniques such as Boundry-Value Analysis and Equivalence Partitioning are used to meet the DO-178 Standard to ensure safety-critical requirements, which has been imposed by the U.S. Federal Aviation Administration (FAA). <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5]</ref>. To assess the effectiveness of these methods, different coverage criteria are employed <ref type="bibr" target="#b5">[6]</ref>. During functional testing, Combinatorial Testing (CT) methods are widely utilized especially for software systems in which there exist many parameters and conditions that take a combination of multiple input values <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b7">8]</ref>. CT method such as t-way testing executes the software using test cases with the interaction of the possible input values <ref type="bibr" target="#b9">[9]</ref>. The radar software in our industrial context, for instance, takes 12 input parameters each takes two to six values. If we would like to test this software with full input coverage, we would end up executing 63.34.24.5=1,399,680 test cases. This is an impossible goal to reach, and instead in practice, we follow t-way testing with the IPOG strategy <ref type="bibr" target="#b10">[10]</ref>: select the t value as high as possible with the cost of increasing the number of test cases. The current limitation of the employed t-way testing in our industrial setting is the lack of relationship between the selected test cases and their code coverage, because the strategy of selecting the test inputs is not dependent on the covered branches/conditions of the software system.</p><p>To address this challenge, combinatorial search-based software testing (CSST) approaches are suitable <ref type="bibr" target="#b11">[11]</ref>. One of the studies by Al-Sammarraie and Jawawi <ref type="bibr" target="#b9">[9]</ref> inspired our work. The authors propose three new approaches namely Binary Black Hole (BBH), Multiple Black Hole (MBH) and Binary Multiple Black Hole (BMBH) based on the Black Hole Algorithm (BHA), which is first introduced in <ref type="bibr" target="#b12">[12]</ref> as an alternative to Particle Swarm Optimization (PSO). Their aim was generating test inputs with respect to the number of test cases and code coverage. The authors also aim to avoid being stuck in local minima and they propose a novel energy mechanism for MBH that helps to choose useful black hole populations only. The results show that MBH outperforms PSO and BHA in terms of the number of test cases, consistency and high coverage rates.</p><p>We share the same goal with <ref type="bibr" target="#b9">[9]</ref> of generating test data using a search-based meta-heuristic, which avoids local minima and achieves higher coverage than BBH. The approach in <ref type="bibr" target="#b9">[9]</ref> could be well fitted in our industrial problem because of two main motivations: (1) their problem domain and data set are similar to our project, i.e., radar software, (2) they innovatively apply BHA, which is originally a clustering algorithm, to generate test data for functional testing. However, considering the scale of our radar software under test, BBH approach does not fully address our challenge. More specifically, BBH concentrates on generating minimum number of test cases rather than increasing the coverage criteria. Due to this, it lacks assessing the generated stars except the black hole in terms of their coverage. The term star here corresponds to the test case (e.g., <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b4">5,</ref><ref type="bibr" target="#b6">7]</ref> is an input set, also a test case and named as 'star'), as depicted in Table <ref type="table" target="#tab_1">2</ref>. This in turn eliminates some of the useful stars during the operations of BBH. In this study, we propose a new algorithm called BH-AllStar by modifying several strategies in BBH, such as elimination mechanism based on distance between stars, moving stars in discrete space, and selecting the best black hole population from the history. Our new approach generates relatively more test cases with higher condition coverage than BBH, although we cover only 0.14% of 1,399,680 test cases in our industrial context. We assess the applicability of BBH in <ref type="bibr" target="#b9">[9]</ref> and its new variant BH-AllStar in an industrial context with respect to the number of test cases, coverage rate and execution time.</p><p>The remainder of this paper is organized as follows: Section 2 presents the related work. We report the details of our approach BH-AllStar and research methodology in Section 3. Section 4 shows the results and discussion; Section 5 explains the threats to validity. Finally, Section 6 concludes this study with future directions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Related work</head><p>Combinatorial Search-based Software Testing (CSST) is a testing method based on Combinatorial Testing (CT). CT aims at generating input vectors combining possible input values of all input parameters of the Software Under Test (SUT) <ref type="bibr" target="#b10">[10]</ref>. The SUT can have n input parameters: ci (i = 1,2,3…n). Every parameter can take a set of values Vi where i can be from 1 to n. For example, V1 is the value set of c1 and contains m different values. (v1,v2,…,vm ). One test case is composed of a set of values from all Vi of all ci (e.g. vx ∈ V1, vy ∈ V2, vz ∈ V3) <ref type="bibr" target="#b10">[10]</ref>. There are different methods to build all combinations of input parameters for CT such as t-way testing or randomization-based methods in the literature <ref type="bibr" target="#b13">[13]</ref>. CSST is one of the search-based approaches to reduce the large solution space <ref type="bibr" target="#b9">[9]</ref>. To find the optimum solution of a problem, especially for the problems, which contain very large sets of solutions and have computational constraints, meta-heuristic search techniques are commonly implemented <ref type="bibr" target="#b14">[14]</ref>. These meta-heuristic search techniques are based on initially generated random solution space and narrowing down the search space based on the evaluation criteria.</p><p>A recent systematic mapping study in <ref type="bibr" target="#b14">[14]</ref> highlights 260 relevant studies in CSST, and narrows down to 42 primary studies to investigate the proposed approaches and their test case generation accuracy. The authors summarize well-known meta-heuristic search techniques as follows: Genetic Algorithm (GA), Particle Swarm Optimization Algorithm (PSO), Simulated Annealing Algorithm (SA), and Ant Colony Optimization (ACO). Their mapping strategies show that GA is the most popularly applied technique, whereas some combine multiple algorithms such as GA and SA. They conclude that the primary studies provide benefits in terms of code coverage and execution time.</p><p>In Table <ref type="table" target="#tab_0">1</ref>, we list a sample of studies obtained from <ref type="bibr" target="#b14">[14]</ref> that we examine in terms of the approach, dataset on which the approaches are evaluated, and the fitness criteria. Among the studies, we selected eight studies targeting a similar objective to our industry problem, and varying in terms of fitness functions and datasets. The studies <ref type="bibr" target="#b15">[15]</ref><ref type="bibr" target="#b16">[16]</ref><ref type="bibr" target="#b17">[17]</ref><ref type="bibr" target="#b18">[18]</ref><ref type="bibr" target="#b19">[19]</ref> utilize nature inspired optimization methods for CSST, whereas <ref type="bibr" target="#b9">[9,</ref><ref type="bibr" target="#b12">12,</ref><ref type="bibr" target="#b20">20]</ref> use a heuristic based on black hole phenomenon. All studies in Table <ref type="table" target="#tab_0">1</ref> show that the improved versions of nature inspired optimization methods outperform original methods with respect to code coverage or execution time. All the prior studies validate the success of their proposed approach on simple functions like the source code that calculates the greatest common divisor or checking the validity of the date, etc. Unfortunately these projects are not representative of real programs, and achieving high coverage is relatively easier with few test cases. Except one study <ref type="bibr" target="#b15">[15]</ref>, all studies focus on branch coverage as one of their evaluation criteria, although in practice wıth more complex algorithms, multiple conditions need to be taken into account with a condition converage criterion. Below, we give more description on our baseline algorithm BHA <ref type="bibr" target="#b12">[12]</ref> and its application on test case generation <ref type="bibr" target="#b9">[9]</ref>. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Black hole algorithm</head><p>BHA has been first introduced in the study <ref type="bibr" target="#b12">[12]</ref> as a new heuristic algorithm inspired by the black hole phenomenon. Based on Newton's law, scientists invented a concept about the stars with high power and strong gravitational field <ref type="bibr" target="#b21">[21]</ref>. They name this star as "black hole". The reason of this name is that any object moving around this special star cannot escape and is absorbed into the black hole if the objects cross the Schwarzschild radius <ref type="bibr" target="#b21">[21]</ref>. This special star is described with the adjective 'black' because light cannot be reflected and make this star invisible <ref type="bibr" target="#b21">[21,</ref><ref type="bibr" target="#b22">22]</ref>. With the inspiration of the nature of black holes, BHA is proposed for data clustering <ref type="bibr" target="#b12">[12]</ref>. Fig. <ref type="figure">1</ref> presents the pseudocode of BHA adopted from <ref type="bibr" target="#b9">[9,</ref><ref type="bibr" target="#b12">12]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 1:</head><p>BHA pseudocode adopted from <ref type="bibr" target="#b9">[9,</ref><ref type="bibr" target="#b12">12]</ref> According to the terminology used in <ref type="bibr" target="#b9">[9]</ref>, a population with random stars is initially generated, and a fitness value is calculated for every star in this population. The best star with the best fitness value is selected as the black hole. Later, all stars in the population are moved towards the black hole as described in Eq.1. The new location of the current star x(t+1) is calculated by multiplying a random number with the difference between the BH Star and the current star (BH-currentStar), and adding the result to the previous location x(t). The current star is moved closer to the BH Star as a result of this operation. Movement of the stars towards the black hole provides a grouping process and force all the other stars to converge to the best fitness value. If a star crosses the event horizon (R) of the black hole defined in Eq.2, it is destroyed, and a new random star is generated and added into the population. The R value is calculated as the ratio of the fitness value of BH Star and sum of the fitness function outcomes of all stars in the population. This step leads to adding various stars to the population and increases the probability of convergence to the desired solution.</p><p>x(t+1) = x(t) + rand x (BH-currentStar) (1)</p><formula xml:id="formula_0">R = 𝑓𝑓(𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵)/ ∑ 𝑓𝑓(𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵(𝑖𝑖) 𝑛𝑛 𝑖𝑖=1 )<label>(2)</label></formula><p>The searching process stops if the stopping criterion is met. This criterion can be the maximum number of iterations or a sufficiently good fitness criterion <ref type="bibr" target="#b9">[9,</ref><ref type="bibr" target="#b12">12]</ref>.</p><p>Hatamlou conducted an experiment on the sixbenchmark dataset <ref type="bibr" target="#b12">[12]</ref> and highlights two advantages of BHA: (1) simple and easy to implement, (2) applicable to other problem domains, and (3) outperforming other clustering methods. The performance of BHA is later tested in <ref type="bibr" target="#b21">[21]</ref> on mathematical functions to reach their minimum and maximum values. The authors in <ref type="bibr" target="#b21">[21]</ref> compare BHA with GA and PSO, and report that BHA outperforms others and can be applied to other problem domains.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">The baseline study</head><p>Based on the BHA proposed in <ref type="bibr" target="#b12">[12]</ref>, Al-Sammarraie and Jawawi <ref type="bibr" target="#b9">[9]</ref> propose three variations of BHA for test case generation: BBH, MBH and BMBH. Terms and function names used in the study <ref type="bibr" target="#b9">[9]</ref> are described in Table <ref type="table" target="#tab_1">2</ref>. For the inputs that has discrete values like binary values (0,1), moveStars operation (Eq. 1) does not work because it causes a shift in the continuous domain due to the multiplication of the distance with a random value. To handle this issue, a binary variant of black hole is proposed. This approach generates a random value rd between 0 and 1. This random value is compared against the constant value, pr (Eq. 3). If it is greater than rd, the new location of the star is going to be equal to that of black hole. Otherwise, new location of is equal to its own old value <ref type="bibr" target="#b9">[9]</ref>. </p><formula xml:id="formula_1">𝑥𝑥𝑖𝑖(𝐵𝐵 + 1) = � 𝐵𝐵𝐵𝐵(𝐵𝐵) 𝑖𝑖𝑓𝑓 𝐵𝐵 𝑑𝑑 &lt; 𝑝𝑝𝐵𝐵 𝑥𝑥𝑖𝑖(𝐵𝐵) 𝑜𝑜𝐵𝐵ℎ𝑒𝑒𝐵𝐵𝑒𝑒𝑖𝑖𝑒𝑒𝑒𝑒<label>(3)</label></formula><p>The authors reach consistent and high coverage by extending solution space with the help of multiple swarm approach called MBH <ref type="bibr" target="#b9">[9]</ref>. The main idea in MBH is to generate more than one population and in turn, more than one black hole in a single iteration to avoid being stuck in local minima. At the end of the iterations, final list of populations become the solution space. The findings showed that their approach suffers from being stuck in local minima since there is no mutation operation. The authors point that the population initialization and moveStars operations could be improved.</p><p>Our work complements the previous study <ref type="bibr" target="#b9">[9]</ref> in several ways: <ref type="bibr" target="#b0">(1)</ref>We propose a condition coverage-based elimination mechanism instead of a distance-based one to keep the test cases that likely contribute to total coverage. (2) We prioritize achieving higher coverage rates than restricting the number of test cases. <ref type="bibr" target="#b2">(3)</ref> We propose two new approaches within BHA to assess all the generated stars and black holes and to extend the selected population without being stuck in local minima. <ref type="bibr" target="#b3">(4)</ref> We apply the BHA method to a real-life software system for test case generation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Our methodology</head><p>The software under test in this study is part of a large-scale radar software developed for the defense industry. Due to its confidentiality constraints, we are not able to give the details of the algorithm or its pseudocode. We can briefly describe the complexity of our SUT: it takes 12 input parameters with different possible values, and outputs an integer value. It contains two functions with 17 if and nested if statements with up to three levels, two for loops, two switch case statements and 72 branches in total. We built a technological setup, in order to conduct our analysis on BBH and its variants including BH-AllStar. Our analysis starts by selecting the baseline algorithm as shown in Fig <ref type="figure" target="#fig_0">2</ref>, namely BBH, to generate test cases, i.e., a black hole (BH) surrounded with stars, and our software is executed against this test case. Then the system collects the information of missed conditions using Jacoco testing tool. Iteratively, the condition coverage information is stored in a file, and used in the elimination decision mechanism. Based on the decisions, the algorithm generates new test cases (stars) and the cycle continues. The algorithm terminates after K (10-500) number of iterations.</p><p>We modify several operations in <ref type="bibr" target="#b9">[9]</ref> and propose our approach: BH-AllStar. We use initializePopulation() and updateFitness() methods as is, but modify moveStars(), and created a new star elimination criterion. We also propose two new methods to select the final population both of which will be described below. Our motivation is also determining the best BH in reaching as high coverage rates as possible, and shaping the other stars around it without being stuck in local minima. During our analysis, we noticed that the distance criteria defined in <ref type="bibr" target="#b9">[9]</ref> removes some stars although they contribute to the coverage ratio. It also prioritizes to keep the number of test cases as few as possible. Increasing the number of test cases is preferable for our industrial setting than having low coverage rates. Fig. <ref type="figure" target="#fig_1">3</ref> shows the pseudocode of our approach. Our contributions are presented in the below subsections.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Condition coverage-based elimination mechanism</head><p>We calculate condition coverage for each branch existing in our testing code. For example, an "if" statement with one condition, e.g. x&lt;5, contains two branches, true or false, and the condition coverage for this branch can be 0, 50% or 100%. If an "if" statement has two conditions, e.g. x&lt;5 &amp;&amp; y&gt;10, then it has 4 conditions (TT, TF, FT, FF). With the input set (x=3, y=11; x=3, y=9; x=6, y=9), the condition coverage for this branch is calculated as 75%. Only traditional branch coverage is not enough for our study since we need to cover all the conditions of each branch in our testing code. Therefore, we replace the distance based mechanism, which calculates to what extent the distance between current star and black hole exceeds the R value to decide whether to destroy the star or keep it alive, with our condition coverage based mechanism, as shown in Fig. <ref type="figure" target="#fig_1">3</ref> described as isBestAtLeastOnOneBranch() and calculateBranchRatio() methods. With this condition coverage-based mechanism for all branches of our SUT, we give chance to the stars with lower coverage ratios then the BH Star to cover uncovered branches. We have two steps in our decision mechanism:</p><p>isBestAtLeastOnOneBranch We control if the current star is the best among all stars in the population in terms of covering at least one more branch. This operation would keep an efficient star, even if it has a smaller coverage ratio compared to other stars.</p><p>calculateBranchRatio We compare current star and black hole in terms of covering all branches one by one and calculate the ratio of the number of branches that current star covers better than black hole, and the number of branches that current star covers worse than black hole. We use here a coefficient=3 to multiply the number of better covered branches in order to give a star more chance (see Eq. 4). We have made several tests with different coefficients and chosen the value 3 as the optimum value for deciding the stars to be accepted or not.</p><formula xml:id="formula_2">#𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑑𝑑𝑜𝑜𝑜𝑜𝑜𝑜𝑛𝑛𝑜𝑜ℎ𝑜𝑜𝑒𝑒 * 3 #𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑒𝑒𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑑𝑑𝑜𝑜𝑜𝑜𝑜𝑜𝑛𝑛𝑜𝑜ℎ𝑜𝑜𝑒𝑒 (4)</formula><p>Fig. <ref type="figure" target="#fig_2">4</ref> illustrates a sample of stars: An eliminated star (purple), a previously eliminated but later revived star (yellow), and an always alive star (orange) with their coverage values in the timeline, when our proposed mechanism is applied. The total coverage significantly increases at the end of the iterations as we let a previously killed star (yellow) to be included into the final population. Eliminating a star (purple) also increase total coverage during 18 th iteration. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Moving Discretely</head><p>In moveStars() operation, to shift the stars towards the black hole, we propose an indexbased method for discrete-valued parameters, similar to 'Binary Variants' in <ref type="bibr" target="#b9">[9]</ref>. We store our input parameters in an array and we generate a random index value between the input value index of the current star and the BH. Then we move current star to this index and assign the value to the current star as the updated input parameter.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">Choosing the best population over history</head><p>In keepPopulationWithMaxTotalCoverage(), we keep the population generated in all iterations of BBH including coverage rates and alive/dead states of each star. At the end of the iterations, we select the population that has the highest coverage ratio, not the last population according to BH.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.">All Star operation</head><p>In allStar() method, we compare all the stars between t0 and tend against the BH at tn, and add the best stars in terms of condition coverage into our final population. Although this causes an increase in the number of test cases, it also increases the coverage of the final population.</p><p>The variants of BBH are as follows: (1) Best BBH (BBH*): We incorporate "Choosing Best Population from History" approach into BBH. ( <ref type="formula" target="#formula_0">2</ref>  <ref type="formula">4</ref>) BH-AllStar: We add "AllStar Operation" onto BBHCC*. We assess all according to condition coverage of the population, number of test cases, and execution time.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Results and discussion</head><p>The results over different iterations and with variants of BBH, reported in Table <ref type="table" target="#tab_2">3</ref>, show that higher code coverage rates are obtained compared to BBH. For instance, with 500 iterations, coverage values are 69.4% in BBH, whereas 75% in BBH*, 70.8% in BBHCC, 73.6% in BBHCC* and 76.8% in BH-AllStar. We observe that same coverage rates can be achieved with fewer test cases but higher execution time for different number of iterations. The maximum code coverage rate is approximately 76% in iterations 150 and 500 with BH-AllStar. Solution space consists of 190 test cases for 150 iterations and executes in 327 secs. However, for 500 iterations, only 19 test cases are used but execution time is 815 secs.</p><p>In addition, the baseline algorithm, BBH has a better coverage (72.2%) than our condition coverage based BBH approach (65.3%) for 300 iterations. However, our additions help to increase the coverage from 65.3% to 75% in BH-AllStar. BBH* always reaches better coverage rates than BBH. When the coverage criterion is set as condition (BBHCC), we do not always see a better convergence than BBH. But choosing the best population and adding all the "good" stars eventually converge to much higher coverage ratios. Instead of defining multiple black hole as in <ref type="bibr" target="#b9">[9]</ref>, we stick to the single black hole phenomenon but we give a certain flexibility to the star selection and achieve a similar improvement like in <ref type="bibr" target="#b9">[9]</ref>. We can confirm the prior finding that a black hole inspired meta-heuristic could be successful at generating test data for software systems with too many parameters.  Considering the number of test cases, we observe that BH-AllStar may take higher values with respect to the positions of the stars, condition coverage ratios of each star and the black hole star. In 150 iterations, we generate 190 test cases, which is a higher value compared to the other experiment results. Since we pick the best stars in terms of coverage during All-Star operation, there may be many "best" stars in the population compared to the selected black hole. We did not perform any filtering on these best stars like pruning, but it might be possible to reduce those that cover similar conditions as a final step.</p><p>Table <ref type="table" target="#tab_3">4</ref> presents the coverage rate of the BH Star, Alive Stars and BH-AllStar in the final solution space. In both BBH and our proposed approach, the black hole has the same coverage rate (51.4%). Alive stars in the solution space have a minimum of 23.6%, a maximum of %51.4 (BH itself) and a median of 43% coverage ratios. A star with less coverage ratio than the BH Star is acceptable in our study because it might have a higher coverage on any branch compared to the BH star. Fig. <ref type="figure" target="#fig_4">5</ref> presents the coverage rates of all the branches according to 190 stars in the solution space for 150 iterations. As depicted in Fig. <ref type="figure" target="#fig_4">5</ref>, there are still some branches (e.g., 19 th to 27 th ) which are not sufficiently covered although we increase the total coverage ratio. This is partly due to the fact that BH algorithm essentially revolves around the black star that is picked. So, some of the areas in the search space might be missed during the iterations. It is seen that one or more populations were found with BBH (around 60 th and 100 th iterations) that reach a higher coverage, but there were later lost. The final coverage ratio was also smaller at the end. On the other hand, in our approach, a peak can be seen just after all the iterations are executed, at t=151. The population with the best coverage has been kept and the good stars over the history are added to that population.</p><p>The results show that our Choosing Best Population from History approach always provides better coverage rates. Since the nature of the movement to the black hole and random generation of stars might cause a decrease in total coverage in BBH, we handle this problem by keeping the population with maximum coverage. The main reason that BH-AllStar outperforms BBH is that the latter eliminates stars because it is too close to the black hole star. However, it does not mean that these stars do not contribute to total coverage.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Threats to validity</head><p>We highlight several issues that might jeopardize the validity of our findings, and discuss these in this section. The first issue is related to the construct defined as the fitness criteria of our proposed algorithm. We aim to improve the final population of the algorithm by assessing the condition coverage ratio, which is calculated through Jacoco tool for each branch of the tested algorithm. Jacoco gives a condition coverage ratio for each branch, but it does not specifically say which conditions are satisfied in that branch. When two stars having 50% condition coverage for the same branch are evaluated, we consider those the same. But we do not know whether both cover different conditions and complement each other. This might have caused to falsely eliminate some stars from the population. We plan to work on this issue in our future studies by checking other unit testing tools.</p><p>The second issue is related to the binary strategy applied to turn BHA to BBH algorithm. In Section III, we describe how the movement of the stars happens on a discrete scale. Unfortunately, the description in <ref type="bibr" target="#b9">[9]</ref> was not detailed enough and we had to make some assumptions. This might cause a deviation between BBH in <ref type="bibr" target="#b9">[9]</ref> and BBH we developed here. It does not affect our comparisons between BBH, its variants and BH-AllStar on the software under test in this paper. The third issue is related to the internal validity of the experimental design. We are aware that choosing a different coefficient value in Eq.4 in BH-AllStar would impact our results, in fact, we tried multiple values and observed the convergence of the algorithm in terms of condition coverage to pick the final value as 3. We also think the randomness in the initial population, and the selection of best stars from all the iterations could affect the final results. We plan to work on these as future works as both require empirical analysis of different strategies. Finally, our results are limited to a single industrial context because we chose to solve the problem of our industrial partner through an improved CSST method. The prior works often assess their approaches on simple programming exercises, which suffer from generalization of the results on real life projects. We believe our study validates the real application of Black Hole inspired approaches adopted to condition coverage criterion.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">Conclusion</head><p>In this study, we present a new approach to generate test data by implementing a previously proposed meta-heuristic searching technique BBH on a real-life engineering problem that we face for our safety critical systems in the industry. Our BBH variants and new algorithm BH-AllStar perform better than BBH in terms of condition coverage up to 43%. Although BH-AllStar generates more test cases compared to BBH, we achieve extending search space and obtaining higher condition coverage rates in the same execution time. As a future work, we plan new experiments to compare Multiple Black Hole Approach reported in <ref type="bibr" target="#b9">[9]</ref> and our BH-AllStar. We also plan to decrease the number of test cases in our current approach, the selection of best stars for each branch in BH-AllStar can be limited by selection only one among the best stars. We also intend to conduct further research on every condition in a decision to be covered of the SUT, rather than having higher condition coverage, which is known as MC/DC (Modified Conditon/Decision Coverage). We think that our proposed approach can be applied to other problems, such as testing algorithms with different level of complexity, nested conditions and line of codes. Initialization of the population, which is the first step of BBH can also be optimized to start with a better population rather than a random start as in its current setting.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Our experiment setup</figDesc><graphic coords="5,57.84,222.24,243.48,78.60" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Pseudocode of our proposed approach</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: The x-axis is the number of iterations and the y-axis is condition coverage rate.</figDesc><graphic coords="5,316.32,579.72,195.12,153.24" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head></head><label></label><figDesc>) BBH with Condition Coverage (BBHCC): We use "Condition Coverage-Based Elimination Mechanism". (3) Best BBH with Condition Coverage (BBHCC*): We add "Choosing Best Population over History" onto BBHCC. (</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 5</head><label>5</label><figDesc>Figure 5 Coverage Density Graph based on Star ID and Branch ID</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 6</head><label>6</label><figDesc>Figure 6 Coverage in the timeline of BBH</figDesc><graphic coords="7,420.60,142.20,119.40,98.04" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1</head><label>1</label><figDesc>Summary of studies in the literature</figDesc><table><row><cell cols="2">Study Baseline</cell><cell>Dataset/Project</cell><cell>Fitness/Evaluation</cell></row><row><cell></cell><cell>Method</cell><cell></cell><cell>Criteria</cell></row><row><cell>[15]</cell><cell>ACO</cell><cell>triangleType, gcd,</cell><cell>Branch coverage</cell></row><row><cell></cell><cell></cell><cell>calday,</cell><cell></cell></row><row><cell></cell><cell></cell><cell>isValidDate, cal</cell><cell></cell></row><row><cell>[16]</cell><cell>SA</cell><cell>unknown</cell><cell>Condition coverage</cell></row><row><cell>[19]</cell><cell>PSO</cell><cell>triangleType, gcd,</cell><cell>Branch coverage</cell></row><row><cell></cell><cell></cell><cell>calday,</cell><cell></cell></row><row><cell></cell><cell></cell><cell>isValidDate, cal</cell><cell></cell></row><row><cell>[17]</cell><cell>GA</cell><cell>triangle</cell><cell>Branch distance</cell></row><row><cell></cell><cell></cell><cell>classification and</cell><cell></cell></row><row><cell></cell><cell></cell><cell>nextDate</cell><cell></cell></row><row><cell>[18]</cell><cell>SA</cell><cell>triangle</cell><cell>Branch Coverage,</cell></row><row><cell></cell><cell></cell><cell>classification</cell><cell># of Detected</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Mutants/Defects</cell></row><row><cell>[12]</cell><cell>BHA</cell><cell>Six-benchmark</cell><cell>Distance between</cell></row><row><cell></cell><cell></cell><cell>dataset from ML</cell><cell>blackhole and the</cell></row><row><cell></cell><cell></cell><cell>databases</cell><cell>star</cell></row><row><cell>[20]</cell><cell>BHA</cell><cell>Well-known</cell><cell></cell></row><row><cell></cell><cell></cell><cell>mathematical</cell><cell></cell></row><row><cell></cell><cell></cell><cell>functions</cell><cell></cell></row><row><cell>[9]</cell><cell>BHA</cell><cell>pizza ordering,</cell><cell>k number of test</cell></row><row><cell></cell><cell></cell><cell>smart mobile,</cell><cell>cases</cell></row><row><cell></cell><cell></cell><cell>heart disease</cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2</head><label>2</label><figDesc>Terminology of BBH used in<ref type="bibr" target="#b9">[9]</ref> </figDesc><table><row><cell>Term</cell><cell>Meaning</cell></row><row><cell>Parameter</cell><cell>x: can take values x1, x2, x3</cell></row><row><cell></cell><cell>y: can take values y1, y2, y3. …</cell></row><row><cell>Star</cell><cell>[x1 y2 z3 t4]</cell></row><row><cell>Population</cell><cell>[star1, star2…starn]</cell></row><row><cell>updateFitness()</cell><cell>Calculate the coverage of every star in the</cell></row><row><cell></cell><cell>population and determine the best star as the</cell></row><row><cell></cell><cell>black hole.</cell></row><row><cell>moveStars()</cell><cell>Change location of stars towards the blackhole.</cell></row><row><cell>updateRadius()</cell><cell>Update the radius value of black hole.</cell></row><row><cell>replace()</cell><cell>Remove the current star and generate a new one.</cell></row><row><cell>R</cell><cell>Radius of the black hole (eq.2)</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 3 Performance of BBH Variants and BH-Allstar</head><label>3</label><figDesc></figDesc><table><row><cell cols="2">Iteration</cell><cell>BBH</cell><cell>BBH*</cell><cell>BBH CC</cell><cell>BBH CC*</cell><cell>BH-AllStar</cell></row><row><cell>10</cell><cell>Stars (#)</cell><cell>10</cell><cell>10</cell><cell>10</cell><cell>10</cell><cell>12</cell></row><row><cell></cell><cell cols="2">Cov. (%) 51.4</cell><cell>70.8</cell><cell>68.1</cell><cell>72.2</cell><cell>73.6</cell></row><row><cell></cell><cell>Time</cell><cell>19</cell><cell>19</cell><cell>22</cell><cell>22</cell><cell>22</cell></row><row><cell>150</cell><cell cols="2">Stars (#) Cov. (%) 68.1 10</cell><cell>10 73.5</cell><cell>10 68.7</cell><cell>10 75</cell><cell>190 76.8</cell></row><row><cell></cell><cell>Time</cell><cell>320</cell><cell>320</cell><cell>372</cell><cell>372</cell><cell>372</cell></row><row><cell>300</cell><cell cols="2">Stars (#) Cov. (%) 72.2 10</cell><cell>10 75.0</cell><cell>10 65.3</cell><cell>10 73.6</cell><cell>14 75</cell></row><row><cell></cell><cell>Time</cell><cell>460</cell><cell>460</cell><cell>476</cell><cell>476</cell><cell>476</cell></row><row><cell>500</cell><cell cols="2">Stars (#) Cov. (%) 69.4 10</cell><cell>10 75</cell><cell>10 70.8</cell><cell>10 73.6</cell><cell>19 76.4</cell></row><row><cell></cell><cell>Time</cell><cell>782</cell><cell>782</cell><cell>815</cell><cell>815</cell><cell>815</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 4</head><label>4</label><figDesc>Coverage for different number of iterations</figDesc><table><row><cell></cell><cell></cell><cell>BH</cell><cell></cell><cell>Alive Stars</cell><cell></cell><cell>BH-AllStar</cell></row><row><cell>Coverage</cell><cell>#iter 10 150 300</cell><cell>Star 51.4 51.4 51.4</cell><cell>Min 25 23.6 23.6</cell><cell>Max 51.4 51.4 51.4</cell><cell>Median 37.5 43 37.5</cell><cell>73.6 76.8 75</cell></row><row><cell></cell><cell>500</cell><cell>51.4</cell><cell>25</cell><cell>51.4</cell><cell>38.8</cell><cell>76.4</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">A survey on software test maturity in Korean defense industry</title>
		<author>
			<persName><forename type="first">J</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Ryu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H.-J</forename><surname>Choi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D.-K</forename><surname>Ryu</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="149" to="150" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Analytic Methods in Systems and Software Testing</title>
		<author>
			<persName><forename type="first">R</forename><surname>Kenett</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Ruggeri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Faltin</surname></persName>
		</author>
		<idno type="DOI">10.1002/9781119357056</idno>
		<imprint>
			<biblScope unit="volume">07</biblScope>
			<biblScope unit="page" from="1" to="2018" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Multi-objective regression test selection in practice: An empirical study in the defense software industry</title>
		<author>
			<persName><forename type="first">V</forename><surname>Garousi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Ozkan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Betin-Can</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.infsof.2018.06.007</idno>
	</analytic>
	<monogr>
		<title level="j">Information and Software Technology</title>
		<imprint>
			<biblScope unit="volume">06</biblScope>
			<date type="published" when="2018-01">/01 2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Black Box and White Box Testing Techniques -A Literature Review</title>
		<author>
			<persName><forename type="first">S</forename><surname>Nidhra</surname></persName>
		</author>
		<idno type="DOI">10.5121/ijesa.2012.2204</idno>
	</analytic>
	<monogr>
		<title level="j">International Journal of Embedded Systems and Applications</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="29" to="50" />
			<date type="published" when="2012">06/30 2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Software Certification of Safety-Critical Avionic Systems: DO-178C and Its Impacts</title>
		<author>
			<persName><forename type="first">W</forename><surname>Youn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Hong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Oh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Ahn</surname></persName>
		</author>
		<idno type="DOI">10.1109/MAES.2014.140109</idno>
	</analytic>
	<monogr>
		<title level="j">Aerospace and Electronic Systems Magazine, IEEE</title>
		<imprint>
			<biblScope unit="volume">30</biblScope>
			<biblScope unit="page" from="4" to="13" />
			<date type="published" when="2015-01-04">04/01 2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Effect of code coverage on software reliability measurement</title>
		<author>
			<persName><forename type="first">M.-H</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lyu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Wong</surname></persName>
		</author>
		<idno type="DOI">10.1109/24.963124</idno>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on</title>
		<imprint>
			<biblScope unit="volume">50</biblScope>
			<biblScope unit="page" from="165" to="170" />
			<date type="published" when="2001-01-07">07/01 2001</date>
		</imprint>
	</monogr>
	<note>Reliability</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">How does combinatorial testing perform in the real world: an empirical study</title>
		<author>
			<persName><forename type="first">L</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Wong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kuhn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kacker</surname></persName>
		</author>
		<idno type="DOI">10.1007/s10664-019-09799-2</idno>
	</analytic>
	<monogr>
		<title level="j">Empirical Software Engineering</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="page" from="7" to="8" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Introduction to Combinatorial Testing</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">R</forename><surname>Kuhn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">N</forename><surname>Kacker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Lei</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Chapman &amp; Hall/CRC Innovations in Software Engineering and Software Development Series</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Francis</forename><surname>Taylor</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Multiple Black Hole Inspired Meta-Heuristic Searching Optimization for Combinatorial Testing</title>
		<author>
			<persName><forename type="first">H</forename><surname>Al-Sammarraie</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Jawawi</surname></persName>
		</author>
		<idno type="DOI">10.1109/ACCESS.2020.2973696</idno>
	</analytic>
	<monogr>
		<title level="j">IEEE Access</title>
		<imprint>
			<biblScope unit="page" from="1" to="1" />
			<date type="published" when="2020-02-13">02/13 2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">IPOG: A general strategy for T-way software testing</title>
		<author>
			<persName><forename type="first">R</forename><surname>Lei</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kacker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Kuhn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Okun</surname></persName>
		</author>
		<author>
			<persName><surname>Lawrence</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="549" to="556" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A Survey of Combinatorial Testing</title>
		<author>
			<persName><forename type="first">C</forename><surname>Nie</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Leung</surname></persName>
		</author>
		<idno type="DOI">10.1145/1883612.1883618</idno>
	</analytic>
	<monogr>
		<title level="j">ACM Comput. Surv</title>
		<imprint>
			<biblScope unit="volume">43</biblScope>
			<biblScope unit="issue">11</biblScope>
			<date type="published" when="2011-01-01">01/01 2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Black hole: A new heuristic optimization approach for data clustering</title>
		<author>
			<persName><forename type="first">A</forename><surname>Hatamlou</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.ins.2012.08.023</idno>
	</analytic>
	<monogr>
		<title level="j">Information Sciences</title>
		<imprint>
			<biblScope unit="volume">222</biblScope>
			<biblScope unit="page" from="175" to="184" />
			<date type="published" when="2013-01">02/01 2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">T-Way Strategies and Its Applications for Combinatorial Testing</title>
		<author>
			<persName><forename type="first">K</forename><surname>Zamli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal of New Computer Architectures and their Applications (IJNCAA)</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="1" to="2011" />
			<date>01/</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">The Generation of Optimized Test Data: Preliminary Analysis of a Systematic Mapping Study</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">Y</forename><surname>Ulutas</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title level="m" type="main">Generating Test Data for Structural Testing Based on Ant Colony Optimization</title>
		<author>
			<persName><forename type="first">C</forename><surname>Mao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Chen</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="98" to="101" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">An automated framework for structural test-data generation</title>
		<author>
			<persName><forename type="first">N</forename><surname>Tracey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Clark</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Mander</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mcdermid</surname></persName>
		</author>
		<idno type="DOI">10.1109/ASE.1998.732680</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239)</title>
				<meeting>13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239)</meeting>
		<imprint>
			<date>Oct. 1998 1998</date>
			<biblScope unit="page" from="285" to="288" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title level="m" type="main">Enhanced Genetic Algorithm for MC/DC test data generation</title>
		<author>
			<persName><forename type="first">A</forename><surname>El-Serafy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">El</forename><surname>Sayed</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Salama</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Wahba</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="1" to="8" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Software testing method based on improved simulated annealing algorithm</title>
		<author>
			<persName><forename type="first">K</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Zhang</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="418" to="421" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Swarm Intelligence-Based Test Data Generation for Structural Testing</title>
		<author>
			<persName><forename type="first">C</forename><surname>Mao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Chen</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Solving optimization problem using black hole algorithm</title>
		<author>
			<persName><forename type="first">M</forename><surname>Farahmandian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hatamlou</surname></persName>
		</author>
		<idno type="DOI">10.14419/jacst.v4i1.4094</idno>
	</analytic>
	<monogr>
		<title level="j">Journal of Advanced Computer Science &amp; Technology</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page" from="12" to="25" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">The many definitions of a black hole</title>
		<author>
			<persName><forename type="first">E</forename><surname>Curiel</surname></persName>
		</author>
		<idno type="DOI">10.1038/s41550-018-0602-1</idno>
	</analytic>
	<monogr>
		<title level="j">Nature Astronomy</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="page" from="1" to="08" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<author>
			<persName><forename type="first">E.-G</forename><surname>Talbi</surname></persName>
		</author>
		<title level="m">Metaheuristics: From Design to Implementation</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

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