Professional Documents
Culture Documents
Qurat-ul-ann Farooq
Center for Software Dependability Mohammad Ali Jinnah University Islamabad, Pakistan
Zafar I Malik
Center for Software Dependability Mohammad Ali Jinnah University Islamabad, Pakistan
zouhaib@hotmail.com
zafar@jinnah.edu.pk
anadeem@jinnah.edu.pk ABSTRACT
Model-based regression testing is an important activity that ensures the reliability of evolving software. One of the major issues in this type of testing is the optimal selection of test-cases to test the affected portion of the software. In this paper, we present a UML based selective regression testing strategy that uses state machines and class diagrams for change identification. We identify the changes using the UML 2.1 semantics of state machines and class diagram. The changes are classified as Classdriven (obtained from class diagram) and State-driven (obtained from state machine). The Class-driven changes are important as these changes are not reflected on the state machines and they might be helpful in identifying some fault-revealing test cases. With the help of the identified changes, we classify the test cases of the test suite as Obsolete, Reusable, and Retestable. We apply the approach on a case study to demonstrate its validity.
1. INTRODUCTION
Software systems evolve with time. Regression testing is an important activity to ensure that this evolution will not harm the existing functionalities of the system. Once the software development process is completed, the system may change due to the maintenance activities. After such changes regression testing becomes essential to ascertain the correctness of the system [4, 10, 23]. Regression testing ensures that the system will not regress in effect of new or modified features and the earlier functionalities work accordingly [1]. Model-based regression testing of software has several advantages [2]. Model-based development aims to provide reusable and platform independent solutions [15]. The significance of use of models for application development has increased a lot with the advancement in Executable Modeling and Model Driven Architecture (MDA) [25, 26]. Due to the advances in model-driven development, model-based testing and maintenance has become crucial. The aim of our work is to present a model-based regression testing technique that exploits design information from UML state machines and class diagrams for regression test selection. State-dependent behavior of objects raises major issues in objectoriented software testing [1]. Kung et.al, [2] discuss an example of problems that can not be revealed using structural and functional testing techniques. UML state machines are a key artifact for modeling the state dependent behavior of objects. There are several testing techniques in literature that test statedependent behavior of objects using state machines [5, 24, 19]. A major problem occurs when the state machine is modified. In such a case, testing of modified parts becomes crucial. There are two possible options for testing; one is to retest all the earlier test cases. This option is not feasible in terms of cost since the number of available test cases may be very large [1]. The second option is to select a set of test cases that test the affected portions of the software. This option has obviously been widely advocated by practitioners and researchers [1, 7, 13, 14] and is generally known as selective regression testing. The core concern of our work is to provide a state based selective regression testing strategy. Our work provides change definitions for UML 2.1 state machines and class diagram and uses them to
General Terms
Design, Reliability, Verification.
Keywords
UML, Regression Testing, Model Based Testing
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that Permission to make digital or hard copies of all or part of this work for copies bear notice and full citation on the page. that To copy personal orthis classroom usethe is granted without feefirst provided copies are otherwise, republish, to post servers or to redistribute to lists, not madeor or distributed for on profit or commercial advantage and that requires prior this specific permission a fee. on the first page. To copy copies bear notice and the and/or full citation AMOST'07, July 9-12, 2007, otherwise, or republish, to London, post on UK servers or to redistribute to lists, Copyright 2007 ACM 978-1-59593-850-3/07/0007...$5.00 requires prior specific permission and/or a fee. 3rd Workshop on Advances in Model Based Testing (A-MOST)07, July 2007, London, United Kingdom. Copyright 2007 ACM
44
classify the test cases and generate regression test suite. To verify the applicability of the proposed technique, we have applied it on a case study. The rest of the paper is structured as follows: Section 2 discusses the related work in the area of model-based regression testing. Section 3 discusses the proposed approach for selective regression testing, which is followed by case study section. Finally we conclude the paper in section 5.
2. Related Work
There are two distinct approaches for UML based regression testing, i.e., Regression testing of UML artifacts and Regression testing of code using UML artifacts. In the former approach, we test the UML design itself, whereas, in the later approach UML designs are used to generate test cases that are executed on the code. Pilskalns et.al worked on regression testing of UML designs. They have proposed an approach that is based on their previous work of test case generation for UML designs using the symbolic execution technique [17]. Regression testing of software has always been an important area in software testing. Briand et.al [9] presented a safe regression testing technique using use case diagrams, sequence diagrams, and class diagrams. The definitions of changes between baseline and delta version of these diagrams is presented. Changes are identified in these diagrams and their impact on baseline test suite is analyzed. The test cases are categorized based on White et al [6] classification. Chen et.al [8] presented a strategy for regression test selection using activity diagram. They have used activity diagram for describing the system requirements. Activity diagram is treated like a control flow graph (CFG) and baseline and delta version of CFG are compared to identify the changes. The test paths corresponding to the affected nodes are selected using traceability matrix for regression test suite. The technique presented by Traon et.al [14] is basically for integration testing using UML class diagrams. They have used a TDG (Test Dependency Graph) as their test model. For regression purpose, the authors have suggested to select the TDG subset that contains a modified component. The authors have proposed different criteria for regression testing. Wu and Offutt [27] have presented a UML based regression testing technique for component based software using collaboration diagram, class diagram and state machines. They have discussed the regression strategies for different maintenance activities. Their focus is on regression testing strategy and not on change impact analysis. A limited research is also available in literature in which state machine like models are used for regression testing. These techniques are not UML based but, since our work employs UML state machines which are extensions of state charts, therefore, we are also including them. The technique presented by Beydeda and Gruhhn [11] is for class level regression testing based on specification as well as implementation information. A class specification implementation graph (CSIG) is used as a model. Regression test cases are selected by comparing the base line and delta version of CSIG. Korel et.al [16] have used the EFSM (Extended Finite State
Machines) as the model and their test case reduction technique is based on dependence analysis of this model. They have identified the difference in the original and modified model based on the elementary modifications. They have defined two types of elementary model modifications, i.e., addition of a transition and deletion of a transition. The focus of their work is on regression test suite reduction by performing the dependence analysis of the EFSM. The authors have constructed a dependence graph considering the data and control dependencies of the transitions. The interaction pattern of each test case is calculated based on these modifications and test suite is reduced based on these interaction patterns. Briand et.al [17] presented the changes in class diagram using UML 2.1 semantics for traceability analysis of model refinements. Their change definitions are focusing model refinements and are not complete for our purpose. Briand et.al [18] have presented an approach for impact analysis of changes in UML artifacts. Change taxonomy for UML artifacts including class diagram, sequence diagram, and state machine is provided and impact analysis rules are specified for these UML models. The change definitions provided by Briand et.al are based on UML 1.4 and are mainly concerned with consistency checking. We have changed and extended their definitions according to UML 2.1 constructs to perform regression testing.
3. Proposed Approach
In UML based modeling, artifacts are interrelated. A change in one artifact may cause a change in another artifact without even being reflected on it. For example, a message in the sequence diagram may change due to a change in its respective operation in the class diagram. This change may not be reflected directly in the sequence diagram and consulting the class diagram becomes essential to obtain this change information. Due to this ripple effect phenomenon, changes in some other artifacts in UML may also affect the state machines. It is necessary to cater these changes when we use state machines for regression testing. The basic regression testing process involves following steps. Identification of changes in delta version of the system. Analysis of elements that are indirectly affected due to some dependencies. Inspection of the effect of both changed elements and indirectly affected elements on the base line test suite. Discarding the test cases that are no more valid and selecting a subset of baseline test suite that needs to be exercised for regression testing. According to UML 2.1 [21], there are two types of state machines, behavioral state machines and protocol state machines. We are considering behavioral state machine for our regression testing approach. Behavioral state machines are widely used and they employ actions that protocol state machines lack. The most important artifact that can affect the state machines behavior is the class diagram in which the context class of the state machine is defined. Besides, some other artifacts may also affect the state machine, e.g., sequence diagrams. Primarily we are focusing on the changes in class diagram in which the context class of the state machine is defined. Hsia et.al [3] classified the changes in OO programs as changes that affect the object behavior, data members, operations, operations behavior, relationships, and dependencies among
45
different classes. We are catering all these types of changes in our regression testing technique by considering the changes in object behavior by analyzing the state machine and the changes in data members, operations, relationships and dependencies by using the information from class diagram. Figure 1 represents the architecture of our proposed regression testing approach. The CDComparator takes the baseline and delta version of class diagram, class invariants, and operation contracts, and generates Class-driven Changes (CDC). The SMComparator takes CDC and baseline and delta state machines, contracts and state invariants as input and generates State-driven Changes (SDC). SDC, along with baseline test suite, are fed to Regression Test Selector. The regression test selector classifies the baseline test suite into obsolete, reusable, and retestable test cases.
prerequisite of our approach to ease the automation and traceability with test cases.
Figure 1: Abstract Model of State based regression testing approach We define two types of changes in our approach; Class-driven changes and State-driven changes. Class-driven changes are those changes which can be obtained by comparing baseline and delta version of the class diagram. These changes may or may not reflect on the state machine. State-driven changes are obtained by comparing the base line and delta version of the state machine and by using the Class-driven changes. We have defined both of these changes based on the UML 2.1 Meta model [21]. We have ignored the syntactic representation of the model elements and focus on the semantics described in UML 2.1 superstructure [21]. We have represented all the modifications in various change models. One of the models depicts the modifications in attributes and is shown in Figure 2. Due to space constraints we are not presenting all the change models. We are assuming that the input models for our approach are consistent and flattening is also a
46
changed. The parameter will be modified if its default value is changed or it has a ChangedMultiplicity. The operation parameter will be modified if the IsOrdered or isUnique property of the parameter is changed or it has an associated ModifiedConstraint ModifiedOperation: We define the set of operations in a class CCD as OPC and the operations in the class D CD as OPD. The set OPDM denotes the set of modified operations in D. An operation op OPD will be considered modified in the following cases: An operation will be modified if the operation has a changed visibility, or the list of exceptions associated with the operation is changed. The list of raised exceptions will be changed due to some added or deleted exception. The operation will be modified if it contains a ModifiedOperationParameter. We have already discussed the ModifiedOperationParameter. An operation will be modified if any of its properties are changed. The properties include isStatic, isLeaf, and isQuery properties. There are some other properties of the operation as well but these will apply on the return value of the parameter. These properties are isOrdered, isUnique and multiplicity of the return value. However, an operation will be changed on change of any of these properties. All these properties are of Boolean type except multiplicity of the return value. Hence, these properties will be considered changed if their Boolean value is changed. An operation will be changed if its return type multiplicity is ChangedMultiplicity. An operation will be modified if it contains a different operation constraint. Three types of constraints are defined for operations, i.e., pre, post, and body condition. Pre/post conditions are the notion of design by contract [20] methodology. Pre condition is a condition that must hold before invocation of the operation. Post condition is a condition that must hold after the execution on that operation and body condition is condition on the return value of the operation. Operations constraints are a kind of constraint and they will be treated as ModifiedConstraint. ModifiedAssociation: According to the UML specification [21], an association is defined as a set of tuples whose value refers to typed instances. We define the set of associations in a class CCD as ASC and the associations in the class D CD as ASD. The set ASDM denotes the set of modified associations in D. An association as ASD will be considered modified if its end type is changed. End type refers to the memberEnd, ownedEnd, and navigableOwnedEnd. An association will be modified if any of its AssociationEnds is changed. An association end will be changed if it has any of the changes defined in ModifiedProperty. An association is modified if IsAbstract attribute of the association is changed. An instance of an association is called a link. An association link will be changed if its respective association is changed Added/deleted Attribute: An attribute aAC will be considered deleted if no attribute with the same name exists in AD. An attribute aAD will be considered added if no attribute with the same name exists in AC. In case of addition and deletion of an attribute, this change will also be reflected on the state machine if the respective attribute is used in the state machine. The addition/deletion of an attribute can also affect some operations, e.g., operation contract may traverse that attribute. This change
will be handled through ModifiedOperation and affect the state machine indirectly. Added/deleted Operation: An operation opOPC will be considered deleted if no operation with the same name, return type, same number of parameters with same type exists in OPD. In case of deletion of an operation, this change will also be reflected on the state machine if the respective operation is used in the state machine as a CallEvent or a CallAction. An operation opOPD will be considered added if no operation with the same name, return type, same number of parameters with same type exists in OPC. The addition of the operation in the class will also be reflected on the state machine if the respective operation is used in the state machine as CallEvent or CallAction. Added/deleted Association: Addition and deletion of associations will also reflect on those transitions of the respective state machine that refer to the links of these associations in events, actions, or guards.
47
ModifiedAttribute
changed. Changes in transition kind and container are not applicable because of flattened state machine.
ChangedVisibilityKind ChangedDefaultValue ChangedAttributeMultiplicity ChangedProperties ChangedssDerived ChangedisReadOnly ChangedAggregationKind ChangedisComposite ChangedisOrdered ChangedisUnique ChangedisStatic ChangedisLeaf ChangedisDerivedUnion ChangedSubsets ChangedPropertyConstraint Changed Type
ModifiedEvent: According to UML 2.1 specifications [21], there are three major kinds of events; MessageEvent, TimeEvent, and ChangeEvent. The MessageEvent has three specializations AnyReceiveEvent, SignalEvent, and CallEvent. Following paragraphs discuss changes in these events. The transition having AnyReceiveEvent will be executed on any message except those that are not referenced in any other transition from the same source state. In UML 2.1 [21], this event is denoted as all. There can be only addition and deletion of such event and they would not be considered for modification. CallEvents model the request to invoke a specific operation. They can be represented as operations of classes [19]. They can reference attributes and links of context classifier [22]. In our case, this classifier is the context class of state machine. These operations can correspond to the CallEvents and in our approach, we are assuming that every CallEvent in state machine corresponds to some operation in its context class. A CallEvent will be considered modified when the operation corresponding to the CallEvent in the context class is a ModifiedOpeartion. SignalEvents model the receipt of asynchronous signals. SignalEvents are depicted on the state machine similar to the CallEvent with a name and assignment specifications. However, there are different ways of implementing SignalEvents. We are assuming that there is an operation in the class with the same name as signal [22]. This is equivalent to a CallEvent and changes in SignalEvents will be handled similarly. ChangeEvents correspond to the system configuration that makes a condition true and they are denoted as Boolean expressions. A ChangeEvent is of the form when <expression>. A TimeEvent specifies a point in time at which an event occurs [21]. There are two types of TimeEvents in UML 2.1 [21]: Relative time events and Absolute timeEvents. Relative time events are denoted with after<<Expression>> and Absolute TimeEvents are denoted with at<<Expression>>. The ChangeEvents and TimeEvents will be modified if their expression part uses some ModifiedAttribute or links from the class diagram. If the expression is deleted we will treat this as DeletedEvent. In case expression is an operation call, the event will be changed if the operation belongs to the set of ModifiedOperation. ModifiedActions and ModifiedGuards: There are 44 actions defined in UML 2.1 action semantics. Defining all the possible changes in these actions is out of scope of this paper. We only consider CallActions and VariableActions. Changes in CallActions are handled similar to CallEvent. VariableActions and guards will be treated same as ModifiedExpression.
Figure 2: A change model for modifications in attributes Added/Deleted Transition: TA denotes the set of added transitions and TD defines the set of deleted transitions. A transition tT will belong to the TA if it does not exist in T, but exists in T. A transition tT will belong to TD if it exists in T, but it does not exist in T. The reason of the deletion may be some DeletedEvent, DeletedAction, or DeletedGuard. A transition may also be deleted if source or target state of the transition is deleted ModifiedTransition: The set of modified transitions in the SM is denoted as TM. A transition tT will belong to the TM if it contains some ModifiedEvent, ModifiedAction or ModifiedGuard. A transition will also be modified if its associated set of redefined transitions or its redefinition context is changed. A transition will be modified if its visibility or isLeaf attribute is
48
to elements in the system that are deleted and are not accessible in the delta version. Retestable test cases need to be exercised for regression testing as they correspond to modified parts of the system. Reusable test cases correspond to unchanged parts of the system. They are valid but they are not required to be re-executed for regression testing. We define the baseline test suite as TS. Our base line test suite consists of the test paths extracted from the SM by applying any of the state based testing strategies [24,19 ].
TestSuiteClassification
application and state machine for Student class are shown in Figure 4 and Figure 5 respectively. The delta version contains following change information. The coursesTaken attribute in Registration class was of type String in the base line version, now it is of type int. A transition labeled as t12 was present in the baseline version but delta version does not contain this information. A new transition labeled as t16 is added in the delta version and it was not present in baseline version.
ObsoleteTestCases * * DeletedTransition
RetestableTestCases * * ChangedTransition
After the comparison of baseline and delta version of class diagram, the attribute coursesTaken is inserted in the set of modified attributes. This Class-driven change set is then used to identify changes in the state machine of the Student class. Baseline and delta versions of Student state machine are compared. The guard conditions of transitions t4 and t6 use the modified attribute coursesTaken; hence, guards of t4 and t6 are modified. The transition t4 and t6 are placed in the set of modified transitions due to modified guard condition. The transition t12 is placed in set of deleted transitions and t16 in the set of Added transitions. These State-driven changes along with base line test suite are used to classify the test cases into obsolete, reusable, and retestable. Table1 shows the baseline test suite of Student class which consist of 22 test paths. A unique id is assigned to each test path for reference. Test cases with ID 3, 8, 14, and 20 are classified as obsolete as they contain the deleted transition t12. Test cases with ID 1, 2, 4, 5, 11, 12, 13, 15, 16, and 17 are Retestable as they contain the modified transitions t4 and t6. All other test cases in the base line test suite are reusable as they do not correspond to any modification in the state machine and class diagram. If we do not consider the changes in the class diagram for test selection and only consider the state machine changes, then only the test cases with ID 3, 8, 14, and 20 will be selected and we will miss 10 potential fault revealing test cases.
ReusableTestCases
Figure 3: Test Suite Classification in state based regression testing approach Each test path tsTS in the test suite will represent a sequence of transitions tiT in the SM. The set of obsolete test cases is defined as TSO TS. The set of reusable test cases is defined as TSRE TS and TSRT TS is the set of retestable test cases. A test case tsTS will be added to TSO if some transition tits exists in TD. A test case tsTS will be added to TSRE if some transition tits exists in TM and ti TD. All the other test case in TS belong to TSRT and are not included in TSO TSRE.
4. Case Study
In order to validate the applicability of the proposed regression testing strategy, we have employed a case study of Student Enrollment System. The delta version class diagram for the
49
*
+currentReg
Regi steredSemesterCours es
* *
+currentSem ester
*
1
getSemesterCourses() addSemesterCourses()
*
Courses courseCode : Integer courseOutli ne : String
50
Table 1: Base line test suite for Student class ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Test Path to,t1,t3,t6,t7 to,t1,t3,t6,t8 to,t1,t3,t6,t9,t10,t12 to,t1,t3,t6,t9,t10,t11,t13 to,t1,t3,t6,t9,t10,t11,t14,t15 to,t1,t3,t5t7 to,t1,t3,t5,t8 to,t1,t3,t5,t9,t10,t12 to,t1,t3,t5,t9,t10,t11,t13 to,t1,t3,t5,t9,t10,t11,t14,t15 to,t1,t3,t4 to,t2,t6,t1 to,t2,t6,t8 to,t2,t6,t9,t10,t12 to,t2,t6,t9,t10,t11,t13 to,t2,t4 to,t2,t6,t9,t10,t11,t14,t15 t0,t2,t5,t1 t0,t2,t5,t8 t0,t2,t5,t9,t10,t12 t0,t2,t5,t9,t10,t11,t13 t0,t2,t5,t9,t10,t11,t14,t15
6. ACKNOWLEDGMENTS
Our thanks to Tabinda Waheed, Iram Rubab, Irum Rauf, Mohammad Usman and Atif A. Jilani for their support and cooperation throughout this work.
7. REFERENCES
[1] Binder, R.V., Tools and Techniques for testing object-oriented programs, Published by Addison-Wesley, ISBN 0201809389, March 2003. [2] Kung, D., Gao, J., Hsia, P., Toyoshima, Y ., Chen, C., Kim, Y.S., and Song, Y.K . Developing an object-oriented software testing and maintenance environment. Communications of the ACM, Volume 38, Issue 10, Special issue on object-oriented experiences and future trends, ACM Press, 1995 [3] Hsia, P., Li, X., Kung, DC. Hsu, C.T., Li, L., Toyoshima, Y., and Chen, C. A technique for the selective revalidation of OO software. Journal of Software Maintenance: Research and Practice Volume 9, Issue 4, Pages: 217 - 233, ISSN: 1040-550X, 1997. [4] Bellur, U. Vallieswaran, V. On OO Design Consistency in Iterative Development, Third International Conference on Information Technology. New Generations, on page(s): 46- 51, ISBN: 0-7695-2497-4, April 2006. [5] Kung, D. Suchak, N. Gao, J. Hsia, P. Toyoshima, Y. Chen, C., On object state testing, Computer Software and Applications Conference, 1994. COMPSAC 94. Proceedings., Eighteenth Annual International, On page(s): 222-227, ISBN: 08186-6705-2, Nov 1994. [6] Leung, H.K.N. White, L. , Insights into regression testing [software testing, Proceedings of Conference on Software Maintenance., , On page(s): 60-69, ISBN: 0-8186-1965-1, Oct 1989. [7] Rothermel, G., and Harrold, M.J. A safe, efficient regression test selection technique. ACM Transactions on Software Engineering and Methodology (TOSEM), Volume 6, Issue 2, ISSN: 1049-331X, April 1997. [8] Chen,Y., Probert, R.L., and Sims, D.P. Specification-based Regression Test Selection with Risk Analysis. IBM Centre for Advanced Studies Conference, Proceedings of the conference of the Centre for Advanced Studies on Collaborative research, 2002. [9] Briand, L.C., Labiche, Y, and Soccar, G. Automating Impact Analysis and Regression Test Selection Based on UML Designs. Proceedings of the International Conference on Software Maintenance (ICSM.02), IEEE 2002. [10] Mattsson, M.K., Forssander, S., and Olsson, U. Corrective maintenance maturity model (CM3): maintainer's education and training. Proceedings of the 23rd International Conference on Software Engineering, Pages: 610 619. [11] Beydeda, S., and Gruhn, V. Integrating White- and BlackBox Techniques for Class-Level Regression Testing. Proceedings of the 25th International Computer Software and Applications Conference on Invigorating Software Development, Pages: 357 362, ISBN:0-7695-1372-7, 2001.
51
[12] Liang, H. Regression testing of classes based on TCOZ specification. Proceedings Of 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS), On page(s): 450- 457, ISBN: 0-7695-2284-X, June 2005. [13] Sajeev, A.S.M, and Wibowo, B, Regression test selection based on version changes of components. Tenth Asia-Pacific Software Engineering Conference, pp 78- 85, ISBN: 0-76952011-1, Dec 2003. [14] Traon, YL. Jeron, T. Jezequel, JM. Morel, P. Efficient object-oriented integration and regression testing. Reliability, IEEE Transactions, Volume: 49, Issue: 1, ISSN: 0018-9529, Mar 2000. [15] Deng, D., Sheu, P.C.Y, and Wang, T. Model-based testing and maintenance. Proceedings of IEEE Sixth International Symposium on Multimedia Software Engineering, pp 278- 285, ISBN: 0-7695-2217-3, Dec. 2004. [16] Korel, B., Tahat, L.H., and Vaysburg, B. Model Based Regression Test Reduction Using Dependence Analysis. Proceedings of the International Conference on Software Maintenance (ICSM.02), ISBN: 0-7695-1819-2, IEEE , 2002. [17] Briand,L.C, Labiche,Y, Yue, T, Automated Traceability Analysis for UML Model Refinements, Technical Report: TR SCE-06-06, Version 2, Carleton University, Department SCE Software Quality Engineering Laboratory 1125 Colonel By Drive, Ottawa, ON K1S5B6, Canada, http://sce.carleton.ca/squall, August 2006. [18] Briand, L.C., Labiche, Y, Sullivan, L.O, and Sowka, M. M. Automated impact analysis of UML models. Journal of Systems and Software, Volume 79, Issue 3, Pages: 339 - 352, ISSN: 0164-1212, March 2006. [19] Hong, H.S., Kwon, Y.R, and Cha, S.D. Testing of ObjectOriented Programs Based on Finite State Machines. p. 234,
Software
Engineering
Conference
[20] Myers, B. Applying `design by contract'. IEEE Computer Society Press, Volume 25, Issue 10, Pages: 40 - 51, ISSN: 00189162, October 1992. [21] OMG, UML 2.1: Super structure Specifications, OMG, April 2006: Available: http://www.omg.org/cgi-bin/doc?formal/07-0203 [22] Briand,L.C., Labiche,Y., and Lin,Q. Improving state chart based coverage criteria using data flow information. Technical Report SCE-04-17, Carleton University, October 2004. [23] Winter. Managing object-oriented integration and regression testing. EuroSTAR98, Munch, 1998. [24] Ali, S., Briand, L.C., Rehman, M.J., Asghar, H., Iqbal, M.Z.Z., and Nadeem, A. A State-based Approach to Integration Testing based on UML Models. Carleton Technical Report SCE05-02, Version 3, October 2006 [25] Mellor, S. J. and Balcer, M. J. Executable UML; A Foundation for Model-Driven Architecture, Addison-Wesley, 2002, ISBN 0-201-74804-5. [26] Mellor, S. J. Introduction to Executable and Translatable UML, Application Development Toolkit, Whitepapers CNET Networks, 2005. [27] Wu, Y. and Offutt, J. Maintaining Evolving Component based software with UML, in Proceeding of 7th European on software maintenance and reengineering, IEEE,2003. [28] Pilskalns, O. and Andrews, A. Regression Testing UML Designs, in Proceedings of 22nd IEEE International Conference on Software Maintenance (ICSM06), IEEE 2006.
52