<?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">Test Case Migration: A Reference Process Model and its Instantiation in an Industrial Context</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ivan</forename><surname>Jovanovikj</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Software Innovation Lab</orgName>
								<orgName type="institution">Paderborn University</orgName>
								<address>
									<addrLine>Zukunftsmeile 1</addrLine>
									<postCode>33102</postCode>
									<settlement>Paderborn</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Enes</forename><surname>Yigitbas</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Software Innovation Lab</orgName>
								<orgName type="institution">Paderborn University</orgName>
								<address>
									<addrLine>Zukunftsmeile 1</addrLine>
									<postCode>33102</postCode>
									<settlement>Paderborn</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Stefan</forename><surname>Sauer</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Software Innovation Lab</orgName>
								<orgName type="institution">Paderborn University</orgName>
								<address>
									<addrLine>Zukunftsmeile 1</addrLine>
									<postCode>33102</postCode>
									<settlement>Paderborn</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Test Case Migration: A Reference Process Model and its Instantiation in an Industrial Context</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B953A96473FE8CCC942745D817C5B576</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T04:52+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>software migration</term>
					<term>reengineering</term>
					<term>model-driven testing</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In the context of software migration, existing test cases represent important assets which can be reused for migration validation. Doing so, one can save time as well as costs by avoiding design of new test cases. However, migration of test cases is a quite challenging task due to the size of the test case set and often missing conformity in the structure of the test cases. Moreover, the test cases are implemented in the same or a compatible technology as the software system they are testing, so they have to follow somehow the migration of the system. To overcome this complex task, we propose a reference process model which supports systematic test case migration during software migration projects. Our reference process model for test case migration encompasses the phases reverse engineering, restructuring, and forward engineering. An instantiation of our reference process model is presented based on an industrial case study.</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>Software migration is a well-established method for transferring software systems into new environments without changing their functionality. For instance, legacy software systems which are technologically obsolete, but still valuable for ongoing business, can be migrated into a new environment <ref type="bibr" target="#b0">[Bi99]</ref>.</p><p>In this context, software testing plays an important role as it verifies whether the main requirement, the preservation of the functionality, is fulfilled. Reusing existing test cases can be beneficial not just from economical perspective, as the expensive and time consuming test design is avoided <ref type="bibr" target="#b25">[Sn99]</ref>, but also from practical perspective: the existing test cases contain valuable information about the functionality of the original system. However, a direct reuse of existing test case is not always possible in real world migration projects, due to system changes as well as the differences in the source and the target environments. As test cases are coupled with the system they are testing, the system changes need to be detected, understood and then reflected on the test cases to facilitate reuse. This is a quite challenging task in various migration scenarios, because of the size of the test case set which sometimes is measured in tens of thousands of test cases and the missing conformity in the test case structure <ref type="bibr" target="#b16">[JGY16]</ref>. Hence, first of all, a new migration method should be able to deal with the structural complexity of the test cases. Then, it should also provide an easy way to restructure the test cases and reflect the relevant system changes. Last but not least, the migrated test cases should be appropriate for the target environment, i.e., the test cases have to be re-designed for the target environment <ref type="bibr" target="#b12">[Gr16]</ref>.</p><p>The Model-Driven Engineering (MDE) software development methodology has been established to deal with the increasing complexity of today's software systems by focusing on creating and exploiting domain models. The Model-Driven Architecture (MDA) initiative, proposed by Object Management Group (OMG), puts the MDE idea in action, and clearly separates the business logic from implementation by defining software models at different levels of abstraction: The computation independent model (CIM) layer, platform-independent model (PIM) layer and platform-specific model layer (PSM).</p><p>Software migration approaches that follow the MDA principles are known as model-driven software migration (MDSM) approaches <ref type="bibr" target="#b8">[Fu12]</ref>. Generally speaking, software migration can be seen as a transformation of the system which is done by enacting a software transformation method, which is an instance of the well-known horseshoe model <ref type="bibr" target="#b21">[KWC98]</ref>. Therefrom, software migration is some kind of software reengineering, which according to <ref type="bibr" target="#b3">[CC90]</ref> is defined as "examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new form". In general, software reengineering consists of three consecutive phases: reverse engineering, restructuring, and forward engineering. Software testing which relies on the MDA principles is known as model-driven testing <ref type="bibr" target="#b13">[HL03,</ref><ref type="bibr" target="#b5">EGL06]</ref>. Similarly to software migration, test case migration can be seen as a transformation of test cases implemented for a specific source technology to test cases implemented for a specific target technology.</p><p>Following the idea of model-driven software migration, we present a novel reference process model which supports systematic test case migration during software migration projects. Our proposed reference process model encompasses the phases Reverse Engineering, Restructuring, and Forward Engineering (Figure <ref type="figure" target="#fig_0">1</ref>). An instantiation of our reference process model is presented based on an industrial case study which illustrates the applicability of our reference process.</p><p>The structure of the rest of the paper is as follows: In the next section 2, we present our reference process model for test case migration. The applicability of our reference process model is shown in section 3 based on an industrial case study. In section 4, we briefly discuss the related work and at the end, section 5 concludes the work and gives an outlook on future work. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Reference Process Model for Test Case Migration</head><p>In this section, we present the reference process for test case reengineering as enabler for model-driven test case migration. In general, as shown in Figure <ref type="figure" target="#fig_0">1</ref>, our reference process comprises the main reengineering phases: Reverse engineering, Restructuring, and Forward Engineering <ref type="bibr" target="#b3">[CC90]</ref>. Each phase consists of a set of activities and corresponding artifacts in terms of textual artifacts and models on different levels of abstraction. Here, we introduce the reference process represented as a BPMN model (Figure <ref type="figure" target="#fig_1">2</ref>) and in the next section we come up with a concrete instantiation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Artefacts</head><p>Artefacts are constituting parts of each transformation process. In Figure <ref type="figure" target="#fig_1">2</ref>, the artefacts are represented as data objects. An artefact can either be a textual artefact, e.g., a test code, or a model. Regarding to the abstraction level, each artefact belongs to one of the three layers: System Layer, Platform-Specific Layer, and Platform-Independent Layer.</p><p>On the System Layer, the textual artifacts representing test code and models of the test code (Model of the Test Code (original) and Model of the Test Code (migrated)) are placed. Test Code (original/migrated) can be either the test cases, implemented in a specific testing framework, e.g. jUnit2 or MSUnit3, test configuration scripts or a manually implemented additional test framework. If the test cases depend on these artifacts, they also have to be considered and eventually migrated along with the test cases. Model of the Test Code (original/migrated) is an AST (Abstract Syntax Tree) representation of the test code depending on the particular language of the original or the target environment.</p><p>On Platform-Specific Layer, technology-specific test concepts are used to represent the test cases for both the source and the target environment. The Model of Executable Tests (Original/Target) is considered as platform-specific as it represents the executable test cases  Testing Profile (UTP) or Test Description Language (TDL) are used. The System Behavior Model comes at the highest level of abstraction and it is a compact representation of the expected system's behavior usually represented as UML activity or sequence diagrams.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Activities</head><p>Activities in the test case reengineering process model produce or consume appropriate artifacts. These activities can be distinguished by the reengineering phase they are belonging to. For this purpose, we rely on the classification defined by <ref type="bibr" target="#b3">[CC90]</ref>, who define the reengineering as a process constituted of three phases: Reverse Engineering, Restructuring, and Forward Engineering. In Figure <ref type="figure" target="#fig_1">2</ref>, all activities are represented as BPMN tasks.</p><p>Reverse Engineering is according to <ref type="bibr" target="#b3">[CC90]</ref> the "process of analyzing a subject system to create representations of the system in another form or on a higher level of abstraction". Similarly, seen from software testing perspective, we define reverse engineering as a process of analyzing test cases to create representations of the test cases in another form or on a higher level of abstraction, e.g., by using test models. In general, reverse engineering can be seen as a combination of Model Discovery and Model Understanding <ref type="bibr" target="#b2">[Br10]</ref>. Restructuring, according to <ref type="bibr" target="#b3">[CC90]</ref>, is "the transformation from one representation form to another at the same relative abstraction level, while preserving the subject system's external behavior (functionality and semantics)". In our case, we define test restructuring as the transformation from one representation to another at the same relative abstraction level, while preserving the ßemanticsöf the tests. We use "semantics" to denote the functionality of the system being checked by the tests. This activity can be applied on the System Behavior Model as well as on the Model of Abstract Test Cases. In Figure <ref type="figure" target="#fig_1">2</ref>, we indicate Restructuring as "loop" symbols on the artifacts they are applicable on. The particular actions during Restructuring are defined by the target testing environment. But, Restructuring may also be influenced by the changes that happen in the system migration. Those system changes that are relevant for the tests have to be considered and covered by the Restructuring activity.</p><p>Language Transformation is a direct mapping between the Models of the Test Code. More precisely, it is actually a mapping between the programming languages of the source and target testing environment. Framework Transformation is performed on a higher abstraction level and defines a direct mapping between two testing frameworks, i.e., a mapping between the test concepts inside the original an the target testing framework. In Enrichment, one can insert an additional information to the tests by using annotations. This activity is applicable to various models, e.g., Model of Executable Tests, Model of Abstract Tests or System Behavior Model.</p><p>The XOR-Gateways shown in Figure <ref type="figure" target="#fig_1">2</ref>, illustrate the flexibility of the reengineering process and its applicability in different migration contexts. For example, in a concrete migration scenario, as shown in the next section, one can decide to perform Framework Transformation, and not Language Transformation. This implies that after Model Discovery, on the first decision node, a Test Case Understanding has to be chosen.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Case Study: An Instantiation of the Reference Process Model in an Industrial Context</head><p>Our reference reengineering process was applied in an industrial project which dealt with migration of parts of the well-known Eclipse Modeling Framework (EMF)6 along with the To support the migration process, we developed two Eclipse plug-ins: TestCase2TestModel and TestModel2TestCase. The TestCase2TestModel plug-in supports the reverse engineering activities by using JDT for parsing and model-to-model transformation. The forward engineering and restructuring activities, are supported by the TestModel2TestCase plug-in which is a test code generator written using Xtend, resulting at the end in MSUnit test code.</p><p>In total, 92% of the 4000 existing jUnit test cases were migrated.</p><p>It is an open question if the migration of the test cases can further be automatized. 8% of the OCL test cases were not migrated automatically, because these are regression tests that have an irregular structure which complicates an automation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Related Work</head><p>Focussing on the topic of model-driven test case migration, different research areas like model-driven testing, test case reengineering, test mining and software migration have to be analyzed.</p><p>Previous research in the area of model-driven testing already presented some proved methods that address the automation of the test case generation in a quite efficient way. In the work presented in <ref type="bibr" target="#b13">[HL03]</ref>, the authors aim to benefit from the separation of PIMs and PSMs in the generation and execution of tests by redefining the classical model-based tasks. Dai <ref type="bibr" target="#b4">[Da04]</ref> proposes a model-driven testing methodology which takes as input UML system models and transforms them to test-specific models as instances of the UML Testing Profile. Javed et al. <ref type="bibr" target="#b20">[JSW07]</ref> propose a generic method for model-driven testing that relies on an xUnit platform independent model. Lamancha et al. <ref type="bibr" target="#b22">[LA09]</ref> propose also a model-driven testing method that relies on UML Testing Profile. Moreover, they present concrete transformations using the QVT transformation language. All of this methods are related to our work as they address the forward engineering phase of our reference process model.</p><p>Regarding the reverse engineering side, we have identified also some existing work in the area known as test case reengineering. employing MDE techniques to automate the reverse engineering and forward engineering phases. From our point of view, it is the most interesting project as they also advocate migration of the test cases in a model-driven way, i.e., in a similar way the system has been migrated, thus reusing, above all, the developed tools. Our work differs in that way, that we propose a systematic test case migration reference process model seen from software testing perspective.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion and Future Work</head><p>In this paper, we present a novel reference process model for test case migration during software migration projects. Our approach supports model-driven test case migration through a systematic description of relevant reengineering activities represented in BPMN. It comprises the reengineering phases Reverse Engineering, Restructuring, and Forward Engineering as well as artefacts on different levels of abstraction specific for software testing. The proposed reference process model is a generic model with high flexibility and can be used in different software migration scenarios to support the model-driven migration of test cases. This is shown by an instantiation of our reference process model based on an industrial case study where thousand of test cases were migrated from jUnit to MSUnit, most of them completely automatic. In future work, we intend to further extend our reference process model based on the idea of situational method engineering. This way, we plan to systematically cover different test case transformation methods suitable for different migration contexts.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 :</head><label>1</label><figDesc>Fig. 1: General Phases of the Test Case Migration Process</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 :</head><label>2</label><figDesc>Fig. 2: Reference Process Model for Test Case Migration</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Restructuring Forward Engineering Reverse Engineering Model Discovery Test Abstraction</head><label></label><figDesc></figDesc><table><row><cell></cell><cell></cell><cell></cell><cell></cell><cell cols="2">Enrichment/</cell></row><row><cell></cell><cell></cell><cell cols="2">System Behaviour</cell><cell cols="2">Restructuring</cell></row><row><cell>Recovery Behaviour System</cell><cell></cell><cell>Model</cell><cell></cell><cell cols="2">(optional)</cell><cell>Derivation Abstract Test</cell></row><row><cell></cell><cell></cell><cell>Model of the</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell>Abstract Tests</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>Test</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>Concretization</cell></row><row><cell></cell><cell></cell><cell>Enrichment</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell>(optional)</cell><cell></cell><cell></cell></row><row><cell></cell><cell>Model of the</cell><cell></cell><cell></cell><cell cols="2">Model of the</cell></row><row><cell></cell><cell>Executable Tests</cell><cell></cell><cell></cell><cell cols="2">Executable Tests</cell></row><row><cell>Test Case Understanding</cell><cell>(original)</cell><cell cols="2">Framework Transformation</cell><cell cols="2">(migrated)</cell><cell>Test Concretization (to Test Code)</cell></row><row><cell></cell><cell>Model of the</cell><cell></cell><cell></cell><cell cols="2">Model of the</cell></row><row><cell></cell><cell>Test Code</cell><cell></cell><cell></cell><cell></cell><cell>Test Code</cell></row><row><cell></cell><cell>(original)</cell><cell></cell><cell></cell><cell cols="2">(migrated)</cell></row><row><cell></cell><cell></cell><cell>Language</cell><cell></cell><cell></cell><cell>Code</cell></row><row><cell></cell><cell></cell><cell cols="2">Transformation</cell><cell></cell><cell>Generation</cell></row><row><cell></cell><cell>Test Code</cell><cell></cell><cell></cell><cell></cell><cell>Test Code</cell></row><row><cell></cell><cell>(original)</cell><cell></cell><cell></cell><cell></cell><cell>(migrated)</cell></row><row><cell></cell><cell>Textual Artefact</cell><cell></cell><cell></cell><cell>Model</cell></row><row><cell></cell><cell cols="2">System Layer</cell><cell cols="2">Platform-Specific Layer</cell><cell>Platform-Independent Layer</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Artefact Type: Abstraction Level:</head><label></label><figDesc></figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head></head><label></label><figDesc>System Behavior Recovery activity is applied in order to obtain the highest possible level of abstraction defined by our reengineering process, the System Behavior Model. It is a compact representation of the expected behavior of the system. For all of the previously mentioned model-to-model transformations, transformation languages like QVT4 or Java Development Tools (JDT)5 can be used. CC90]. In the testing domain, we define this as a process of moving of highlevel test abstractions and logical implementation-independent design to the physical implementation of the test cases. The Forward Engineering phase can be seen as Model-Driven Testing<ref type="bibr" target="#b13">[HL03,</ref><ref type="bibr" target="#b5">EGL06]</ref> as the test models are used as input for a chain of automated transformations, which at the end provides the test code. The Abstract Tests Derivation activity gets as input the System Behavior Model and generates the Model of Abstract Test Cases. Next, by applying Test Concretization, a Model of Executable Test Cases is obtained. The Test Code Generation activity, takes this platform-specific model and in a model-to-text transformation, test code of the migrated test cases is obtained.</figDesc><table><row><cell>system-[</cell></row><row><cell>Forward Engineering is "the traditional process of moving from high-level abstractions and logical, implementation-independent designs to the physical implementation of a</cell></row></table><note>ModelDiscovery is an automatic text-to-model transformation activity which relies on parsers to perform syntactical analysis. As a result, a model in terms of AST of the test case source code is produced. Model Understanding is a model-to-model transformation activity, or a chain of such activities, which take the initial model and apply semantic mappings in order to generate a derived model of a higher level of abstraction. In our reengineering process, Model Understanding comprises three sub-activities. Firstly, Test Case Understanding takes the initial models and explores them by navigating through their structure to identify test relevant concepts like test suite, test case or assertion. Then, in a model-to-model transformation step, a test model of executable test cases is obtained. This model is specific to a particular testing technology (e.g., jUnit, MSUnit). Next, by applying the Test Abstraction activity, a model-to-model transformation as well, a model of the abstract test cases is obtained. This model is a platform-independent representation of the test cases, thus independent of any particular testing technology. As modeling languages, usually UML Testing Profile (U2TP) or Test Description Language (TDL) are used. Finally, the</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head></head><label></label><figDesc>Hungar et al. [Hu03]  extract models out of test cases by means of automata learning. In<ref type="bibr" target="#b15">[Jä09]</ref>, test models are synthesized from test cases by threating all test cases as a linear model and merging the corresponding states. The work of Werner et al.<ref type="bibr" target="#b26">[WG11]</ref> goes in the similar direction and constructs trace graphs out of test cases to represent the system behavior.The importance of reusing test cases can be observed in various previous software migration projects where effort has been made to enable test case reuse. In our previous work<ref type="bibr" target="#b18">[Jo16]</ref>, we have already presented the basic idea about reenginneering of legacy test cases. In the SOAMIG migration project<ref type="bibr" target="#b28">[Zi11]</ref> for example, existing test cases are used for the analysis of the legacy system. MoDisco<ref type="bibr" target="#b2">[Br10]</ref> is a generic and extensible framework devoted to Model-Driven Reverse Engineering. However, migration of test cases is still not addressed by this framework. The Artist<ref type="bibr" target="#b23">[MA14]</ref> project proposes model-based modernization, by</figDesc><table><row><cell>Test Case Migration 19</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_0">jUnit, http://junit.org/junit4/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_1">MSUnit, https://msdn.microsoft.com/en-us/library/hh598960.aspx</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_2">QVT -http://www.omg.org/spec/QVT/1.1/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_3">JDT -https://www.eclipse.org/jdt/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="16" xml:id="foot_4">Ivan Jovanovikj, Enes Yigitbas, Stefan Sauer</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">Eclipse Modeling Framework, https://www.eclipse.org/modeling/emf/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_6">Object Constraint Language, http://www.omg.org/spec/OCL/2.4/ Test Case Migration: A Reference Process Model and its Instantiation in an Industrial Context 159 18 Ivan Jovanovikj, Enes Yigitbas, Stefan Sauer</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="162" xml:id="foot_7"> Ivan Jovanovikj, Enes Yigitbas   </note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Object Constraint Language (OCL)7 from Java to C#. The main change performed by the system migration, besides switching from Java to C#, was to change from a Just-In-Time (JIT) compilation in the old system to an Ahead-Of-Time (AOT) compilation of OCL constraints in the migrated system. As OCL is a well-tested framework, the main goal was to reuse the existing OCL test cases to validate the migrated OCL functionality in the target environment. Consequently, in total 13 different test suites had to be migrated, each of them addressing different functional aspects of OCL.</p><p>According to this specific context information, we used our test case reengineering process model shown in Figure <ref type="figure">2</ref> to instantiate a suitable reengineering method. At the end, the migration method shown in Figure <ref type="figure">3</ref>  </p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">J</forename><surname>Bisbal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Lawless</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Bing</forename><surname>Wu</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Legacy Information Systems: Issues and Directions</title>
		<author>
			<persName><forename type="first">J</forename><surname>Grimson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="103" to="111" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Frédéric: MoDisco</title>
		<author>
			<persName><forename type="first">Hugo</forename><forename type="middle">;</forename><surname>Bruneliere</surname></persName>
		</author>
		<author>
			<persName><surname>Cabot</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Jordi</surname></persName>
		</author>
		<author>
			<persName><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Frédéric</surname></persName>
		</author>
		<author>
			<persName><surname>Madiot</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the IEEE/ACM international conference on Automated software engineering -ASE &apos;10</title>
				<meeting>the IEEE/ACM international conference on Automated software engineering -ASE &apos;10<address><addrLine>New York, New York, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page">173</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Reverse Engineering and Design Recovery: A Taxonomy</title>
		<author>
			<persName><forename type="first">Elliot J;</forename><surname>Chikofsky</surname></persName>
		</author>
		<author>
			<persName><surname>Cross</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>James</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="13" to="17" />
			<date type="published" when="1990">1990</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">Zhen</forename><surname>Dai</surname></persName>
		</author>
		<author>
			<persName><surname>Ru</surname></persName>
		</author>
		<title level="m">Model-Driven Testing with UML 2</title>
				<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
		<respStmt>
			<orgName>Computing Laboratory, University of Kent</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Gregor</forename><surname>Engels</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Baris</forename><surname>Güldali</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Towards Model-Driven Unit Testing</title>
		<author>
			<persName><forename type="first">Marc</forename><surname>Lohmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Models in Software Engineering</title>
				<meeting><address><addrLine>Berlin Heidelberg; Berlin, Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="182" to="192" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Andreas</forename><forename type="middle">;</forename><surname>Fuhr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andreas</forename><forename type="middle">;</forename><surname>Winter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Uwe</forename><forename type="middle">;</forename><surname>Erdmenger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Tassilo</forename><forename type="middle">;</forename><surname>Horn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Uwe</forename><forename type="middle">;</forename><surname>Kaiser</surname></persName>
		</author>
		<author>
			<persName><surname>Riediger</surname></persName>
		</author>
		<author>
			<persName><surname>Volker</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Model-Driven Software Migration -Process Model, Tool Support and Application</title>
		<author>
			<persName><forename type="first">Werner</forename><surname>Teppe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Migrating Legacy Applications: Challenges in Service Oriented Architecture and Cloud Computing Environments</title>
				<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="153" to="184" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">Test Case Migration: A Reference Process Model and its Instantiation in an Industrial Context</title>
		<imprint>
			<biblScope unit="page">161</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Ivan</forename><surname>Jovanovikj</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Enes</forename><surname>Yigitbas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Stefan</forename><surname>Sauer</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<author>
			<persName><forename type="first">Marvin</forename><surname>Grieger</surname></persName>
		</author>
		<title level="m">Model-Driven software modernization: concept-based engineering of situation-specific methods</title>
				<meeting><address><addrLine>Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
		<respStmt>
			<orgName>University of Paderborn</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Towards model-driven testing</title>
		<author>
			<persName><forename type="first">Reiko</forename><forename type="middle">;</forename><surname>Heckel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Marc</forename><surname>Lohmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electronic Notes in Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="volume">82</biblScope>
			<biblScope unit="page" from="37" to="47" />
			<date type="published" when="2003-09">9 2003</date>
			<publisher>Elsevier</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Test-Based Model Generation for Legacy Systems</title>
		<author>
			<persName><forename type="first">Hardi</forename><forename type="middle">;</forename><surname>Hungar</surname></persName>
		</author>
		<author>
			<persName><surname>Hungar</surname></persName>
		</author>
		<author>
			<persName><surname>Hardi; Margaria</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Tiziana</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Bernhard</forename><surname>Steffen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE International Test Conference (ITC)</title>
				<meeting><address><addrLine>Charlotte, NC</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">September 30 -October 2, 2:2003. 2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Synthesizing Test Models from Test Cases</title>
		<author>
			<persName><forename type="first">Antti</forename><forename type="middle">;</forename><surname>Jääskeläinen</surname></persName>
		</author>
		<author>
			<persName><surname>Kervinen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mika</forename><forename type="middle">;</forename><surname>Antti; Katara</surname></persName>
		</author>
		<author>
			<persName><surname>Valmari</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Antti</surname></persName>
		</author>
		<author>
			<persName><surname>Virtanen</surname></persName>
		</author>
		<author>
			<persName><surname>Heikki</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Hardware and Software: Verification and Testing: 4th International Haifa Verification Conference</title>
				<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="179" to="193" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Ivan</forename><surname>Jovanovikj</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Towards a Model-Driven Method for Reusing Test Cases in Software Migration Projects</title>
		<author>
			<persName><forename type="first">Marvin</forename><forename type="middle">;</forename><surname>Grieger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Enes</forename><surname>Yigitbas</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 18th Workshop Software-Reengineering &amp; Evolution (WSRE) &amp; 7th Workshop Design for Future (DFF)</title>
				<meeting>the 18th Workshop Software-Reengineering &amp; Evolution (WSRE) &amp; 7th Workshop Design for Future (DFF)</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="volume">32</biblScope>
			<biblScope unit="page" from="65" to="66" />
		</imprint>
	</monogr>
	<note>Softwaretechnik-Trends</note>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Ivan</forename><surname>Jovanovikj</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Reengineering of Legacy Test Cases: Problem Domain &amp; Scenarios. Softwaretechnik-Trends</title>
		<author>
			<persName><forename type="first">Marvin</forename><forename type="middle">;</forename><surname>Grieger</surname></persName>
		</author>
		<author>
			<persName><surname>Güldali</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Baris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alexander</forename><surname>Teetz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 3rd Workshop Model-Based and Model-Driven Software Modernization (MMSM)</title>
				<meeting>the 3rd Workshop Model-Based and Model-Driven Software Modernization (MMSM)</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="volume">36</biblScope>
			<biblScope unit="page" from="65" to="66" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Automated Generation of Test Cases Using Model-Driven Architecture</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">Z</forename><surname>Javed</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">A</forename><surname>Strooper</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">N</forename><surname>Watson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Second International Workshop on Automation of Software Test (AST &apos;07)</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page">5</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Requirements for integrating software architecture and reengineering models: CORUM II</title>
		<author>
			<persName><forename type="first">R</forename><surname>Kazman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">G</forename><surname>Woods</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">J</forename><surname>Carriere</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings Fifth Working Conference on Reverse Engineering. IEEE Comput. Soc</title>
				<meeting>Fifth Working Conference on Reverse Engineering. IEEE Comput. Soc</meeting>
		<imprint>
			<date type="published" when="1998">1998</date>
			<biblScope unit="page" from="154" to="163" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Et: Automated model-based testing using the UML testing profile and QVT</title>
		<author>
			<persName><forename type="first">Beatriz</forename><surname>Lamancha</surname></persName>
		</author>
		<author>
			<persName><surname>Pérez</surname></persName>
		</author>
		<author>
			<persName><surname>Al</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 6th International Workshop on Model-Driven Engineering, Verification and Validation</title>
				<meeting>the 6th International Workshop on Model-Driven Engineering, Verification and Validation</meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="1" to="10" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Et: Software modernization and cloudification using the ARTIST migration methodology and framework</title>
		<author>
			<persName><forename type="first">Andreas</forename><forename type="middle">;</forename><surname>Menychtas</surname></persName>
		</author>
		<author>
			<persName><surname>Al</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Scalable Computing: Practice and Experience</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page">7</biblScope>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<title level="m" type="main">XUnit test patterns : refactoring test code</title>
		<author>
			<persName><forename type="first">Gerard</forename><surname>Meszaros</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<publisher>Addison-Wesley</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Risks involved in reengineering projects</title>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">M</forename><surname>Sneed</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Sixth Working Conference on Reverse Engineering</title>
				<imprint>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="204" to="211" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Edith</forename><surname>Werner</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Model Reconstruction: Mining Test Cases</title>
		<author>
			<persName><forename type="first">Jens</forename><surname>Grabowski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Third International Conference on Advances in System Testing and Validation Lifecycle</title>
				<meeting><address><addrLine>VALID</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="10" to="2011" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">The SOAMIG Process Model in Industrial Applications</title>
		<author>
			<persName><forename type="first">C</forename><surname>Zillmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Winter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Herget</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Teppe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Theurer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Fuhr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Horn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Riediger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Erdmenger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Kaiser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Uhlig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zimmermann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">2011 15th European Conference on Software Maintenance and Reengineering</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page">3</biblScope>
		</imprint>
	</monogr>
</biblStruct>

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