International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013
Developing Usage Models through StimulusResponse Sequences
D.Bala Krishna Kamesh1, Dr. A. K. Vasishtha2, Dr. JKR Sastry3 and Dr. V Chandra Prakash4 1Scholar,
ShriVenkateshwara University, Gajraula,
[email protected] 2 Professor, ShriVenkateshwara University, Gajraula, 3,4KL University, Vaddeswaram, Guntur district,
[email protected],
[email protected]
Abstract Clean Room Software engineering (CRSE) methodology advocates the construction of Usage model which can be used for carrying Statistical Use Testing. The usage of the software is the basis that should be considered for constructing the usage model. Many methods have been suggested in the past for building the usage models that are suitable for testing the loaded systems. No models have so far been developed for developing the usage models that are suitable for testing embedded systems. In this paper, development of usage model based on the stimulus- response sequences have been presented. The model has been applied to an embedded system that is meant for monitoring and controlling the temperatures within a Nuclear Reactor System (TMCNRS). Keywords: usage models, statistical use testing, embedded system, stimulus-response sequence.
1. Introduction A software “usage model” characterizes the population of intended uses of the software in the intended environment. Statistical use testing based on a software usage model ensures that the failures that will occur most frequently in operational use will be detected early in the testing cycle. The usage model is based on the software specification. The model can be developed in parallel with the development of software, thus, shortening the time required to develop and deliver the software. Usage modeling has been demonstrated to be an activity that improves the specification, gives an analytical description of the specification, quantifies the testing costs and, with statistical testing, provides a basis from which software reliability can be estimated. The usage models can be employed throughout the project’s life cycle [37] for test planning and for generation of statistically valid samples of test cases. The scope and depth of usage model development are determined by many factors like experience and domain knowledge of the development team, the precedence of the product within the company, the number of new or risky areas to be addressed, and product complexity. The usage model evolves as the product development progresses and interaction between the strategic planners, user-centered design experts, and engineers occur. The advantages in defining the structure and content of a usage model includes clarifying necessary and intended usage in both new and legacy areas, grounding platform requirements in usage, codifying the role of user-centered design in defining the platform requirements, planning, and development, unifying concepts and vocabulary, and exposing the need for additional work. Usage models can be represented as finite state machines with transitions weighted with probabilities, representing a Markov chain which describes the state of usage. The next state in the usage model is independent of all the past states given the present state. Probabilities are assigned to all of the transitions based on the expected use of the software. The probabilities of all transitions leaving away from a single state sums up to 1.
October Issue
Page 20 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 Constructing an accurate usage model involves gathering the reliable field data and constructing the detailed usage structure. It requires a method of creating equivalent states at realistic cost. The usage model can be represented by a graph, a formal grammar, or a Markov chain. Sequence -based specification is a set of techniques for stepwise construction of black box and state box specifications of software systems which are the building models defined in CRSE methodology. It helps in analyzing the completeness and consistency of the requirements with a stepwise construction of a traceably correct black box specification. System boundary, i.e., interfaces and associated stimuli and responses, is identified and then sequence enumeration is performed which leads to a well-defined black box specification mapping each stimulus sequence to one response. Complete set of usage states can be derived by using canonical sequence analysis. A System’s boundary is derived by identifying all interfaces. The boundary is said to be complete when all the relevant input stimuli are received and all the corresponding output responses are generated. The stimuli are identified in the context of the interfaces and determining their relevance. All the stimuli that are logically related are aggregated and named. The process of sequence enumeration aims at systematically writing down each possible stimulus sequence which represents history of usage of the system under test. Each sequence is validated and may be associated with a response. If a sequence is illegal, all sequences having that sequence as prefix are illegal and are not considered. Two sequences are said to be equivalent when their responses are identical. A sequence that cannot be reduced is called a canonical sequence. Enumeration stops if all sequences are illegal or reduced to equivalent sequences. A Mealy machine consisting of usage states is derived by analyzing the canonical sequences. The actual stimulus represents a transition from one canonical sequence to another. The Markov chain usage model is derived from the Mealy machine. Test cases which represent a path through the usage model are generated by appending the scripts of the arcs lying on the path. Testing of embedded systems involves development and implementing a model and move on to use the model for carrying the model based Testing. Building the model thus becomes very important. The most frequently traversed critical paths can be traced if a model can be built. Once paths are identified thorough testing can be carried. Sampling techniques use the usage model for generation of finite number of test cases. Usage models describe how a software system can be used by different users and the associated probability of usage. The overall development time is reduced as software development and usage modeling can be undertaken parallelly. Several methods have been proposed in the past based on which the usage models have been proposed which include user profiles based models, use case models, activity diagrams, sequence diagrams, hierarchical structures, etc. These models are quite suitable for testing the loaded systems. But, when it comes to the embedded systems, external behavior is more important and the usage of the embedded systems is completely based on the changes taking place in the external environment. Thus, it is important that Usage models be built using the external behavior so that the model can be used for undertaking the testing of the embedded system. In this paper, a method has been presented for building the usage model from external behavior of an embedded system.
October Issue
Page 21 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013
2. Related work A model has been proposed [13] to characterize the population of uses of the software, and the model is used to generate a statistically correct sample of all uses of the software. The data that is generated throughout the project’s life cycle [37] can be used for test planning, and for deriving statistically valid samples of test cases. Failed tests data in conjunction with usage model can be used to produce metrics for test sufficiency and product quality. Usage models are predestined for random testing. The basic prerequisite for random testing is initial test and the minimal arc coverage suite [26]. The implied transitions in the sequence are ignored as they are taken automatically by the software and their coverage is ensured by covering all other arcs. The state and arc coverage which are determined by the probability distribution in a model, resemble the basic measures for test sufficiency. A determinant can be computed reflecting the similarity between expected and tested use [40]. Testing using usage models is the most interesting technique in model-based testing for which Markov chains are used [36], [17]. Wherever transitions between recognizable states of use are induced by input stimuli, one can apply model-based approach for testing the software. Statistical use testing can be undertaken by way of exploiting UML based use cases and Sequence Models [23] as they provide data and behavior which are very much necessary for modeling the test case generation and also undertaking the test automation. System level test cases are generated based on use case models and refined by state diagrams. The transformation of use case models into usage models will lead to statistical use testing. Tabular templates can be used for defining the use cases [6] and the same can be refined [12] textually so that the use cases best represent the usage requirements of the user. A single, complete description of use case by specifying and mutually relating all of the scenarios it includes is obtained in this textual notation. The proposed templates are also extended through addition of multiple conditions. A scenario step resembling a stimulus will be turned into an atomic test input and a scenario step describing a response will become an atomic observable response. The Templates representing the use cases are enhanced to support the systematic derivation of a statediagram-based usage specification. The templates can be modified [12] to model each use case into a separate state diagram and the set of individual state diagrams can be hierarchically structured into a top-level diagram. This top-level diagram resembles a framework in which use cases can be “executed” depending on their pre-conditions, and global usage states which are extrapolated from all of the preconditions of the use cases. Guidelines for constructing individual state diagrams for each use case and the top-level state diagram have been developed and the same are used for developing the state diagrams [12]. The top-level state diagrams can be transformed into usage graphs [14] by implementing transformation mechanisms. Automated test cases can be generated based on modeling combinatorial dependencies between input parameters and Markov models [30]. Input combinations play an important role rather than stimulus sequences in testing of software programs whose usage pattern consists of only three steps, namely, entering input parameters, calculation and generating output/results. Several approaches have been presented [21] for dealing with situations in which the possible numbers of parameter values are too large for testing all input combinations. Combinatorics together with Markov chains automates selection of test cases, execution and evaluation and allows applying statistical analysis to the testing process. Markov chains are the usage models in which each path in the usage graph is related to a particular usage of the application.
October Issue
Page 22 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 Markov chain models are used for the selection of test cases from independent input parameters [34]. A specific value for each discrete input parameter represents a state in the usage model. State transition occurs once the corresponding value is assigned to the parameter. Conflict-free sub-models approach [22], [23] reduces the number of new states. Test cases are generated using only one model in this case. The probability that a value of a input parameter has some specific dependency on the values of other parameters gives rise to additional dependencies like “Values-on-values” which are valid or invalid. The “probabilities-on-values” determines the likelihood of using some input combinations during long run. Usage of constrained UML artifacts [39] like use case diagrams, sequence diagrams and the execution probability of each sequence diagram leads to deriving software usage models. Usage models can be generated by projecting the messages in sequence diagrams onto the objects under test and associating probability of occurrence of each message. Testing undertaken using usage models helps in estimating software reliability. Message sequences from sequence diagrams can be combined with other approaches to partition testing [10]. Traditional data-flow coverage criteria can be adapted as test adequacy criteria in the context of UML collaboration diagrams [1]. System level test requirements can be derived from use cases and sequence diagrams by considering the sequential and dependability relationships between them [19]. System level test cases can be automatically generated [12] with a given coverage level by transforming use cases into UML state charts and mapping its elements to the STRIPS planning language. Testability constraints can be imposed on UML artifacts and Markov chain usage model can be derived from them to support statistical testing [39]. Execution of Sequential relationships between use cases which reflect the business process the system supports can be derived [3], [4]. As different use case execution sequences may trigger different failures, they must be considered for usage-based software statistical testing. The execution sequential relations between use cases are represented by activity diagrams [19], [4] with vertices as use cases and edges as execution sequential relations between use cases. Use cases with no relations can be executed in parallel. The pre and post conditions will determine the next use case to be executed. More constraints can be added to UML artifacts [39] so that the UML models become testable. The operational data such as users’ activities, log files of the program, etc, can be used for generation of usage distribution which is useful in building the usage model at a low cost [32]. This is achieved by applying source code generation methods based on a state machine diagram by establishing a one-toone relationship between each transition on the state machine diagram and basic blocks in the skeleton code generated. Construction of probability distribution of a usage model is done by inserting probes into source codes while generating skeleton codes. These probes collect operational data in the state transition sequences or execution frequencies of each transition. This enables software engineers to collect operational data for building a usage model. Source code generation using state transition table [2] and OMT (Object Modeling Technique) [16] are not yet standardized. The interactions between the user and the system identifies benefits of the system for the user and also presents a structure for usage model that contains three separate tiers: supporting data, overview, and usage details. The structure provides a common taxonomy across various teams and business units that allow reuse of usage model data where appropriate, and aids in communication among product development teams [9]. Product usage is described by use cases, scenarios, and concept-of-operations documents [5], 11], [29]. The use cases are either translated or extended into concept-of-operations model. A common structure
October Issue
Page 23 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 and taxonomy for describing product usage are necessary in order to integrate requirements engineering, planning and design processes across business units and promote reuse. Usage Model can be synthesized [28] comprising of actors, usage views, use case specifications, abstract interface objects, user and system actions and a data dictionary. Construction of usage model starts from the beginning of the project. As the model develops supporting data is collected from which usage summary is created. Addition of usage details completes the model. In addition to the coverage of product usage, the usage model also contains data about the environment in which the product is used and different types of product users. The supporting data tier consists of persons who tell about the product users, demographics which provide prevalence information, segment comparisons, population sizes, attitudes and purchase intent, and similar information, use conditions which are defined as environmental conditions derived from the context of product use, Ethnographic data which is a study of a target population [7]. Usage Details tier forms the core of the usage model. It consists of Use Cases which specify and define a sequence of interactions between a system and one or more actors, scenarios which contains contextual details and description of usage, user task flows which graphically represent the flow of usage through a set of tasks, and operational profile which consists of the operations that can be performed using a device or software program, and the relative probabilities with which each operation will occur [24]. Timing constraints in sequence diagrams help in determining the frequency of usage of paths in the usage model [39]. Timing constrains are expressed by four classes of syntactic constructs [15] namely, Timers to express maximum amount of delay between two events in a process, Delay Intervals to express time intervals between two consecutive events in a process, Drawing rules and timing markers used to express timing constraints. OMG extended UML with a framework for representing time and time related mechanisms to support real-time software development [25]. The timed scenarios can be used to validate timing assignments and verify timing consistency [38]. Sequence diagrams are formalized based on partial ordering of events. A sequence diagram is defined by a finite set of instances, a finite set of send and receive events, a finite set of messages and a set of timing constraints. A Use case is realized by a set of sequence diagrams associated with the use case and a set of preconditions of the use case specified through Object Constraint Language (OCL) [35]. By adding post conditions of execution and execution probability of the sequences as per its associated use case, one gets a sequence diagram with statistical testing constraints. A Markov chain usage model is generated for each of these sequence diagrams assuming that the objects under testing are totally ordered. The usage model for a use case is generated by integrating all the Sequence diagrams of the use cases. Statistical test cases for testing real-time systems are automatically generated by taking timing constraints into account. High-order Markov chains are used for constructing accurate Usage models [33]. Statistical testing overcomes the shortcomings of the systematic testing in expressing software reliability [36], [37], [13]. The effectiveness of the statistical testing is determined by the accuracy of the usage model. By using high-order Markov chain in which the immediate past state is also considered along with the current state in determining the probability of event occurrence, the accuracy of the usage model is increased. High-order Markov chains are useful to generate test cases which cannot be generated by using normal Markov chains. It increases the accuracy of evaluation of software reliability and also increases the effectiveness of statistical testing. Use of an extremely high-order Markov chain has not been recommended [33] as usage characteristics may result from their recent operations rather than their distant past ones. The suitable order for each development situation can be found by setting some predefined conditions on properties like entropy, number of states, number of transitions, etc. or by extracting events having significant dependence on usage characteristics.
October Issue
Page 24 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 Sequence-based requirements specification in combination with model-based statistical testing can be used to achieve a very high degree of automation from requirements document to statistical test report [31]. Sequence-based specification is a set of techniques for stepwise construction of black box and state box specifications of software systems. It helps in analyzing the completeness and consistency of the requirements with a stepwise construction of a traceably correct black box specification [18]. Usage models can be generated using sequence diagrams drawn based on the use cases of a system. The sequence diagrams show the interaction of objects of the system in realizing the use cases [20]. In statistical testing of software, all possible uses of the software, at some level of abstraction, are represented by a statistical model wherein each possible use of the software has an associated probability of occurrence [17]. All the models referred above do not consider the usage requirements stated in terms of stimulusresponse sequences. When it comes to embedded systems, the user will be able to state what responses must be generated when some external stimuli are received. Usage models can be developed involving the external stimulus-response sequences. Development of usage models based on the stimulusresponse sequences is more appropriate and suitable for testing the embedded systems.
3. Generating Stimulus-Response sequences 3.1.
Identifying and developing the relationships among the stimuli
Step-1 The user requirements of the system must first be traced by using any of the descriptive languages in vogue. The authors have used their own language to capture the requirements for developing the formal framework that represent the requirements. The requirements that have been captured are stored in a database as shown in Table 1. The requirements should be captured from the user keeping primarily the Stimuli-Response sequences. Table 1. Requirements specification of TMCNRS User Requirement Number 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
October Issue
Usage requirement specification Every time the Sensor-1 senses Temprature-1, the same should be displayed on LCD Pump-1 must be “ON” when Temperature-1 is more than its reference temperature; else pump-1 must be “OFF” The sensed Temperature-1 should be sent to a PC (HOST) which is connected to an Embedded System in some way so that sensed Temperature is stored in a Database at the HOST Every time the Sensor-2 senses Temperature-2, the same should be displayed on LCD Pump-2 must be “ON” when Temperature-2 is more than its reference temperature: else the Pump2 must be “OFF” The sensed Temperature-2 should be sent to a PC (HOST) which is connected to an Embedded System in some way so that sensed Temperature is stored in a Database at the HOST Buzzer must be “on” when ABS (Temp1-Temp2) > 2; else it must be off A mismatch string must be displayed on LCD if ABS (Temp1-Temp2) > 2 When a reset button is pushed a message must be displayed on LCD When first key is pressed, the same must be displayed on LCD When second key is pressed, the same must be displayed on LCD
Page 25 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 User Requirement Number 12. 13. 14. 15. 16. 17. 18.
Usage requirement specification When third key is pressed, the same must be displayed on LCD When fourth key is pressed, the same must be displayed on LCD When fifth key is pressed, the same must be displayed on LCD When fifth key is pressed, a message must be displayed on LCD. When the password entered through keyboard does not match with in-built system’s password, a mismatch must be displayed on the LCD When the entered password is valid, reference Temperature-1 is read from the HOST and displayed on the LCD Reference Temperature-2 is read from the HOST after reading Reference Temperature -1 and displayed on the LCD
Step-2 The Stimulus-Responses that must be addressed by any system should be derived out of system specifications which are presented as a descriptive language. The authors have developed interactive software that captures the stimulus responses and the relationships between the stimuli by tracing the occurrence of one stimulus due to the occurrence of other. The Stimulus-Responses pairs and the relationships between the stimuli that have been captured for TMCNRS using the formal user specifications have been shown in the Table 2. Table 2. Stimulus-Response pairs and relationships between Stimuli related to TMCNRS Serial Number of StimulusResponse) Mapping 1. 2. 3. 4.
Stimulus Read Temp-1 Internal Stimulus-1 LCD Stimulus Internal-Stimulus-2
5. 6. 7.
RS232C Stimulus HOST Stimulus Internal-Stimulus-3
8.
Internal stimulus-4
9. 10.
Relay-1 Internal stimulus-5
11. 12. 13. 14. 15.
Relay-1 Read Temp-2 Internal stimulus-6 LCD Stimulus Internal Stimulus -7
16. 17.
RS232C stimulus HOST
19.
Internal Stimulus -9
18.
October Issue
Internal Stimulus -8
Condition/ Process Read Temp-1
Compare Temp-1 with Ref1 Temperature Temp1 > Ref1 Temperature-1 Temp1 < = Ref1 Temperature-1 Read Temp-2
Compare Temp2 with Ref2 Temperature Temp2 > Ref2 Temperature
Response
Display on LCD-1
Serial Number of response 1. 2.
Previous Stimuli 86 1 2 1
Send Temp-1 to HOST
3.
Pump-1 is “On”
4.
7
Pump-1 is “Off”
5.
8 7
4 5 1,74
Display on LCD-2
6.
Send Temp-2 to HOST
7.
10 90 12 13 14 15 16
12,90 Pump-2 is “On”
Page 26 of 98
8.
18
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 Serial Number of StimulusResponse) Mapping 20. 21.
Stimulus Relay-2 Internal Stimulus -10
22. 23.
Relay-2 Internal Stimulus-11
24.
Internal Stimulus-12
25. 26. 27.
LCD Stimulus Internal Stimulus-13 Internal Stimulus-14
28.
Reset
29.
Internal stimulus-15
30. 31.
LCD Stimulus Internal stimulus-16
32. 33. 34. 35.
LCD Stimulus Press Key-1 Key Board-1 stimulus A/D-1 stimulus
36.
MP-1 stimulus
37. 38. 39. 40. 41. 42.
Read Key-1 stimulus Write key-1 stimulus LCD Stimulus Press Key-2 Key-2 stimulus A/D-2 stimulus
43.
MP-2 stimulus
44. 45. 46. 47. 48. 49.
Read Key-2 stimulus Write Key-2 Stimulus LCD Stimulus Press Key-3 Key-3 stimulus A/D-3 stimulus
50.
MP-3 stimulus
51. 52. 53. 54. 55.
Read Key-3 stimulus Write key-3 stimulus LCD Stimulus Press Key-4 Key Board-4 stimulus
October Issue
Condition/ Process
Temp2 2 ABS (T1-T2) = Ref1 Temperature
LCD
PUMP-1 ON
Temp1 < Ref1 Temperature PUMP-1 OFF
Relay-1
Pump-1
Figure 2. Usage model – Temp-1 processing sub-process
October Issue
Page 31 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013
HOST
Sense Temp 2
Amplifier-2
A/D Converter
PUMP-2 OFF
MicroController
Temp2 Ref2 Temperature
Compare Temp2 with Temp1
Write Temp1
PUMP-2 ON
Write Temp1, Temp2 Mismatch
LCD
ABS (Temp1 - Temp2) < 2 Buzzer ON
Buzzer OFF ABS(Temp1-Temp2) > 2
BUZZER
Figure 3. Usage model – Temp-2 processing sub-process
October Issue
Page 32 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013
4. Conclusions CRSE stated methodology for testing of the software ensures high quality software and the effort involved for testing the software is minimal. Statistical Use Testing (SUT) is the process recommended by CRSE for undertaking the testing in the parallel path of CRSE methodology. The most important process used in CRSE for testing involves building usage models and then the Markov model. Many methods have been proposed in the past for building the Usage model. All of the models recommended are quite suitable for loaded systems. When it comes to the embedded systems, the user narrates the requirements considering the external behavior in terms of stimulus response sequences. Development of usage models considering the Stimulus-Response-Sequences is more appropriate for testing embedded systems using modified CRSE methodology.
5. References 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
A. Abdurazik and J. Offutt, “Using UML Collaboration Diagrams for Static Checking and Test Generation”, Springer Lecture Notes in Computer Science, pp.383-395, 2000. B. Beizer, Software Testing Techniques, Van Nostrand Reinhold , 1990. Binder R., Testing Object-Oriented Systems, Addison Wesley, 1999. Bruegge, B. and A.H. Dutoit, “Object Oriented Software engineering: Conquering Complex and Changing Systems”, Prentice Hall, 2000. Cockburn A., Writing Effective Use Cases, Addison-Wesley, 2001 Cockburn, A., “Structuring Use cases with goals”, Journal of Object-Oriented Programming, pp.35- 40, Sep/Oct, 1999. Cooper, A., The Inmates are Running the Asylum, Macmillan Computer Publishing, 1999. D.M. Cohen, S.R. Dalal, M.L. Fredman, and G.C. Patton, “The AETG system: An Approach to testing based on combinatorial design”, IEEE Transactions on Software Engineering, pp.437444, July, 1997. Erik Simmons, “The Usage Model: A structure for Richly Describing Product Usage during Design and Development”, Proceedings of the 13th IEEE International Conference on Requirements Engineering, 2005. F. Basanieri and A. Bertolino, “A Practical Approach to UML-Based derivation of Integration Tests”, Proc. 4th International Software Quality week Europe, Brussels, pp.20- 24, Nov, 2000. Fairley, R.E., Thayer, R.H., and Bjorke, P., “The concept of operations: The bridge from operational requirements to technical specifications”, Proceedings of First International Conference on Requirements Engineering, pp.40- 47, April, 1994. Frohlich P. and Link J., “Automated test case generation from dynamic models”, Proceedings of the 14th European Conference on Object-Oriented Programming, Springer-Verlag, pp.472-491, 2000. G.H. Walton, J.H. Poore and C.J. Trammell, “Statistical testing of software based on usage model”, Software Practice and Experience, Vol. 25, No.1, pp.97- 108, 1995. Goetze, M., “Statistical Usage Testing based on UML Diagrams”, Student's Work, Ilmenau Technical University, Dept. Process Informatics, 2001. H. Ben-abdullah and S. Leue, “Timing Constraints in Message Sequence Chart Specifications”, Proceedings of 10th International Conference on Formal Description Techniques, Japan, 1997. J Ali and J. Tanaka, “Generating Java Code from the Dynamic Model Based on Object Modeling Technique”, Information Processing society of Japan, pp.3084-3096, 1998. J. H. Poore and C. Trammell, “Engineering practices for statistical testing”, CROSSTALK, The Journal of Defense Software engineering, pp.24-28, April, 1998. J.P.Prowell., J.C. Trammell, R.C. Linger and J.H Poore, “Cleanroom Software Engineering: Technology and Process”, Addison-Wesley, 1999. L. Briand and Y.Labiche, “A UML-Based Approach to System Testing”, Carleton University TR SCR-01-01-Version 2, 2002. Lyu, M.R., Handbook of software Reliability Engineering, McGraw-Hill Companies, 1996.
October Issue
Page 33 of 98
ISSN 2229 5216
21. 22. 23.
24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 M. Grindal, J. Offutt and S.F. Andler, “Combination testing strategies: A survey”, Software Testing, Verification and Reliability, pp.167-199, Sept, 2005. M. Grindal, J. Offutt and J. Mellin, Handling constraints in the Input space when Using Combination Strategies for software testing, Technical report HS-IKI-TR-06-001, University of skovde, Sweden, 2006. Matthias Riebisch, Ilka Philippow and Marco Gotze, “UML-Based Statistical Test Case Generation”, Proceedings of Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World by Springer-Verlag, 2003. Musa, J., Software Reliability Engineering, McGraw-Hill, New York, 1999. OMG, Response to the OMG RFP for schedulability, Performance, and Time, OMG Document Number: ad/2001-06-14, June, 2001. Prowell, S.J., Trammell, C.J., Linger, R.C., Poore, J.H, “Cleanroom Software Engineering”, Addison Wesley, 1st edition, 1999. R. Alur, G.J. Holzmann and D.Peled, “An analyzer for message sequence charts”, Springer Verlag, pp.35-48, 1996. Regnell, B., Kimbler, K. and Wesslen, A., “Improving the Use case Driven Approach to Requirements Engineering”, IEEE Second International Symposium on Requirements Engineering, pp.40- 47, March,1995. Runeson, P. and Regnell, B., “Derivation of an Integrated Operational Profile and Use Case Model”, The Ninth International Symposium on Software Reliability Engineering, pp.70- 79, November, 1998. Sergiy A. Vilkomir, Thomas Swain and Jesse H. Poore , “Combinatorial test case selection with Markovian usage models”, Fifth International Conference on Information Technology: New Generations, 2008. Thomas Bauer, Frank Bohr, Dennis Landmann, Taras Beletski, Robert Eschbach and Jesse Poore, “From Requirements to Statistical Testing of Embedded Systems”, IEEE Fourth International Workshop on Software Engineering for Automative Systems IEEE, 2007. Tomohiko Takagi and Zengo Furukawa, “Constructing a Usage Model for Statistical Testing with Source Code Generation Methods”, Proceedings of the 11th Asia-Pacific Software Engineering Conference, 2004, Tomohiko Takagi and Zengo Furukawa, “Construction Method of a High-Order Markov Chain Usage Model”, 14th Asia-Pacific Software Engineering Conference, 2007. W.T. Swain and S.L. scott, “Model-Based Statistical testing of a cluster Utility”, Proceedings of the 5th International Conference on Computational Science, Atlanta, GA, USA, pp.443-450, 2005. Warmer, J. and A. kleppe, “The Object Constraint Language: Precise Modeling with UML”, Addison-Wesley, 1999. Whittaker J.A. and J.H.Poore, “Markov analysis of Software Specifications”, ACM Transactions on Software Engineering and Methodology, VOL. 20, No. 10, pp.93- 106, October,1993. Whittaker, J.A. and Thomason, M.G., “A Markov chain model for statistical software testing”, IEEE Transactions on Software Engineering, VOL. 20, No. 10, pp.812- 824, Oct,1994. X Li and J. Lilius, “Timing Analysis of UML Sequence Diagrams”, Springer Verlag, pp.661674, 1999. Yan Jiong, Wang Ji and Chen Huowang, “Deriving Software Statistical Testing Model from UML Model”, Proceedings of the Third International Conference On quality Software, 2003. Wolf, M., Burkhardt, R. and Philippow, I., “Software Engineering Process with UML”, Physica Heidelberg, 1998.
October Issue
Page 34 of 98
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 Table 3. Generated Stimuli sequences and their related responses Stimuli sequence Number 1.
StimuliSEQ-1
Stimuli SEQ- 2
Stimuli SEQ - 3
Stimuli SEQ- 4
Stimuli SEQ- 5
Stimuli SEQ- 6
Reset
Initializatio n Process Initializatio n Process Initializatio n Process
Write Initial Message-1 Write Initial Message-1
LCD stimulus MP
Read 1()
Stimuli SEQ-7
Stimuli SEQ-8
2.
Reset
3.
Reset
4.
RESET
Press Key-1
Key Board
LCD stimulus Write Initial Message-2 A/D
5.
Reset
Press Key-1
Press-Key-2
Key Board
A/D
MP
6.
Reset
Press Key-1
Press-Key-2
Press Key-3
Key Board-3
A/D-3
Read Key2() MP-3
7.
Reset
Press Key-1
Press-Key-2
Press Key-3
Key Board-4
A/D-4
MP-4
8.
Reset
Press Key-1
Press-Key-2
Press Key-3
Press Key-4 Press Key-4
Press Key-5
Key Board-5
A/D-5
9.
Reset
Press Key-1
Press-Key-2
Press Key-3
Press Key-4
Press Key-5
Compare Password
10.
Reset
Press Key-1
Press-Key-2
Press Key-3
Press Key-4
Press Key-5
Compare Password
11.
Reset
Press Key-1
Press-Key-2
Press Key-3
Press Key-4
Press Key-5
Compare Password
Display Passwo rd Mismat ch Request Ref1 Temper ature from HOST Request Ref2 Temper ature from HOST
October Issue
Stimuli SEQ-8
Stimuli SEQ-9
Stimuli SEQ-10
Response
Display on LCD Display on LCD
Page 35 of 98
Key-
Write Key()
LCD Stimulu s Write Key() Read Key-3
Display on LCD LCD Stimulus Write key-3 Read Key-4 MP-5
LCD stimulu s Write Key-4 Read Key-5
LCD Stimulus
Display on LCD Display on LCD LCD Stimulus Write key-5 LCD Stimulus
Display on LCD Display on LCD Display on LCD
Read Ref1 Temp from Host
Write Ref1 to LCD
LCD Stimulus
Display on LCD
Read Ref2 Temp from Host
Write Ref2 to LCD
LCD Stimulus
Display on LCD
ISSN 2229 5216
International Journal of Advances in Science and Technology, Vol. 7, No.4, 2013 Stimuli sequence Number 12.
StimuliSEQ-1
Stimuli SEQ- 2
Stimuli- 3
Stimuli SEQ- 4
Stimuli SEQ- 5
Stimuli SEQ- 6
Stimuli SEQ-7
Sense Temp-1 Sense Temp-1 Sense Temp-1
OP1
A/D
MP
OP1
A/D
MP
OP1
A/D
MP
Read Temp-1 Read Temp-1 Read Temp-1
Write to LCD Send to HOST RS232C
LCD stimulus RS232C stimulus HOST
15.
Sense Temp-1
OP1
A/D
MP
Read Temp-1
RS232C
HOST
16.
Sense Temp-2 Sense Temp-2 Sense Temp-2
OP2
A/D
MP
OP2
A/D
MP
A/D
MP
Write to LCD Send to HOST RS232C
LCD Stimulus RS232C
OP2
Read Temp-2 Read Temp-2 Read Temp-2
19.
Sense Temp-2
OP2
A/D
MP
Read Temp-2
RS232C
HOST
20.
Sense Temp-2
OP2
A/D
MP
Read Temp-2
Read Temp-1
21.
Sense Temp-2
OP2
A/D
MP
Read Temp-2
Read Temp-1
22.
Sense Temp-2
OP2
A/D
MP
Read Temp-2
Read Temp-1
Compare Temp-1 with Temp-2 Compare Temp-1 with Temp-2 Compare Temp-1 with Temp-2
13. 14.
17. 18.
October Issue
Page 36 of 98
HOST
Stimuli SEQ-8
HOST Stimulus Read Ref1 Temp from Host Read Ref1 Temp from Host
Stimuli SEQ-8
Stimuli SEQ-9
Stimuli SEQ-10
Compare Temp-1 with Ref1 Compare Temp-1 with Ref1
Pump-1 ON
Relay-1
Pump-1 OFF
Relay-1
Compare Temp-2 with Ref2 Compare Temp-2 with Ref1 LCD Stimulus
Pump-2 ON
Relay2
Pump-2 OFF
Relay2
HOST Read Ref2 Temp from Host Read Ref2 Temp from Host Write Temp mismatch to LCD Buzzer On
Buzzer Of
Response Display on LCD Send t tp HOST Pump1ON Pump1OFF Display on LCD Send to HOST Pump-2 ON Pump-2 OFF Display on LCD Buzzer On Buzzer Of
ISSN 2229 5216