@inproceedings {24069,
	title = {Empirical Evaluation of UML Modeling Tools{\textendash}A Controlled Experiment},
	journal = {European Conference on Modelling Foundations and Applications},
	volume = {11},
	year = {2015},
	pages = {33-44},
	publisher = {Springer},
	address = {L{\textquoteright}Aquila, Italy},
	abstract = {Model driven software engineering (MDSE) has shown to provide mark improvement in productivity and quality of software products. UML is a standard modeling language that is widely used in the industry to support MDSE. To provide tool support for MDSE, a large number of UML modeling tools are available, ranging from open-source tools to commercial tools with high price tag. A common decision faced while applying UML in practice is the selection of an appropriate tool for modeling. In this paper we conduct a study to compare three of the well-known modeling tools: IBM Rational Software Architect (RSA), MagicDraw, and Papyrus. In this study we conducted an ex- periment with undergraduate and graduate students. The goal is to compare the productivity of the software engineers while modeling with the tools. We meas- ure the productivity in terms of modeling effort required to correctly complete a task, learnability, time and number of clicks required, and memory load re- quired for the software engineer to complete a task. Our results show that Ma- gicDraw performed significantly better in terms of learnability, memory load, and completeness of tasks. In terms of time and number of clicks, IBM RSA was significantly better while modeling class diagrams and state machines when compared to Papyrus. However no single tool outperformed others in all the modeling tasks with respect to time and number of clicks.\&nbsp;},
	keywords = {Controlled experiment, empirical software engineering, Model driven software engineering, Modeling tools, UML},
	author = {Safdar Aqeel {Safdar}},
	editor = {Muhammad Zohaib {Iqbal}}
}
@article {23546,
	title = {Improving the Performance of OCL Constraint Solving with Novel Heuristics for Logical Operations: A Search-Based Approach},
	journal = {The Empirical Software Engineering Journal (EMSE)},
	year = {2015},
	pages = {1-44},
	publisher = {Springer},
	author = {Ali, Shaukat and Muhammad Zohaib {Iqbal} and Khalid, Maham and Arcuri, Andrea}
}
@article {Simula.simula.2514,
	title = {Applying UML/MARTE on Industrial Projects: Challenges, Experiences, and Guidelines},
	journal = {Software and Systems Modeling},
	number = {1619-1366},
	year = {2014},
	month = {March 2014},
	pages = {1-19},
	publisher = {Springer Publishing Company},
	abstract = {MARTE (Modeling and Analysis of Real-Time and Embedded Systems) is a UML profile, which has been developed to model concepts specific to Real-Time and Embedded Systems (RTES). In the last five years, we have applied UML/MARTE to three distinct industrial problems in three industry sectors: architecture modeling and configuration of large-scale and highly configurable integrated control systems, model-based robustness testing of communication-intensive systems, and model-based environment simulator generation of large-scale RTES for testing. In this paper, we report on our experience of solving these problems by applying UML/MARTE on four industrial case studies. We highlight the challenges we faced with respect to the industrial adoption of MARTE. Based on our combined experience, we derive a framework to guide practitioners for future applications of UML/MARTE in an industrial context. The framework provides a set of detailed guidelines that help reduce the gap between the modeling notations and real-world industrial application needs.},
	author = {Muhammad Zohaib {Iqbal} and Ali, Shaukat and Yue, Tao and Briand, Lionel Claude}
}
@inproceedings {Simula.simula.2860,
	title = {A Heuristic-Based Approach to Refactor Crosscutting Behaviors in UML State Machines},
	journal = {30th International Conference on Software Maintenance and Evolution (ICSME)},
	year = {2014},
	publisher = {IEEE Computer Society},
	type = {1},
	abstract = {UML state machines are commonly used to model the state-based behavior of communication and control systems to support various activities such as test cases and code generation. Standard UML state machines are well suited to model functional behavior; however extra-functional behavior such as robustness and security can also be directly modeled on them, but this often results in cluttered models since extra-functional behaviors are often crosscutting. Such modeling crosscutting behavior directly on UML state machines is a common practice. Aspect-Oriented Modeling (AOM) allows systematically modeling of crosscutting behavior and has shown to provide a scalable solution in the recent years. However, due to lack of familiarity of AOM in both academic and industry, extra-functional behavior is often modeled directly on UML state machines and as results those UML state machines are difficult to read and maintain. To improve the readability of already developed UML state machines and ease maintenance, we propose a set of heuristics, derived from two industrial cases studies, implemented in a tool to automatically identify commonly observed crosscutting behaviors in UML state machines and refactor them as Aspect State Machines. Such refactoring makes the state machines easier to maintain and comprehend. We present the results of applying our proposed heuristics to the existing UML state machines of two industrial case studies developed for model-based testing.},
	keywords = {Conference},
	author = {Muhammad Uzair {Khan} and Muhammad Zohaib {Iqbal} and Ali, Shaukat},
	editor = {M{\"u}ller, Hausi}
}
@inproceedings {Simula.simula.2604,
	title = {Improved Heuristics for Solving OCL Constraints Using Search Algorithms},
	journal = {ACM Genetic and Evolutionary Computation Conference (GECCO)},
	year = {2014},
	publisher = {ACM},
	type = {Conference},
	address = {.},
	abstract = {The Object Constraint Language (OCL) is the de-facto standard for specifying constraints on Unified Modeling Language (UML) models. The specified constraints can be used for various purposes including verification, and model-based testing (e.g., test data generation). Efficiently solving OCL constraints is one of the key requirements for the practical use of OCL. Keeping this in mind, we propose an improvement in existing heuristics to solve OCL constraints using search algorithms. We evaluate our improved heuristics using two empirical studies with three search algorithms: Alternating Variable Method (AVM), (1+1) Evolutionary Algorithm (EA), and a Genetic Algorithm (GA) and used Random Search (RS) as a comparison baseline. The first empirical study was conducted using carefully designed artificial problems (constraints) to assess each individual heuristics. The second empirical study is based on an industrial case study provided by Cisco about model-based testing of Videoconferencing Systems. The results of both empirical evaluations reveal that the effectiveness of the search algorithms, measured in terms of time to solve the OCL constraints to generate data, is significantly improved when using the novel heuristics presented in this paper. In particular, our experiments show that (1+1) EA with the novel heuristics has the highest success rate among all the analyzed algorithms, as it requires the least number of iterations to solve constraints.},
	keywords = {Conference},
	author = {Ali, Shaukat and Muhammad Zohaib {Iqbal} and Arcuri, Andrea}
}
@inproceedings {Simula.simula.2820,
	title = {Insights on the Use of OCL in Diverse Industrial Applications},
	journal = {8th System Analysis and Modelling Conference (SAM{\textquoteright}14)},
	year = {2014},
	publisher = {Springer},
	type = {Conference},
	address = {Switzerland},
	abstract = {The Object Constraint Language (OCL) is a widely accepted language, standardized by OMG, for specifying constraints at various meta levels (e.g., meta-models and models). Despite its wide acceptance, there is a lack of understanding about terminology and purposes for which OCL can be used. In this paper, we aim to reduce this gap and provide guidance for applying OCL in practical contexts and we report our experience of applying OCL for different industrial projects in diverse domains: Communications and Control, Oil and Gas production, Energy Equipment and Services, and Recycling. Based on our experience, first, we unify the commonly used terminology in the literature for applying OCL in different ways for addressing diverse industrial problems. Second, we report the key results of the industrial application of OCL. Finally, we provide guidance to researchers and practitioners for choosing an appropriate meta-level and purpose for their specific industrial problem at hand.},
	keywords = {Conference},
	author = {Ali, Shaukat and Yue, Tao and Muhammad Zohaib {Iqbal} and Rajwinder Kaur {Panesar-Walawege}},
	editor = {Amyot, Daniel and Pau Fonseca i. {Casas} and Mussbacher, Gunter}
}
@article {Simula.simula.1922,
	title = {Environment Modeling and Simulation for Automated Testing of Soft Real-Time Embedded Software},
	journal = {Software and Systems Modeling},
	number = {online},
	year = {2013},
	publisher = {Springer-Verlag},
	abstract = {Given the challenges of testing at the system level, only a fully automated approach can really scale up to industrial real-time embedded systems (RTES). Our goal is to provide a practical approach to the model-based testing of RTES by allowing system testers, who are often not familiar with the system{\textquoteright}s design but are application domain experts, to model the system environment in such a way as to enable its black-box test automation. Environment models can support the automation of three tasks: the code generation of an environment simulator to enable testing on the development platform or without involving actual hardware, the selection of test cases, and the evaluation of their expected results (oracles). From a practical standpoint{\r u}le{1em}{1pt}}and such considerations are crucial for industrial adoption{\r u}le{1em}{1pt}}environment modeling should be based on modeling standards (1) that are at an adequate level of abstraction, (2) that software engineers are familiar with, and (3) that are well supported by commercial or open source tools. In this paper, we propose a precise environment modeling methodology fitting these requirements and discuss how these models can be used to generate environment simulators. The environment models are expressed using UML/MARTE and OCL, which are international standards for real-time systems and constraint modeling. The presented techniques are evaluated on a set of three artificial problems and on two industrial RTES.},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude}
}
@article {TestData,
	title = {Generating Test Data From OCL Constraints With Search Techniques},
	journal = {IEEE Transactions on Software Engineering},
	volume = {39},
	number = {10},
	year = {2013},
	publisher = {IEEE},
	abstract = {Model-based testing (MBT) aims at automated, scalable, and systematic testing solutions for complex industrial software systems. To increase chances of adoption in industrial contexts, software systems can be modeled using well-established standards such as the Unified Modeling Language (UML) and the Object Constraint Language (OCL). Given that test data generation is one of the major challenges to automate MBT, we focus on test data generation from OCL constraints in this paper. This endeavor is all the more challenging given the numerous OCL constructs and operations that are designed to facilite the definition of constraints. Though search-based software testing has been applied to test data generation for white-box testing (e.g., branch coverage), its application to the MBT of industrial software systems has been limited. In this paper, we propose a set of search heuristics targeted to OCL constraints to guide test data generation and automate MBT in industrial applications. We evaluate these heuristics for three search algorithms: Genetic Algorithm, (1+1) Evolutionary Algorithm, and Alternating Variable Method. We empirically evaluate our heuristics using complex artificial problems, followed by empirical analyses of the feasibility of our approach on one industrial system in the context of robustness testing. Our approach is also compared with the most widely referenced OCL solver (UMLtoCSP) in the literature and shows to be significantly more efficient.},
	author = {Ali, Shaukat and Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude}
}
@techreport {Simula.simula.1298,
	title = {Combining Search-Based and Adaptive Random Testing for Black-Box System Testing of Real-Time Embedded Systems},
	number = {2012-12},
	year = {2012},
	publisher = {Simula Research Laboratory},
	abstract = {Effective system testing of real-time embedded systems (RTES) requires a fully automated approach. One such black-box system testing approach is to use environment models to automatically generate test cases and test oracles along with an environment simulator to enable early testing of RTES. In this paper, we propose a hybrid strategy, which combines (1+1) Evolutionary Algorithm (EA) and Adaptive Random Testing (ART), to improve the overall performance of system testing that is obtained when using each single strategy in isolation. An empirical study is carried out on a number of artificial problems and one industrial case study. The novel strategy shows significant overall improvement in terms of fault detection compared to individual performances of both (1+1) EA and ART.},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude}
}
@inproceedings {Simula.simula.1474,
	title = {Combining Search-Based and Adaptive Random Testing Strategies for Environment Model-Based Testing of Real-Time Embedded Systems},
	journal = {Symposium on Search Based Software Engineering (SSBSE)},
	year = {2012},
	publisher = {Springer},
	type = {Conference},
	address = {Berlin Heidelberg},
	abstract = {Effective system testing of real-time embedded systems (RTES) requires a fully automated approach. One such black-box system testing approach is to use environment models to automatically generate test cases and test oracles along with an environment simulator to enable early testing of RTES. In this paper, we propose a hybrid strategy, which combines (1+1) Evolutionary Algorithm (EA) and Adaptive Random Testing (ART), to improve the overall performance of system testing that is obtained when using each single strategy in isolation. An empirical study is carried out on a number of artificial problems and one industrial case study. The novel strategy shows significant overall improvement in terms of fault detection compared to individual performances of both (1+1) EA and ART.},
	keywords = {Conference},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude},
	editor = {Fraser, Gordon and Susi, Angelo and Jerffeson Teixeira {de Souza}}
}
@techreport {Simula.simula.1144,
	title = {Empirical Investigation of Search Algorithms for Environment Model-Based Testing of Real-Time Embedded Software},
	number = {2012-01},
	year = {2012},
	publisher = {Simula Research Laboratory},
	abstract = {System testing of real-time embedded systems (RTES) is a challenging task and only a fully automated testing approach can scale up to the testing requirements of industrial RTES. One such approach, which offers the advantage for testing teams to be black-box, is to use environment models to automatically generate test cases and oracles and an environment simulator to enable earlier and more practical testing. In this paper, we propose novel heuristics for search-based, RTES system testing which are based on these environment models. We evaluate the fault detection effectiveness of two search-based algorithms, i.e., Genetic Algorithms and (1+1) Evolutionary Algorithm, when using these novel heuristics and their combinations. Preliminary experiments on 13 carefully selected, non-trivial artificial problems, show that, under certain conditions, these novel heuristics are effective at bringing the environment into a state exhibiting a system fault. The heuristic combination that showed the best overall performance on the artificial problems was applied on an industrial case study where it showed consistent results.},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel}
}
@inproceedings {Simula.simula.1274,
	title = {Empirical Investigation of Search Algorithms for Environment Model-Based Testing of Real-Time Embedded Software},
	journal = {International Symposium on Software Testing and Analysis (ISSTA), ACM},
	year = {2012},
	publisher = {ACM},
	type = {Conference},
	address = {New York, NY, USA},
	abstract = {System testing of real-time embedded systems (RTES) is a challenging task and only a fully automated testing approach can scale up to the testing requirements of industrial RTES. One such approach, which offers the advantage for testing teams to be black-box, is to use environment models to automatically generate test cases and oracles and an environment simulator to enable earlier and more practical testing. In this paper, we propose novel heuristics for search-based, RTES system testing which are based on these environment models. We evaluate the fault detection effectiveness of two search-based algorithms, i.e., Genetic Algorithms and (1+1) Evolutionary Algorithm, when using these novel heuristics and their combinations. Preliminary experiments on 13 carefully selected, non-trivial artificial problems, show that, under certain conditions, these novel heuristics are effective at bringing the environment into a state exhibiting a system fault. The heuristic combination that showed the best overall performance on the artificial problems was applied on an industrial case study where it showed consistent results.},
	keywords = {Conference},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude}
}
@techreport {Simula.simula.1546,
	title = {Empirically Evaluating Improved Heuristics for Test Data Generation From OCL Constraints Using Search Algorithms},
	number = {2012-17},
	year = {2012},
	publisher = {Simula Research Laboratory},
	abstract = {Efficiently generating test data is one of the key testing requirements of automated model-based test case generation. Keeping this in mind and driven by the needs of our industrial partners, we propose an improvement in heuristics that we previously defined to generate test data from OCL constraints using search algorithms. We evaluate our improved heuristics using two empirical studies with three search algorithms: Alternating Variable Method (AVM), (1+1) Evolutionary Algorithm (EA), and a Genetic Algorithm (GA). Furthermore, we used Random Search (RS) as a comparison baseline. The first empirical study was conducted using carefully designed artificial problems (constraints) to assess each individual heuristics. The second empirical study is based on an industrial case study provided by Cisco. The results of both empirical evaluations reveal that the effectiveness of the search algorithms, measured in terms of time to solve the OCL constraints to generate data, is significantly improved when using the novel heuristics presented in this paper. In particular, our experiments show that (1+1) EA with the novel heuristics has the highest success rate among all the analyzed algorithms, as it requires the least number of iterations to solve constraints to generate test data.},
	author = {Ali, Shaukat and Muhammad Zohaib {Iqbal} and Arcuri, Andrea}
}
@phdthesis {Simula.simula.1866,
	title = {Environment Model-Based System Testing of Real-Time Embedded Systems},
	year = {2012},
	school = {University of Oslo},
	type = {phd},
	abstract = {Real-time embedded systems (RTES) are part of a vast majority of computing devices available today. They are widely used in critical domains where high system dependability is required. These systems typically work in environments comprising of large numbers of interacting components. The interactions with the environment are often bound by time constraints. Missing such time deadlines, or missing them too often for soft real-time systems, can lead to serious failures resulting in threats to human life or the environment. There is usually a great number and variety of stimuli from the RTES environment with differing patterns of arrival times. Testing all possible sequences of stimuli is not feasible and only a fully automated testing approach can scale up to the testing requirements of industrial RTES. In this thesis, we take a black-box approach for system testing of RTES based on environment models. Our main motivation is to provide a practical approach to the model-based testing (MBT) of RTES. To do so, we enable system testers, who are often not familiar with the system design but are knowledgeable of the application domain, to model the environment using well-supported modeling standards, to enable test automation. Once the environment models are developed they can support the automation of three tasks: the code generation of an environment simulator to enable testing on the development platform, the selection of test cases, and the evaluation of their expected results (oracles). Given the above objectives, a first contribution of this thesis is a detailed environment modeling methodology that fits the practical needs for industrial adoption of a RTES system testing approach. The methodology is based on modeling standards (1) that are at an adequate level of abstraction, (2) that software engineers are familiar with, and (3) that are well supported by commercial or open source tools. The methodology uses the Unified Modeling Language (UML), the profile for Modeling and Analysis of Real-time Embedded Systems (MARTE), and the Object Constraint Language (OCL). We also provide extensions to UML and introduce a profile for modeling concepts that are specific to our context. The models capture only the details in the environment that are visible and relevant to the SUT, including the nominal behavior and failure behavior of environment components. The environment behavioral models also capture what we call {{\textquoteleft}}error states\&$\#$39; that should never be reached if the SUT is implemented correctly. The {{\textquoteleft}}error states\&$\#$39; act as oracles for the test cases. The environment modeling methodology is applied on two industrial case studies. The results show that the modeling notations selected suffice to model the RTES environments for our test automation. The experiences learned by applying UML/MARTE in industrial contexts are also summarized in the form of a framework, which can help practitioners in bridging the gap between the modeling standards and industrial adoption. A second contribution of this thesis is the definition of transformation rules for environment simulator generation. To convert environment models developed using UML state machines and class diagrams to their simulator code, we extend the well-known state pattern for our specific purpose and also resolve a number of UML semantic variation points. We evaluate the transformation rules by transforming models for five case studies, including two industrial case studies and use these models for testing. Our empirical evaluation based on the case studies shows that the developed rules are sufficient and that they are correct as far as fault detection is concerned. The automated simulator generation is expected to save a significant amount of effort during system testing. The third contribution of this thesis is an efficient approach to solve constraints on the environment models written using OCL. For this purpose we define a set of heuristics for search algorithms and empirically evaluate their effectiveness on an industrial case study. These heuristics play an important role in test case generation from environment models. Results of the empirical study suggest that even for the most difficult constraints, with research prototypes and no parallel computations, we obtain test data within 2.96 seconds on average. This is a significant improvement compared to an existing OCL solver, which was not able to solve the same constraints even after several hours of execution. The final contribution of the thesis is test case generation from environment models for black-box system testing of RTES. We conducted a number of experiments to investigate the effectiveness of testing algorithms, specifically, Genetic Algorithms (GA) and (1+1) Evolutionary Algorithm (EA), Adaptive Random Testing (ART), and Random Testing (RT) in our context. The goal of testing in our context is to reach an {{\textquoteleft}}error state\&$\#$39; of the environment with as few test case executions as possible. For search algorithms we provide and iteratively improve a fitness function for effective testing. The testing strategies are evaluated on an industrial case study and a number of artificial problems. On the industrial case study we were able to automatically find new, critical faults. Based on the results of our experiments, we propose a hybrid strategy, which combines the strengths of (1+1) EA and ART, to improve the overall performance of system testing that is obtained when using each single strategy in isolation. Results show that the hybrid strategy ii fares better and, unlike individual algorithms, its performance is not drastically affected by the characteristics of the environment models (i.e., low variance in results).},
	author = {Muhammad Zohaib {Iqbal}}
}
@inproceedings {Simula.simula.1472,
	title = {Experiences of Applying UML/MARTE on Three Industrial Projects},
	journal = {ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS)},
	volume = {7590},
	year = {2012},
	pages = {642-658},
	publisher = {Springer Berlin Heidelberg},
	type = {Conference},
	address = {Berlin Heidelberg},
	abstract = {MARTE (Modeling and Analysis of Real-Time and Embedded Systems) is a UML profile, which has been developed to model concepts specific to Real-Time and Embedded Systems (RTES). In previous years, we have applied UML/MARTE to three distinct industrial problems in various industry sectors: architecture modeling and configuration of large-scale and highly configurable integrated control systems, model-based robustness testing of communication-intensive systems, and model-based environment simulator generation of large-scale RTES for testing. In this paper, we report on our experiences of solving these problems by applying UML/MARTE on four industrial case studies. Based on our common experiences, we derive a framework to help practitioners for future applications of UML/MARTE. The framework provides a set of detailed guidelines on how to apply MARTE in industrial contexts and will help reduce the gap between the modeling standards and industrial needs.},
	doi = {10.1007/978-3-642-33666-9\_41},
	author = {Muhammad Zohaib {Iqbal} and Ali, Shaukat and Yue, Tao and Briand, Lionel Claude},
	editor = {Robert B. {France} and Kazmeier, J{\"u}rgen and Breu, Ruth and Atkinson, Colin}
}
@techreport {25297,
	title = {Experiences of Applying UML/MARTE on Three Industrial Projects},
	number = {2012-08},
	year = {2012},
	note = {This technical report is an early version of a published conference paper. The published version can be found here:https://www.simula.no/publications/experiences-applying-umlmarte-three-industrial-projects},
	publisher = {Simula Research Laboratory},
	author = {Muhammad Zohaib {Iqbal} and Ali, Shaukat and Yue, Tao and Briand, Lionel}
}
@techreport {Simula.simula.14,
	title = {Generating Test Data From OCL Constraints With Search Techniques},
	number = {2010-16},
	year = {2012},
	publisher = {Simula Research Laboratory},
	abstract = {Model-based testing (MBT) aims at automated, scalable, and systematic testing solutions for complex industrial software systems. To increase chances of adoption in industrial contexts, software systems should be modeled using well-established standards such as the Unified Modeling Language (UML) and Object Constraint Language (OCL). Given that test data generation is one of the major challenges to automate MBT, we focus on test data generation from OCL constraints in this paper. Though search-based software testing has been applied to test data generation for white-box testing (e.g., branch coverage), its application to the MBT of industrial software systems has been limited. In this paper, we propose a set of search heuristics targeted to OCL constraints to guide test data generation and automate MBT in industrial applications. These heuristics are used to develop an efficient OCL solver exclusively based on search. We evaluate these heuristics for search algorithms such as Genetic Algorithms, (1+1) Evolutionary Algorithm and Alternating Variable Method. We empirically evaluate our heuristics using complex artificial problems followed by empirical analyses to evaluate the feasibility of our approach on one industrial system. Our approach is compared with a downloadable, standard OCL solver and shows to be significantly more efficient and more widely applicable.},
	author = {Ali, Shaukat and Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude}
}
@techreport {25304,
	title = {Myths, Facts, and Misconceptions of OCL: Experiences from Diverse Industrial Applications},
	number = {2012-26},
	year = {2012},
	note = {This technical report is an early version of a published paper.},
	publisher = {Simula Research Laboratory},
	author = {Ali, Shaukat and Yue, Tao and Muhammad Zohaib {Iqbal} and Rajwinder Kaur {Panesar-Walawege}}
}
@techreport {Simula.simula.840,
	title = {Automated System Testing of Real-Time Embedded Systems Based on Environment Models},
	number = {2011-19},
	year = {2011},
	publisher = {Simula Research Laboratory},
	abstract = {Testing real-time embedded systems (RTES) is in many ways challenging. Thousands of test cases may need to be executed on an industrial RTES. Given the magnitude of testing at the system level, only a fully automated approach can really scale up to test in an industrial context. In this paper we take a blackbox approach and model the RTES environment using the UML/MARTE international modeling standards. Our main motivation is to provide a more practical approach to the model-based testing of RTES. To do so, we enable system testers, who are often not familiar with the system design but know the application domain well-enough, to model the environment, using well-supported modeling standards, to enable test automation. Environment models can support the automation of three tasks: the code generation of an environment simulator to enable testing on the development platform, the selection of test cases, and the evaluation of their expected results (oracles). In this paper, we focus on the second task (test case selection) and investigate four test automation strategies using inputs from UML/MARTE environment models: Random Testing (baseline), Adaptive Random Testing, and Search-Based Testing (using Genetic Algorithms and (1+1) Evolutionary Algorithm). Results on artificial problems and one industrial case study show that Adaptive Random Testing performs best and, more importantly, that our automated testing framework is effective in finding faults.},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel}
}
@techreport {Simula.simula.368,
	title = {Code Generation From UML/MARTE/OCL Environment Models to Support Automated System Testing of Real-Time Embedded Software},
	number = {2011-04, Version 2},
	year = {2011},
	publisher = {Simula Research Laboratory},
	abstract = {Given the challenges of testing at the system level, only a fully automated approach can really scale up to industrial real-time embedded systems (RTES). Our goal is to provide a practical approach to the model-based testing of RTES by allowing system testers, who are often not familiar with the system\&$\#$39;s design but are application domain experts, to model the system environment in such a way as to enable its black-box test automation. Environment models can support the automation of three tasks: the code generation of an environment simulator to enable testing on the development platform or without involving actual hardware, the selection of test cases, and the evaluation of their expected results (oracles). From a practical standpoint, such environment modeling should be based on modeling standards (1) that are at the right level of abstraction, (2) that software engineers are familiar with, and (3) that are well supported by commercial or open source tools. In this paper, we augment our previous works on environment modeling and test case selection by describing in detail our solution for the code generation of environment simulators from environment models expressed with UML/MARTE and OCL, which are international standards for real-time systems and constraint modeling. The presented techniques are evaluated on a set of three artificial problems and on two industrial RTES.},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel Claude}
}
@article {Simula.simula.86,
	title = {Random Testing: Theoretical Results and Practical Implications.},
	journal = {IEEE Transactions on Software Engineering},
	volume = {38},
	number = {2},
	year = {2011},
	pages = {258-277},
	publisher = {IEEE},
	abstract = {A substantial amount of work has shed light on whether random testing is actually a useful testing technique. Despite its simplicity, several successful real-world applications appear in the literature. Although it is not going to solve all possible testing problems, random testing is an essential tool in the hands of software testers. In this paper, we review and analyze the debate about random testing. Its benefits and drawbacks are discussed. Recent developments of more sophisticated random testing techniques are reviewed as well. Novel results addressing general questions about random testing are also presented, such as how long random testing needs on average to achieve testing targets (e.g., coverage), how does it scale and how likely is it to yield similar results if we re-run random testing on the same testing problem. Due to its simplicity that makes the mathematical analysis of random testing tractable, we provide precise and rigorous answers to these questions. Our theoretical results are backed up by simulations and we show how they can be applied to most types of software and testing criteria. In light of our results, we then assess the validity of empirical analyses reported in the literature. Results show that random testing is more effective and predictable than previously thought.},
	author = {Arcuri, Andrea and Muhammad Zohaib {Iqbal} and Briand, Lionel}
}
@inproceedings {Simula.simula.500,
	title = {A Search-Based OCL Constraint Solver for Model-Based Test Data Generation},
	journal = {Proceedings of the 11th International Conference On Quality Software (QSIC 2011)},
	year = {2011},
	pages = {41-50},
	publisher = {IEEE Computer Society},
	type = {Conference},
	abstract = {Model-based testing (MBT) aims at automated, scalable, and systematic testing solutions for complex industrial software systems. To increase chances of adoption in industrial contexts, software systems should be modeled using well-established standards such as the Unified Modeling Language (UML) and Object Constraint Language (OCL). Given that test data generation is one of the major challenges to automate MBT, this is the topic of this paper with a specific focus on test data generation from OCL constraints. Though search-based software testing (SBST) has been applied to test data generation for white-box testing (e.g., branch coverage), its application to the MBT of industrial software systems has been limited. In this paper, we propose a set of search heuristics based on OCL constraints to guide test data generation and automate MBT in industrial applications. These heuristics are used to develop an OCL solver exclusively based on search, in this particular case genetic algorithm and (1+1) EA. Empirical analyses to evaluate the feasibility of our approach are carried out on one industrial system.},
	isbn = {978-0-7695-4468-7},
	author = {Ali, Shaukat and Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel}
}
@inproceedings {Simula.approve.16,
	title = {Black-Box System Testing of Real-Time Embedded Systems Using Random and Search-Based Testing},
	journal = {22nd IFIP International Conference on Testing Software and Systems (ICTSS) - formerly TestCom/FATES},
	volume = {6435},
	year = {2010},
	publisher = {Springer},
	type = {Conference},
	abstract = {Testing real-time embedded systems (RTES) is in many ways challenging. Thousands of test cases can be potentially executed on an industrial RTES. Given the magnitude of testing at the system level, only a fully automated approach can really scale up to test industrial RTES. In this paper we take a black-box approach and model the RTES environment using the UML/- MARTE international standard. Our main motivation is to provide a more practical approach to the model-based testing of RTES by allowing system testers, who are often not familiar with the system design but know the application domain well-enough, to model the environment to enable test automation. Environment models can support the automation of three tasks: the code generation of an environment simulator, the selection of test cases, and the evaluation of their expected results (oracles). In this paper, we focus on the second task (test case selection) and investigate three test automation strategies using inputs from UML/MARTE environment models: Random Testing (baseline), Adaptive Random Testing, and Search-Based Testing (using Genetic Algorithms). Based on one industrial case study and three artificial systems, we show how, in general, no technique is generally better than the other. Which test selection technique to use is determined by the failure rate (testing stage) and the execution time of test cases. Finally, we propose a practical process to combine the use of all three test strategies.},
	isbn = {978-3-642-16572-6},
	author = {Arcuri, Andrea and Muhammad Zohaib {Iqbal} and Briand, Lionel},
	editor = {Petrenko, A. and Sim{\~a}o, A. and Maldonado, J.C.}
}
@inproceedings {Simula.approve.28,
	title = {Environment Modeling With UML/MARTE to Support Black-Box System Testing for Real-Time Embedded Systems: Methodology and Industrial Case Studies},
	journal = {ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS)},
	volume = {6394},
	year = {2010},
	pages = {286-300},
	publisher = {Springer Berlin / Heidelberg},
	type = {Conference},
	abstract = {The behavior of real-time embedded systems (RTES) is mostly driven by its environment. Black-box testing in this context is mostly about selecting test scenarios that are more likely to lead to unsafe situations in the environment. To do so, we explicitly model the environment, its interactions with the RTES, and potentially unsafe situations triggered by failures of the RTES under test. Though environment modeling is not new, we aim to do so using a language that is familiar to software engineers, that is the UML and its extensions. This is important as test automation is performed by software testers that are usually not familiar with techniques geared towards simulating natural phenomena. Furthermore,simulation should only be concerned with what is visible to the RTES under test. In this paper, we provide and evaluate, on two industrial case studies, such an environment modeling methodology. We show how the models are used to fully automate black-box testing using search-based techniques and the generation of code simulating the environment. Results show that our modeling methodology provides sufficient information to support effective model-based testing of industrial RTES.},
	isbn = {0302-9743},
	author = {Muhammad Zohaib {Iqbal} and Arcuri, Andrea and Briand, Lionel},
	editor = {Petriu, Dorina and Rouquette, Nicolas and Haugen, {\O}ystein}
}
@inproceedings {Simula.se.735,
	title = {Formal Analysis of the Effectiveness and Predictability of Random Testing},
	journal = {ACM International Conference on Software Testing and Analysis (ISSTA)},
	year = {2010},
	publisher = {ACM},
	type = {Conference},
	abstract = {There has been a lot of work to shed light on whether Random Testing is actually a useful testing technique. Despite its simplicity, several successful real-world applications appear in the literature. Although it is not going to solve all possible testing problems, random testing is an essential tool in the hands of software testers. In this paper, we address general questions about random testing, such as how long random testing needs on average to achieve testing targets (e.g., coverage), how does it scale and how likely is it to yield similar results if we re-run random testing on the same testing problem. Due to its simplicity that makes the mathematical analysis of random testing tractable, we provide precise and rigorous answers to these questions. Our formal results can be applied to most types of software and testing criteria. Simulations are carried out to provide further support to our formal results. The obtained results are then used to assess the validity of empirical analyses reported in the literature.},
	isbn = {978-1-60558-823-0},
	author = {Arcuri, Andrea and Muhammad Zohaib {Iqbal} and Briand, Lionel},
	editor = {Alessandro Orso Paolo {Tonella}}
}
@inproceedings {Simula.se.733,
	title = {A Model-Based Regression Testing Approach for Evolving Software Systems With Flexible Tool Support},
	journal = {17th IEEE International Conference on Engineering of Computer-Based Systems (ECBS)},
	year = {2010},
	pages = {41-49},
	publisher = {IEEE Computer Society},
	type = {Conference},
	abstract = {Model-based selective regression testing promises reduction in cost and labour by selecting a subset of the test suite corresponding to the modifications after system evolution. However, identification of modifications in the systems and selection of corresponding test cases is challenging due to inter-dependencies among models. State-based testing is an important approach to test the system behaviour. Unfortunately the existing state-based regression testing approaches do not care for dependencies of the state machines with other system models. This paper presents the tool support and evaluation of our state-based selective regression testing methodology for evolving state-based systems. START is an Eclipse-based tool for state-based regression testing compliant with UML 2.1 semantics. START deals with dependencies of state machines with class diagrams to cater for the change propagation. We applied the START on a case study and our results show significant reduction in the test cases resulting in reduction in testing time and cost.},
	isbn = {978-0-7695-4005-4},
	author = {Farooq, Qurat-ul-ann and Muhammad Zohaib {Iqbal} and Malik, Zafar and Riebisch, Matthias},
	editor = {Sterritt, Roy and Eames, Brandon and Sprinkle, Jonathan}
}
@article {Simula.SE.174,
	title = {A State-Based Approach to Integration Testing Based on UML Models},
	journal = {Information and Software Technology},
	volume = {49},
	number = {11-12},
	year = {2007},
	pages = {1087-1106},
	abstract = {Correct functioning of object-oriented software depends upon the successful integration of classes. While individual classes may function correctly, several new faults can arise when these classes are integrated together. In this paper, we present a technique to enhance testing of interactions among modal classes. The technique combines UML collaboration diagrams and statecharts to automatically generate an intermediate test model, called SCOTEM (State COllaboration TEst Model). The SCOTEM is then used to generate valid test paths. We also define various coverage criteria to generate test paths from the SCOTEM model. In order to assess our technique, we have developed a tool and applied it to a case study to investigate its fault detection capability. The results show that the proposed technique effectively detects all the seeded integration faults when complying with the most demanding adequacy criterion and still achieves reasonably good results for less expensive adequacy criteria.},
	author = {Ali, Shaukat and Briand, Lionel and Muhammad Jaffar-ur {Rehman} and Asghar, Hajra and Muhammad Zohaib {Iqbal} and Nadeem, Aamer}
}
