An Automatic Test Case Generator for Testing Safety-Critical Software Systems
|
|
- Jared Burke
- 5 years ago
- Views:
Transcription
1 An Automatic Test Case Generator for Testing Safety-Critical Software Systems Mehdi Malekzadeh Faculty of Computer Science and IT University of Malaya Kuala Lumpur, Malaysia Raja Noor Ainon Faculty of Computer Science and IT University of Malaya Kuala Lumpur, Malaysia Abstract This paper presents the development of an automatic test case generator (ATCG) for testing safety-critical software systems based on the concepts of specification-based testing. The ATCG receives the specification of system under test in normal specification language form and the causes and effects are automatically extracted and it also will visualize the cause-effect graph specification model. Finally test cases are generated by using cause-effect graph software testing methods in detail combined with Boolean operator techniques. Often in ATCGs too many test cases are created but the results are not always perfect. In testing our ATCG, experimental results showed that quality test cases are produced and that redundant test cases are ignored. Keywords- cause effect graph; requirment specification; safety critical system; test case generator I. INTRODUCTION Electrical systems play a critical part in every aspect of our everyday life, from cooking in kitchens, to working in offices. In many cases this type of electrical systems is combined with embedded software. Malfunction of software of these systems could be disastrous to human life. In fact, the role of software has moved from simple financial or other mathematical software system to controlling and monitoring device which directly impacts human life. Many such important systems exist in application areas such as aerospace, transportation, defense, power-generation, and medical devices. The focus is on the software aspect of these systems. Because the correct operation of these systems depends on software, the possibility of serious damage resulting from a software defect is considerable and growing. As a result, we need some methods to predict and assess the safety and reliability of software. Generally, Software testing is a best method for validating and checking the correctness of those safety critical systems containing software. Therefore the safety critical software must be comprehensively tested, before it is put into practical use. Software testing of critical systems is time consuming and it uses up to half of the overall software cost. Therefore, automated testing is becoming significant in research and industrial communities. Testing has several procedures, including generating test cases, test case execution, comparing expected output with /10/$26.00 C 2010 IEEE actual results, correcting software faults, and managing the whole enterprise [1]. The emphasis of this work is to automate the generation of efficient software test cases. In order to generate test cases, this research has applied test case generation strategies in a black-box testing where testers apply different inputs and compare the output versus specification to validate the correctness of system under the test [2]. The tester does not know about the internal structure of the program and test cases are chosen according to the requirements declared in the specification. In other words, a specification offers an accurate description of the software s basic functionality aspects without more detailed information. Black Box testing consisted of several techniques for generating test cases, including Equivalence Partitioning Partition, Boundary value analysis and Cause-effect graphing. The first two techniques are important for data processing intensive applications while cause-effect graphing (CEG) is normally used for control intensive applications [2]. The focus of this work is on CEG technique for generating test cases. This method is a specification-based technique which allows the tester to create a combination of inputs for creating test cases. The natural language specification is broken down and analyzed, and then causes (inputs) and effects (intermediate results, messages, outputs) and the limitations (constraints) among the causes or effects are identified. The relation between causes and effects are shown as an acyclic Boolean logic network, called Cause-Effect Graph. In other words, a cause-effect graph is a specification model that is translated from natural language specification. The graph is then converted to a limited-entry decision table. Each column in the decision table represents a test case [2, 3]. This study attempts to address the development of an easy-to-use automated test case generator (ATCG). It receives the specification of system in natural language and converts them in good understanding cause effect graph model. A list of test cases is then automatically generated by using this tool. II. RELATED WORKS Initially, CEG had been used as a hardware testing method but later it was customized for software testing. Elmendorf [3] has developed the CEG notation and suggested an algorithm for creating tests from a CEG. Myers 163
2 [2] designed an algorithm to trace CEG methodically and selected an efficient set of test cases. Nursimlu and Probert [3] discussed about the strengths and weaknesses of Myers s approach and they presented possible corrections. They pointed out that one of main problems in Myers s method is that if a CEG has been written in different syntax even though the semantics are the same, a different decision table could be derived. They found methods based on Path Sensitization technique for improving decision table creation. Yokoi and Ohba [4] designed a Test Case Generator tool for generating test cases by using CEG. In this method for generating test cases, the natural-language specification is converted into a textual representation of the CEG. The authors assert that this tool improved the original method by arranging constraint descriptions among specifications and showed that it generates a decreasing number of test cases. In this tool the equivalence partitioning method was adopted in order to decrease the number of test cases. As the creation of a single CEG for a large software system is not practical, Tai et al. [5] suggested a strategy for CEG construction that recognizes most important software specification effects and makes CEG only for these critical effects.they recommended the methods based on the theory of operational profiles and the risk management techniques to rank effects by criticality. They have proposed a strategy for generating test cases by using cause-effect graphs (CEG) in conjunction with the Boolean Operator (BOR) test approach called CEG-BOR. This method concentrates on propositional logic representation of the software specification and also it is useful in finding Boolean Operator faults as well as finding other types of faults. One of the limitations of CEG-BOR method is that every cause is considered as an individual Boolean variable that may cause impracticable test cases to be generated [3]. They suggested combining the BOR method with another method named Meaningful Impact (MI) strategy. This method is based on the detection of missing and/or extra negation operators on individual variables. They called BOR+MI. Paradkar et al. [7] have compared the recent methods. They compared CEG-BOR method with Elmendorf s algorithm and Yokoi and Ohba s method for generating test cases. They mentioned CEG-BOR method has important benefits in compare to other methods. One advantage is that the size of a CEG-BOR test case for an effect node is linear with the number of nodes linked with the effect in the CEG. Desel et al. [8] proposed a testing technique which generates test cases for validation of high-level Petri nets in a systematic way. This method has been obtained from CEG technique. In their approach the association between cause and effects is represented by Petri net. The specifications of information system behavior are modeled into High-level Petri nets. They proposed a systematic method for testing of Petri net models that is named causeeffect-net-concept. It was derived from the concept of cause effect graphing. III. ATCG S STRATEGY Our work involved automating the techniques proposed by Tai et al [5, 6] for generating set of test cases from CEG. We have selected the CEG method as a basic method to develop our tool as this method transforms the specification of the system under test to an accurate and easy to understand model of specification with emphasis on critical aspects of software system without more detailed information. In addition to, deriving tests from the software specification helps to expose ambiguities and/or inconsistencies in the specification. These can then be fixed early in the development cycle at a minimum of cost. Furthermore, CEG techniques allow to the tester to use a combination of inputs [9]. CEG-BOR technique is chosen because it produces the minimum number of test cases to cover 100% of the functional requirements. In addition it is cost-effective method with potential to be automated [7]. Fig. 1 shows the architecture of the proposed tool. There are five main components, including read specification from file, produce cause-effect table, produce Boolean expression, visualize cause-effect graph and generate test cases. Figure 1. Natural language specification Read specification from text file Generate Cause and Effect Table Produce Related Boolean Expression Visualize Cause-Effect Graph Generate Test Cases for an Effect Architecture of the proposed tool. The functionality provided by each component is briefly described below: 164
3 A. Read Specification This component opens a text file consisting of a specification of a critical system that has been written in natural language. The first line of text file is an effect and the remaining lines are compound predicates which are predicates with one or more AND/OR operators. Each compound predicate includes several causes. This component generates tokens, which are input to the generate cause-effect table component. B. Generate Cause-Effect Table This component accepts the tokens generated by previous component, and recognizes each cause based on Boolean Operator (AND/OR) between causes. In addition the first line of text file states the effect. Finally, a causeeffect table will be created. C. Produce Boolean Expression This component produces a Boolean expression by reading causes from a cause-effect table, assigning variable to each cause and combining causes together with related Boolean operators. It replaces the Boolean operator between causes with equivalent mathematical one, i.e. OR to + and AND to *. D. Visualize Cause-Effect Graph The ATCG draws the CEG automatically based on Boolean expression which has been provided by previous component. In order to draw CEG, ATCG converts infix Boolean expression to postfix Boolean expression in the beginning. Because parsing a postfix Boolean expression is much easier than infix one. For example E=a*(b+c) is an infix Boolean expression, the related postfix one will be E=abc+*. In some cases, there are set of constraint for causes that are prepared by tester. Constraints represent external constraints on the system. For causes, valid constraint symbols are E (exclusive), O (one and only one), and I (at least one). The ATCG receives the set of constraints as input and shows them on generated CEG properly. Fig. 2 shows an algorithm which is used by ATCG for visualizing CEG. E. Generate test cases Generate test cases is a most important component in our tool. This component is designed to generate test cases in order to test critical software system. The test cases are generated automatically based on a Boolean expression. Like Visualize Cause-Effect Graph component, the test case component also applies postfix Boolean expression for test case generation. In this research, the BOR testing approach has been used in designing test case generation algorithm. This strategy utilizes cause-effect graphs (CEG) in conjunction with the Boolean Operator (BOR) test strategy [5]. In a CEG, an effect node and its associated portion of the CEG denote a compound predicate in terms of causes. Since a CEG represents a set of compound predicates, the BOR testing strategy can be applied to generate tests. In the BOR testing strategy, each cause node is viewed as a Boolean variable and has "t" or "f" as its value. BOR method produces a minimum BOR constraint set for a compound predicate. Below we describe an adapted version of algorithm BOR in order to produce a minimum BOR test set for a CEG. The nodes in a CEG are visited from cause nodes to effect nodes. A set of test for this node and its associated CEG is created when a node is visited. After the visit of an effect node, a test for the CEG is available. The following are number of definitions that must be understood before we show the test generation algorithm. Let A and B be two sets. A U B denotes the union of A and B, A B the product of A with B, and A the size of A. A B, called the onto from A to B. If both A and B have two or more elements, A B has several possible values and returns any one of them. For example, assume that A = {(a), (b)} and B = {(c), (d)}. Then, A B has two possible sets of elements: {(a,c), (b,d)} and {(a,d),(b,c)}. 1. Convert Infix BooleanExp to Postfix 2. For each character has read from PostfixBooleanExp 3. If the char is an operand 4. Create new node as a cause 5. Else { //the char is operator 6. If two previous nodes are causes { 7. If the recent operator is first operator 8. Create Intermediate node 9. Connect two previous cause nodes to this node 10. If the recent operator as the same as previous intermediate node operator 11. Connect two previous cause nodes to previous Intermediate node}//end if 12. If two previous nodes are intermediate node 13. Find the intermediate node that has same operator as recent operator and connect other intermediate node to this node. 14. If one of two previous nodes is intermediate and other node is cause node { 15. If the operator of intermediate node is the same as recent operator 16. Connect the cause node to intermediate node Else Create new intermediate node} }//End main else Figure 2. An algorithm for visualizing CEG from Boolean expression. 1) BOR algorithm For a cause node N, the minimum BOR test set is {(t), (f)}. Assume that N1 and N2 are nodes in a CEG and that Sl= {(t), (f)} and S2= {(t), (f)} are minimum BOR test sets for N1 and N2 respectively. The following three basic rules explain how to derive a BOR set of test cases for a node with none or both its inputs being intermediate nodes. a) A minimum BOR test set S for an AND node with N1 and N2 as inputs is constructed as follows: S_t=Sl_t S2_t S_f = (S1_f {t2}) U ({tl} S2_f) 165
4 Where tl S1_t, t2 S2_t, and (tl, t2) S_t. b) A minimum BOR test set S' for an OR node with N1 and N2 as inputs is constructed as follows: S'_f=Sl_f S2 _f S'_t = (S1_t {f2}) U ({fl} S2_t) Where fl S1_f, f2 S2_f, and (fl, f2) S'_f. c) A minimum BOR test set S" for a NOT node with N1 as the input is constructed as follows: S"_t = Sl_f S"_f=S1_t IV. CASE STUDY This section explains the application of ATCG Tool for a simplified boiler control and monitoring system. In order to apply ATCG as tool for generating test cases, the informal specification must be converted to formal specification language which is accepted by ATCG. The formal specification are saved in textual file, the first line of text file shows the effect of system under test and remained lines mention to the causes associated with that effect. The specifications for suggested system are shown in Fig. 3. In addition to, Table I shows a cause-effect table for boiler control system and also related CEG based on these critical specifications are represented in Fig. 4. Figure 4. by ATCG. The cause-effect graph for simplified boiler system generated The boiler should be shutdown. [Effect] If the water Level in a boiler is below the 20,000lb. If the water Level in a boiler is above the 120,000lb. If (a water pump has failed OR a pump monitor has failed) AND Steam meter has failed. Figure 3. The specification of simplified boiler system. TABLE II. THE SET OF TEST CASES FOR TESTING SIMPLIFIED BOILER SYSTEM No. a b c d e Result 1 T F F F T T 2 T F T F F T 3 T F F T F T 4 F T F F T T Table I. THE CAUSE-EFFECT TABLE FOR TESTING SIMPLIFIED BOILER SYSTEM No Variable Causes 0 a the water Level in a boiler is below the 20,000lb 1 b the water Level in a boiler is above the120,000lb 2 c a water pump has failed 3 d a pump monitor has failed 4 e Steam meter has failed EFFECT: The boiler should be shutdown. 5 F T T F F T 6 F T F T F T 7 F F T F T T 8 F F F T T T 9 F F F F T F 10 F F T F F F 11 F F F T F F Table II represents the set of test cases that has been produced by ATCG in order to test a simplified boiler control and monitoring system. V. VALIDATION OF TOOL This section discusses the experimental results of ATCG execution in order to evaluate the correctness of produced outputs. The ATCG is tested against several examples, Now, we prove the correctness of list of test cases 166
5 produced by ATCG its associated with CEG in Fig. 4, which denote to the Boolean expression E= a+b+((c+d)*e). Proof of the correctness of related cause-effect Table, Boolean expression and cause-effect Table is simple based on observation. The important issue is proof of the correctness of generated test cases. In order to verify the correctness of test cases we create set of test cases manually by using BOR rules. There are five causes (a, b, c, d) in a CEG and S1= {(t), (f)}, S2= {(t), (f)}, S3= {(t), (f)}, S4= {(t), (f)} and S5= {(t), (f)} are minimum BOR test set for a, b, c, d, e respectively. We have to apply BOR rules as mentioned in BOR algorithm section. By applying rule b for node N2 we have: S'_f(N2)=S3_f S4 _f= {(F,F)} S'_t(N2) = (S3_t {f4}) U ({f3} S4_t) = {(T,F), (F,T)} By applying rule a for node N3 we have: S_t(N3)= S'_t (N2) S5_t = {(T,F,T),(F,T,T)} S_f(N3) = (S'_f {t5}) U ({t_n2} S5_f)= {(F,F,T),(T,F,F),(F,T,F)} By applying rule b for (a+b) we have: S'_f (a+b)=sl_f S2 _f= {(F,F)} S'_t (a+b) = (S1_t {f2}) U ({fl} S2_t) = {(T,F), (F,T)} By applying rule b for N1= (a+b)+n3 we have: S'_f(N1)=S'_f(a+b) S_f(N3)={(F,F,F,F,T), (F,F,T,F,F),( F,F,F,T,F } S'_t(N1) = (S'_t(a+b) {f_n3}) U ({f(a+b)} S_t(N3))={(T,F,F,F,T),(T,F,T,F,F),(T,F,F,T,F), (F,T,F,F,T),(F,T,T,F,F),(F,T,F,T,F),(F,F,T,F,T),(F,F,F,T,T)} silver bullet to address all the requirements. As a suggestion it is better to apply a combination of techniques for generating tests that ensure good coverage and good quality. REFERENCES [1] N. Kobayashi, Design and Evaluation of Automatic Test Generation Strategies for Functional Testing of Software, PH.D: OSAKA, 2002, p. 125 [2] G. J. Myers, C. Sandler, T. Badgett, and T. M. Thomas, The Art of Software Testing, 2nd ed. New York: John Wiley, [3] K. Nursimulu and R. L. Probert, Cause-effect graphing analysis and validation of requirements," In Proceedings of the conference of the Centre for Advanced Studies on Collaborative research, Toronto, Ontario, Canada, 1995, pp [4] S. Yokoi and M. Ohba, "TCG:CEG-based tool and its experiments," In Proc of 13th Software Reliability Symposium, Nara, Japan, Nov 1992, pp [5] K. C. Tai, M. A. Vouk, A. Paradkar, and P. Lu, Evaluation of a Predicate-Based Software Testing Strategy, IBM Systems Journal, vol. 33, pp , [6] A. Paradkar and K. C. Tai, Test Generation for Boolean Expressions, In Proceedings of International Symposium on Software Reliability Engineering'95, Oct,1995,Toulouse, France, pp [7] A. Paradkar, K. C. Tai, and M. A. Vouk, Specification-Based Testing Using Cause-Effect Graph, IBM System Journal, vol. 4, pp , [8] J. Desel, A. Oberweis, and T. Zimmer, A test case generator for the validation of high-level Petri nets, Proceedings of 6th International Conference on Emerging Technologies and Factory Automation (ETFA '97), 9-12 September, 1997, UCLA, Los Angeles,USA, pp [9] E. Kit, Software testing in real world: addison-wesley, The above outcomes prove the correctness of tests produced by ATCG tool for a simplified boiler control and monitoring system. Since, the number of test cases has generated by tool is the same as number of tests produced in above for node N1. Furthermore, the set of produced test cases by ATCG is equivalent with the set of test cases that has been produced manually by applying BOR rules. Testing of critical software system is very important, since the selected testing tool must produce all rational conditions to prove that a failure never occurs in the controlling of critical system. VI. CONCLUSIONS The main objective of this work is development of an easy-to-use automated test case generator tool (ATCG) especially for safety-critical software systems. It receives the specification of system in natural language and converts it to an understanding cause effect graph model. The tester can convert a model to a list of test cases automatically by using this application. It is seen that set of test cases is improved by eliminating redundant test cases. It is clear that this tool has some limitations such as generating test cases just for one effect in each execution. Absolutely, there is no one 167
Black Box Testing (revisited) Csci 565 Spring 2007
Black Box Testing (revisited) Csci 565 Spring 2007 Objectives Cause-Effect Graphs in Functional testing Input validation and Syntax-driven Testing Decision Table-Based Testing State transition testing
More informationSpecication-Based Testing Using Cause-Eect Graphs 1) North Carolina State University. Raleigh, NC , USA
Specication-Based Testing Using Cause-Eect Graphs 1) Amit Paradkar 2), K. C. Tai, and M. A. Vouk Department of Computer Science North Carolina State University Raleigh, NC 27695-8206, USA e-mail : fkct,voukg@adm.csc.ncsu.edu
More informationBOOLEAN SPECIFICATION BASED TESTING TECHNIQUES: A SURVEY
BOOLEAN SPECIFICATION BASED TESTING TECHNIQUES: A SURVEY 1 Usha Badhera 2 Purohit G.N 3 S.Taruna Computer Science Department, Banasthali University, India 1 ushas133@yahoo.com, 2 gn_purohitjaipur@yahoo.co.in
More informationFAULT BASED TECHNIQUES FOR TESTING BOOLEAN EXPRESSIONS: A SURVEY
FAULT BASED TECHNIQUES FOR TESTING BOOLEAN EXPRESSIONS: A SURVEY 1 Usha Badhera 2 Purohit G.N 3 S.Taruna Computer Science Department, Banasthali University, India 1 ushas133@yahoo.com, 2 gn_purohitjaipur@yahoo.co.in
More informationInternational Journal of Computer Engineering and Applications, Volume XII, Special Issue, September 18, ISSN SOFTWARE TESTING
International Journal of Computer Engineering and Applications, Volume XII, Special Issue, September 18, www.ijcea.com ISSN 2321-3469 SOFTWARE TESTING Rajat Galav 1, Shivank Lavania 2, Brijesh Kumar Singh
More informationProving the Correctness of Distributed Algorithms using TLA
Proving the Correctness of Distributed Algorithms using TLA Khushboo Kanjani, khush@cs.tamu.edu, Texas A & M University 11 May 2007 Abstract This work is a summary of the Temporal Logic of Actions(TLA)
More informationComposability Test of BOM based models using Petri Nets
I. Mahmood, R. Ayani, V. Vlassov and F. Moradi 7 Composability Test of BOM based models using Petri Nets Imran Mahmood 1, Rassul Ayani 1, Vladimir Vlassov 1, and Farshad Moradi 2 1 Royal Institute of Technology
More informationSoftware Testing. 1. Testing is the process of demonstrating that errors are not present.
What is Testing? Software Testing Many people understand many definitions of testing :. Testing is the process of demonstrating that errors are not present.. The purpose of testing is to show that a program
More informationMONIKA HEINER.
LESSON 1 testing, intro 1 / 25 SOFTWARE TESTING - STATE OF THE ART, METHODS, AND LIMITATIONS MONIKA HEINER monika.heiner@b-tu.de http://www.informatik.tu-cottbus.de PRELIMINARIES testing, intro 2 / 25
More informationFault propagation in tabular expression-based specifications
Title Fault propagation in tabular expression-based specifications Authors) Feng, X; Parnas, DL; Tse, TH Citation The 32nd Annual IEEE International Computer Software and Applications Conference COMPSAC
More informationInternational Journal of Computer Engineering and Applications, Volume XII, Special Issue, April- ICITDA 18,
International Journal of Computer Engineering and Applications, Volume XII, Special Issue, April- ICITDA 18, www.ijcea.com ISSN 2321-3469 SOFTWARE TESTING Rajat Galav, Shivank Lavania Student, Department
More informationSemantics. There is no single widely acceptable notation or formalism for describing semantics Operational Semantics
There is no single widely acceptable notation or formalism for describing semantics Operational Describe the meaning of a program by executing its statements on a machine, either simulated or actual. The
More informationImage Segmentation Based on Watershed and Edge Detection Techniques
0 The International Arab Journal of Information Technology, Vol., No., April 00 Image Segmentation Based on Watershed and Edge Detection Techniques Nassir Salman Computer Science Department, Zarqa Private
More informationAn Environment for Training Computer Science Students on Software Testing
An Environment for Training Computer Science Students on Software Testing Jim Collofello and Kalpana Vehathiri Department of Computer Science and Engineering, Arizona State University Tempe, Arizona 85287
More informationWeb Service Response Time Monitoring: Architecture and Validation Sara Abbaspour Asadollah, Thiam Kian Chiew
Advances in Mathematical and Computational Methods, ISSN 2160-0635 Volume 2, Number 3, September, 2012 Web Service Response Time Monitoring: Architecture and Validation Sara Abbaspour Asadollah, Thiam
More informationImportance of Predicatebased. Predicate-based Testing. Terms Defined. Terms Defined (2) Terms Defined (3) Assumptions. Thorough testing of C used to
Predicate-based Testing Predicates are conditions Divides the input domain into partitions Define the paths of the program Program P Input X; Predicate C If outcome of C is incorrect, Either C is incorrect,
More informationIMPROVING THE RELEVANCY OF DOCUMENT SEARCH USING THE MULTI-TERM ADJACENCY KEYWORD-ORDER MODEL
IMPROVING THE RELEVANCY OF DOCUMENT SEARCH USING THE MULTI-TERM ADJACENCY KEYWORD-ORDER MODEL Lim Bee Huang 1, Vimala Balakrishnan 2, Ram Gopal Raj 3 1,2 Department of Information System, 3 Department
More informationChapter 3. Describing Syntax and Semantics
Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:
More informationSC/MATH Boolean Formulae. Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, York University
SC/MATH 1090 1- Boolean Formulae Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, 2008. York University Department of Computer Science and Engineering York University- MATH 1090 01-Boolean 1 Overview
More informationStudy about Application of Formal Methods in Consideration of Convenience by the Example of the Electric Pot
1 1 1 1 0,,, Study about Application of Formal Methods in Consideration of Convenience by the Example of the Electric Pot Abstract: It had been emphasized that formal methods in software development are
More informationFormal Approach in Software Testing
Formal Approach in Software Testing #Abhishek Dixit, #Shivani Goel 1 csed, TIET biodatadixit@yahoo.co.in 2 csed, TIET shivani@tiet.ac.in Abstract Testing is an important activity for checking the correctness
More informationChapter 3. Describing Syntax and Semantics ISBN
Chapter 3 Describing Syntax and Semantics ISBN 0-321-49362-1 Chapter 3 Topics Describing the Meanings of Programs: Dynamic Semantics Copyright 2015 Pearson. All rights reserved. 2 Semantics There is no
More informationFault Class Prioritization in Boolean Expressions
Fault Class Prioritization in Boolean Expressions Ziyuan Wang 1,2 Zhenyu Chen 1 Tsong-Yueh Chen 3 Baowen Xu 1,2 1 State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210093,
More informationGEORGE J. ANDERS, Ph.D., P.Eng., Fellow IEEE
GEORGE J. ANDERS, Ph.D., P.Eng., Fellow IEEE George Anders is a president of Anders Consulting. Between 1975 and 2012 he has been employed by Ontario Hydro and its successor companies in Toronto, Canada.
More informationDEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Subject Name: CS2352 Principles of Compiler Design Year/Sem : III/VI
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Subject Name: CS2352 Principles of Compiler Design Year/Sem : III/VI UNIT I - LEXICAL ANALYSIS 1. What is the role of Lexical Analyzer? [NOV 2014] 2. Write
More informationDiscrete Event Simulation and Petri net Modeling for Reliability Analysis
Discrete Event Simulation and Petri net Modeling for Reliability Analysis * Behrouz Safarinejadian Shiraz University of Technology, safarinejad@sutech.ac.ir Abstract. Analytical methods in reliability
More informationPart I: Preliminaries 24
Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................
More informationTest Generation from Requirements I UNIT III Software Testing. Boundary Value Analysis and Equivalent Partitioning based methods
SOFTWARE TESTING Test Generation from Requirements II Cause Effect Graphs Predicates Limitations of the other Methods Boundary Value Analysis and Equivalent Partitioning based methods - Result in too many
More informationSummary of Course Coverage
CS-227, Discrete Structures I Spring 2006 Semester Summary of Course Coverage 1) Propositional Calculus a) Negation (logical NOT) b) Conjunction (logical AND) c) Disjunction (logical inclusive-or) d) Inequalities
More informationParnas Tables: A Practical Formalism. Joanne M. Atlee Department of Computer Science University of Waterloo
Parnas Tables: A Practical Formalism Joanne M. Atlee Department of Computer Science University of Waterloo Critical Software Medical Devices Transportation Telecommunications Automated Manufacturing Software
More informationGujarat Technological University Sankalchand Patel College of Engineering, Visnagar B.E. Semester VII (CE) July-Nov Compiler Design (170701)
Gujarat Technological University Sankalchand Patel College of Engineering, Visnagar B.E. Semester VII (CE) July-Nov 2014 Compiler Design (170701) Question Bank / Assignment Unit 1: INTRODUCTION TO COMPILING
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationA simple syntax-directed
Syntax-directed is a grammaroriented compiling technique Programming languages: Syntax: what its programs look like? Semantic: what its programs mean? 1 A simple syntax-directed Lexical Syntax Character
More informationProducing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari
Producing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari Abstract Graphical User Interface (GUI) is essential to programming, as is any other characteristic
More informationChapter 3. Syntax - the form or structure of the expressions, statements, and program units
Syntax - the form or structure of the expressions, statements, and program units Semantics - the meaning of the expressions, statements, and program units Who must use language definitions? 1. Other language
More informationLecture 10: Introduction to Correctness
Lecture 10: Introduction to Correctness Aims: To look at the different types of errors that programs can contain; To look at how we might detect each of these errors; To look at the difficulty of detecting
More informationSingle-pass Static Semantic Check for Efficient Translation in YAPL
Single-pass Static Semantic Check for Efficient Translation in YAPL Zafiris Karaiskos, Panajotis Katsaros and Constantine Lazos Department of Informatics, Aristotle University Thessaloniki, 54124, Greece
More informationAerospace Software Engineering
16.35 Aerospace Software Engineering Verification & Validation Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT Would You...... trust a completely-automated nuclear power plant?... trust a completely-automated
More informationWhite-Box Testing Techniques III
White-Box Testing Techniques III Software Testing and Verification Lecture 9 Prepared by Stephen M. Thebaut, Ph.D. University of Florida White-Box Testing Topics Logic coverage (lecture I) Dataflow coverage
More informationUSTGlobal INNOVATION INFORMATION TECHNOLOGY. Using a Test Design Tool to become a Digital Organization
USTGlobal INNOVATION INFORMATION TECHNOLOGY Using a Test Design Tool to become a Digital Organization Overview: Automating test design reduces efforts and increases quality Automated testing resolves most
More informationA Framework for Reliability Assessment of Software Components
A Framework for Reliability Assessment of Software Components Rakesh Shukla, Paul Strooper, and David Carrington School of Information Technology and Electrical Engineering, The University of Queensland,
More informationCOMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou
COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou Administrative! Any questions about the syllabus?! Course Material available at www.cs.unic.ac.cy/ioanna! Next time reading assignment [ALSU07]
More informationFormal Methods. CITS5501 Software Testing and Quality Assurance
Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981
More informationCompiler Design Aug 1996
Aug 1996 Part A 1 a) What are the different phases of a compiler? Explain briefly with the help of a neat diagram. b) For the following Pascal keywords write the state diagram and also write program segments
More informationPart 5. Verification and Validation
Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this
More informationIntelligent Risk Identification and Analysis in IT Network Systems
Intelligent Risk Identification and Analysis in IT Network Systems Masoud Mohammadian University of Canberra, Faculty of Information Sciences and Engineering, Canberra, ACT 2616, Australia masoud.mohammadian@canberra.edu.au
More informationThis book is licensed under a Creative Commons Attribution 3.0 License
6. Syntax Learning objectives: syntax and semantics syntax diagrams and EBNF describe context-free grammars terminal and nonterminal symbols productions definition of EBNF by itself parse tree grammars
More informationAutomation Systems Discrete Event Control Systems and Networked Automation Systems
Automation Systems Discrete Event Control Systems and Networked Automation Systems 2 nd Lecture Control Design Process System theory or Software-Engineering? System Theory Starting point: mathematical
More informationCSE 20 DISCRETE MATH. Fall
CSE 20 DISCRETE MATH Fall 2017 http://cseweb.ucsd.edu/classes/fa17/cse20-ab/ Final exam The final exam is Saturday December 16 11:30am-2:30pm. Lecture A will take the exam in Lecture B will take the exam
More informationToken based clone detection using program slicing
Token based clone detection using program slicing Rajnish Kumar PEC University of Technology Rajnish_pawar90@yahoo.com Prof. Shilpa PEC University of Technology Shilpaverma.pec@gmail.com Abstract Software
More informationMATVEC: MATRIX-VECTOR COMPUTATION LANGUAGE REFERENCE MANUAL. John C. Murphy jcm2105 Programming Languages and Translators Professor Stephen Edwards
MATVEC: MATRIX-VECTOR COMPUTATION LANGUAGE REFERENCE MANUAL John C. Murphy jcm2105 Programming Languages and Translators Professor Stephen Edwards Language Reference Manual Introduction The purpose of
More informationTopics in Software Testing
Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the
More informationA Partial Correctness Proof for Programs with Decided Specifications
Applied Mathematics & Information Sciences 1(2)(2007), 195-202 An International Journal c 2007 Dixie W Publishing Corporation, U. S. A. A Partial Correctness Proof for Programs with Decided Specifications
More informationARELAY network consists of a pair of source and destination
158 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL 55, NO 1, JANUARY 2009 Parity Forwarding for Multiple-Relay Networks Peyman Razaghi, Student Member, IEEE, Wei Yu, Senior Member, IEEE Abstract This paper
More informationPropositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson
Propositional Calculus: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and
More informationthese developments has been in the field of formal methods. Such methods, typically given by a
PCX: A Translation Tool from PROMELA/Spin to the C-Based Stochastic Petri et Language Abstract: Stochastic Petri ets (SPs) are a graphical tool for the formal description of systems with the features of
More informationWhat is Mutation Testing?
What is Mutation Testing? The premise in mutation testing is that small changes are made in a module and then the original and mutant modules are compared. Similar idea to error seeding: introduce defects
More informationIntegrating SysML and OWL
Integrating SysML and OWL Henson Graves Lockheed Martin Aeronautics Company Fort Worth Texas, USA henson.graves@lmco.com Abstract. To use OWL2 for modeling a system design one must be able to construct
More informationTaxonomy Dimensions of Complexity Metrics
96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,
More informationVERIFYING BPMN PROCESSES USING GENERALIZED NETS. Pavel Tcheshmedjiev
Годишник на секция Информатика Съюз на учените в България Том 5, 2012, 111-119 Annual of Informatics Section Union of Scientists in Bulgaria Volume 5, 2012, 111-119 VERIFYING BPMN PROCESSES USING GENERALIZED
More informationChapter 3. Describing Syntax and Semantics ISBN
Chapter 3 Describing Syntax and Semantics ISBN 0-321-49362-1 Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the
More informationIntroduction to Lexical Analysis
Introduction to Lexical Analysis Outline Informal sketch of lexical analysis Identifies tokens in input string Issues in lexical analysis Lookahead Ambiguities Specifying lexers Regular expressions Examples
More informationTechniques for the unambiguous specification of software
Formal Techniques for the unambiguous of software Objectives To explain why formal techniques help discover problems in system requirements To describe the use of algebraic techniques for interface To
More informationPROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE
International Journal of Computer Science and Communication Vol. 2, No. 1, January-June 2011, pp. 153-157 PROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE Neeraj Kumar Singhania University,
More informationFormal Validation of DNA Database Using Theorem Proving Technique
Formal Validation of DNA Database Using Theorem Proving Technique Julaily Aida Jusoh, Md Yazid Mohd Saman, and Mustafa Man Jabatan Sains Komputer, Fakulti Sains Dan Teknologi, Universiti Malaysia Terengganu,
More informationIMPERATIVE PROGRAMS BEHAVIOR SIMULATION IN TERMS OF COMPOSITIONAL PETRI NETS
IMPERATIVE PROGRAMS BEHAVIOR SIMULATION IN TERMS OF COMPOSITIONAL PETRI NETS Leontyev Denis Vasilevich, Kharitonov Dmitry Ivanovich and Tarasov Georgiy Vitalievich ABSTRACT Institute of Automation and
More informationChapter 3. Describing Syntax and Semantics
Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:
More informationGoals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1
Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal
More informationFormal Methods for Software Engineers
Formal Methods for Software Engineers Professor Ray Welland Department of Computing Science University of Glasgow ray@dcs.gla.ac.uk INF3120-FM 1 Overview Motivation Why have formal specifications? Where
More informationSoftware Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives
Software Testing Fundamentals Software Testing Techniques Peter Lo Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding.
More informationCS 395T Computational Learning Theory. Scribe: Wei Tang
CS 395T Computational Learning Theory Lecture 1: September 5th, 2007 Lecturer: Adam Klivans Scribe: Wei Tang 1.1 Introduction Many tasks from real application domain can be described as a process of learning.
More informationA Simple Syntax-Directed Translator
Chapter 2 A Simple Syntax-Directed Translator 1-1 Introduction The analysis phase of a compiler breaks up a source program into constituent pieces and produces an internal representation for it, called
More informationStatic Analysis Techniques
oftware Design (F28SD2): Static Analysis Techniques 1 Software Design (F28SD2) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh oftware
More informationDistributed Systems Programming (F21DS1) Formal Verification
Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on
More informationTest design techniques
INF3121 : Software Testing 12. 02. 2015 Lecture 4 Test design techniques Lecturer: Raluca Florea INF3121/ 12.02.2015 / Raluca Florea 1 Overview 1. The test development process 2. Categories of test design
More informationIntroduction to Dynamic Analysis
Introduction to Dynamic Analysis Reading assignment Gary T. Leavens, Yoonsik Cheon, "Design by Contract with JML," draft paper, http://www.eecs.ucf.edu/~leavens/jml//jmldbc.pdf G. Kudrjavets, N. Nagappan,
More informationSmart Test Case Quantifier Using MC/DC Coverage Criterion
Smart Test Case Quantifier Using MC/DC Coverage Criterion S. Shanmuga Priya 1, Sheba Kezia Malarchelvi 2 Abstract Software testing, an important phase in Software Development Life Cycle (SDLC) is a time
More informationINSTITUTE OF AERONAUTICAL ENGINEERING
INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 043 INFORMATION TECHNOLOGY TUTORIAL QUESTION BANK Name : PRINCIPLES OF PROGRAMMING LANGUAGES Code : A40511 Class : II B. Tech
More informationISSN: [Keswani* et al., 7(1): January, 2018] Impact Factor: 4.116
IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY AUTOMATIC TEST CASE GENERATION FOR PERFORMANCE ENHANCEMENT OF SOFTWARE THROUGH GENETIC ALGORITHM AND RANDOM TESTING Bright Keswani,
More informationINSTITUTE OF AERONAUTICAL ENGINEERING (AUTONOMOUS)
Name Code Class Branch INSTITUTE OF AERONAUTICAL ENGINEERING (AUTONOMOUS) Dundigal, Hyderabad - 500 043 Year 0-0 INFORMATION TECHNOLOGY ASSIGNMENT QUESTIONS AUTOMATA AND COMPILER DESIGN A50513 III B. Tech
More informationIntroduction to Denotational Semantics
Introduction to Denotational Semantics Overview:! Syntax and Semantics! Approaches to Specifying Semantics! Sets, Semantic Domains, Domain Algebra, and Valuation Functions! Semantics of Expressions! Semantics
More informationCSE 20 DISCRETE MATH. Winter
CSE 20 DISCRETE MATH Winter 2017 http://cseweb.ucsd.edu/classes/wi17/cse20-ab/ Final exam The final exam is Saturday March 18 8am-11am. Lecture A will take the exam in GH 242 Lecture B will take the exam
More informationCIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)
By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable
More informationA programming language requires two major definitions A simple one pass compiler
A programming language requires two major definitions A simple one pass compiler [Syntax: what the language looks like A context-free grammar written in BNF (Backus-Naur Form) usually suffices. [Semantics:
More informationCMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics
Recall Architecture of Compilers, Interpreters CMSC 330: Organization of Programming Languages Source Scanner Parser Static Analyzer Operational Semantics Intermediate Representation Front End Back End
More informationQuality Assurance in Software Development
Quality Assurance in Software Development Qualitätssicherung in der Softwareentwicklung A.o.Univ.-Prof. Dipl.-Ing. Dr. Bernhard Aichernig Graz University of Technology Austria Summer Term 2017 1 / 47 Agenda
More informationIntroductory logic and sets for Computer scientists
Introductory logic and sets for Computer scientists Nimal Nissanke University of Reading ADDISON WESLEY LONGMAN Harlow, England II Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario
More informationReading assignment: Reviews and Inspections
Foundations for SE Analysis Reading assignment: Reviews and Inspections M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 1999, pp. 258-287.
More informationFormal Validation of DNA Database Using Theorem Proving Technique
Formal Validation of DNA Database Using Theorem Proving Technique Julaily Aida Jusoh, Md Yazid Mohd Saman, and Mustafa Man Jabatan Sains Komputer, Fakulti Sains Dan Teknologi, Universiti Malaysia Terengganu,
More informationScenario-based Synthesis of Annotated Class Diagrams in UML
Scenario-based Synthesis of Annotated Class Diagrams in UML Petri Selonen and Tarja Systä Tampere University of Technology, Software Systems Laboratory, P.O.Box 553, FIN-33101 Tampere, Finland {pselonen,tsysta}@cs.tut.fi
More informationFUZZY SPECIFICATION IN SOFTWARE ENGINEERING
1 FUZZY SPECIFICATION IN SOFTWARE ENGINEERING V. LOPEZ Faculty of Informatics, Complutense University Madrid, Spain E-mail: ab vlopez@fdi.ucm.es www.fdi.ucm.es J. MONTERO Faculty of Mathematics, Complutense
More informationLOGIC AND DISCRETE MATHEMATICS
LOGIC AND DISCRETE MATHEMATICS A Computer Science Perspective WINFRIED KARL GRASSMANN Department of Computer Science University of Saskatchewan JEAN-PAUL TREMBLAY Department of Computer Science University
More informationMaking Decisions In Python
Making Decisions In Python In this section of notes you will learn how to have your programs choose between alternative courses of action. Decision Making Is All About Choices My next vacation? Images:
More informationPage 1. Reading assignment: Reviews and Inspections. Foundations for SE Analysis. Ideally want general models. Formal models
Reading assignment: Reviews and Inspections Foundations for SE Analysis M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 999, pp. 258-28.
More informationCS 424 Software Quality Assurance & Testing LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I
LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I WHAT IS SOFTWARE TESTING? Testing can find faults in the software but cannot prove that the software is error-free. OBJECTIVES OF SOFTWARE TESTING To test
More informationQ Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.
Introduction to Formal Methods 1 Introduction to Formal Methods 2 Formal Specification Requirements specification R notational statement of system services Software specification R formal abstract depiction
More informationVerification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80
1 / 80 Verification Miaoqing Huang University of Arkansas Outline 1 Verification Overview 2 Testing Theory and Principles Theoretical Foundations of Testing Empirical Testing Principles 3 Testing in Practice
More information2 nd UML 2 Semantics Symposium: Formal Semantics for UML
2 nd UML 2 Semantics Symposium: Formal Semantics for UML Manfred Broy 1, Michelle L. Crane 2, Juergen Dingel 2, Alan Hartman 3, Bernhard Rumpe 4, and Bran Selic 5 1 Technische Universität München, Germany
More informationSoftware Testing for Developer Development Testing. Duvan Luong, Ph.D. Operational Excellence Networks
Software Testing for Developer Development Testing Duvan Luong, Ph.D. Operational Excellence Networks Contents R&D Testing Approaches Static Analysis White Box Testing Black Box Testing 4/2/2012 2 Development
More informationWhy testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties
Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be
More information