An Automatic Test Case Generator for Testing Safety-Critical Software Systems

Size: px
Start display at page:

Download "An Automatic Test Case Generator for Testing Safety-Critical Software Systems"

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 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 information

Specication-Based Testing Using Cause-Eect Graphs 1) North Carolina State University. Raleigh, NC , USA

Specication-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 information

BOOLEAN SPECIFICATION BASED TESTING TECHNIQUES: A SURVEY

BOOLEAN 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 information

FAULT BASED TECHNIQUES FOR TESTING BOOLEAN EXPRESSIONS: A SURVEY

FAULT 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 information

International 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,   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 information

Proving the Correctness of Distributed Algorithms using TLA

Proving 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 information

Composability Test of BOM based models using Petri Nets

Composability 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 information

Software Testing. 1. Testing is the process of demonstrating that errors are not present.

Software 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 information

MONIKA HEINER.

MONIKA 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 information

Fault propagation in tabular expression-based specifications

Fault 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 information

International 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, 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 information

Semantics. There is no single widely acceptable notation or formalism for describing semantics Operational Semantics

Semantics. 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 information

Image Segmentation Based on Watershed and Edge Detection Techniques

Image 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 information

An Environment for Training Computer Science Students on Software Testing

An 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 information

Web Service Response Time Monitoring: Architecture and Validation Sara Abbaspour Asadollah, Thiam Kian Chiew

Web 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 information

Importance of Predicatebased. Predicate-based Testing. Terms Defined. Terms Defined (2) Terms Defined (3) Assumptions. Thorough testing of C used to

Importance 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 information

IMPROVING 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 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 information

Chapter 3. Describing Syntax and Semantics

Chapter 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 information

SC/MATH Boolean Formulae. Ref: G. Tourlakis, Mathematical Logic, John Wiley & Sons, York University

SC/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 information

Study about Application of Formal Methods in Consideration of Convenience by the Example of the Electric Pot

Study 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 information

Formal Approach in Software Testing

Formal 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 information

Chapter 3. Describing Syntax and Semantics ISBN

Chapter 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 information

Fault Class Prioritization in Boolean Expressions

Fault 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 information

GEORGE J. ANDERS, Ph.D., P.Eng., Fellow IEEE

GEORGE 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 information

DEPARTMENT 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 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 information

Discrete Event Simulation and Petri net Modeling for Reliability Analysis

Discrete 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 information

Part I: Preliminaries 24

Part 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 information

Test Generation from Requirements I UNIT III Software Testing. Boundary Value Analysis and Equivalent Partitioning based methods

Test 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 information

Summary of Course Coverage

Summary 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 information

Parnas 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 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 information

Gujarat 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 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 information

Programming Languages Third Edition

Programming 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 information

A simple syntax-directed

A 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 information

Producing 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 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 information

Chapter 3. Syntax - the form or structure of the expressions, statements, and program units

Chapter 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 information

Lecture 10: Introduction to Correctness

Lecture 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 information

Single-pass Static Semantic Check for Efficient Translation in YAPL

Single-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 information

Aerospace Software Engineering

Aerospace 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 information

White-Box Testing Techniques III

White-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 information

USTGlobal 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 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 information

A Framework for Reliability Assessment of Software Components

A 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 information

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

COMP-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 information

Formal Methods. CITS5501 Software Testing and Quality Assurance

Formal 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 information

Compiler Design Aug 1996

Compiler 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 information

Part 5. Verification and Validation

Part 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 information

Intelligent Risk Identification and Analysis in IT Network Systems

Intelligent 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 information

This book is licensed under a Creative Commons Attribution 3.0 License

This 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 information

Automation Systems Discrete Event Control Systems and Networked Automation Systems

Automation 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 information

CSE 20 DISCRETE MATH. Fall

CSE 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 information

Token based clone detection using program slicing

Token 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 information

MATVEC: 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 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 information

Topics in Software Testing

Topics 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 information

A Partial Correctness Proof for Programs with Decided Specifications

A 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 information

ARELAY network consists of a pair of source and destination

ARELAY 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 information

Propositional 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: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and

More information

these developments has been in the field of formal methods. Such methods, typically given by a

these 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 information

What is Mutation Testing?

What 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 information

Integrating SysML and OWL

Integrating 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 information

Taxonomy Dimensions of Complexity Metrics

Taxonomy 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 information

VERIFYING BPMN PROCESSES USING GENERALIZED NETS. Pavel Tcheshmedjiev

VERIFYING 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 information

Chapter 3. Describing Syntax and Semantics ISBN

Chapter 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 information

Introduction to Lexical Analysis

Introduction 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 information

Techniques for the unambiguous specification of software

Techniques 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 information

PROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE

PROPER 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 information

Formal Validation of DNA Database Using Theorem Proving Technique

Formal 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 information

IMPERATIVE PROGRAMS BEHAVIOR SIMULATION IN TERMS OF COMPOSITIONAL PETRI NETS

IMPERATIVE 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 information

Chapter 3. Describing Syntax and Semantics

Chapter 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 information

Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1

Goals: 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 information

Formal Methods for Software Engineers

Formal 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 information

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives

Software 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 information

CS 395T Computational Learning Theory. Scribe: Wei Tang

CS 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 information

A Simple Syntax-Directed Translator

A 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 information

Static Analysis Techniques

Static 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 information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed 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 information

Test design techniques

Test 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 information

Introduction to Dynamic Analysis

Introduction 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 information

Smart Test Case Quantifier Using MC/DC Coverage Criterion

Smart 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 information

INSTITUTE OF AERONAUTICAL ENGINEERING

INSTITUTE 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 information

ISSN: [Keswani* et al., 7(1): January, 2018] Impact Factor: 4.116

ISSN: [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 information

INSTITUTE OF AERONAUTICAL ENGINEERING (AUTONOMOUS)

INSTITUTE 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 information

Introduction to Denotational Semantics

Introduction 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 information

CSE 20 DISCRETE MATH. Winter

CSE 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 information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 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 information

A programming language requires two major definitions A simple one pass compiler

A 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 information

CMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics

CMSC 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 information

Quality Assurance in Software Development

Quality 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 information

Introductory logic and sets for Computer scientists

Introductory 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 information

Reading assignment: Reviews and Inspections

Reading 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 information

Formal Validation of DNA Database Using Theorem Proving Technique

Formal 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 information

Scenario-based Synthesis of Annotated Class Diagrams in UML

Scenario-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 information

FUZZY SPECIFICATION IN SOFTWARE ENGINEERING

FUZZY 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 information

LOGIC AND DISCRETE MATHEMATICS

LOGIC 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 information

Making Decisions In Python

Making 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 information

Page 1. Reading assignment: Reviews and Inspections. Foundations for SE Analysis. Ideally want general models. Formal models

Page 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 information

CS 424 Software Quality Assurance & Testing LECTURE 3 BASIC CONCEPTS OF SOFTWARE TESTING - I

CS 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 information

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.

Q 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 information

Verification Overview Testing Theory and Principles Testing in Practice. Verification. Miaoqing Huang University of Arkansas 1 / 80

Verification 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 information

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

2 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 information

Software 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 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 information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why 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