Through a Glass, Darkly: Object-Oriented Testing. Through A Glass, Darkly:

Size: px
Start display at page:

Download "Through a Glass, Darkly: Object-Oriented Testing. Through A Glass, Darkly:"

Transcription

1 Through A Glass, Darkly: Object-Oriented Testing 1 EECS 814 Presentation Slide 1 of 110

2 Personal Info B.S. Computer Science MWSU B.S. Chemistry MWSU 2 15 years professional programming experience Reuters Financial market analysis software US Navy Weapons/Propellant simulations Slide 2 of 110

3 Source A Practical Guide to Testing Object-Oriented Software by John D. McGregor and David A. Sykes 3 Slide 3 of 110

4 Quote Never ascribe to malice that which can be explained by incompetence. 4 Napoleon (attributed) Slide 4 of 110

5 Road Map Introduction Object-Orientation Overview Specifications/Testing Classes Interactions Hierarchies Conclusion 5 Slide 5 of 110

6 Why Do I Care? Quality is important No one likes fixing bugs Prevent them from occurring 6 final exam Questions on the Practicality Slide 6 of 110

7 Question #1 How many of you write code for a living? 7 Slide 7 of 110

8 Question #2 If you write code for a living, how many of you write Object-Oriented code? C++? Java? Smalltalk? 8 Slide 8 of 110

9 Question #3 (Rhetorical) Have you noticed that most of the in-class examples have been imperative programming? Non Object-Oriented 9 Does this mean that the techniques we've learned aren't applicable to OO? No, they're still very applicable Slide 9 of 110

10 Practical ('prak-ti-kul) adjective 4a: disposed to action as opposed to speculation or abstraction Something you can accomplish Realistic goals10 Everyday uses Slide 10 of 110

11 Question #4 Do you work in a Practical Development Environment? 11 Slide 11 of 110

12 So What's an Impractical Environment? Space Shuttle on-board software team Must be 100% good They test everything Realistically, 12 fast and cheap are ignored No such thing as good enough Real world Don't have that luxury Must set priorities Slide 12 of 110

13 * 3-Way Practicality Process Matrix There are three things that can define any process Good Fast Cheap 13 *Pick any two Slide 13 of 110

14 Quote Everybody in the real world will agree - the moment a project is behind deadline, quality assurance tends to go out the window. 14 Alan Cox Slide 14 of 110

15 Road Map Introduction Object-Orientation Overview Specifications/Testing Classes Interactions Hierarchies Conclusion 15 Slide 15 of 110

16 Object-Oriented Systems Object Message Interface Class Inheritance Polymorphism 16 Slide 16 of 110

17 Object Operational entity As opposed to definitional entity Encapsulates Specific data17 values Code that manipulates data values Basic building block of OO systems Slide 17 of 110

18 Object: Examples Course Student Bill Grade 18 Slide 18 of 110

19 Object: Testing Implications Encapsulation Build up object and pass it around Easy to manipulate 19 Information hiding Difficult to change object Changes in object difficult to observe Has state Can become inconsistent Has a lifetime Construction/Destruction Slide 19 of 110

20 Message Request that an operation be performed by an object Allows objects to collaborate to solve problems 20 Different languages C++: member function call Java/Smalltalk: method invocation Slide 20 of 110

21 Message: Examples Student.AddCourse(Course) Student.SendBill(Bill) Student.MakePayment(CreditCard) 21 Grade.SetGrade( A ) Student.SetGradeForCourse(Grade,Course) Student.SendGrades() Slide 21 of 110

22 Message: Testing Implications Has a sender Sender determines when to send message May send incorrectly Has a receiver22 Receiver may not be ready Unexpected message may be ignored May include parameters/return value Used and/or updated by receiver Object state is important Receiver may throw exception Slide 22 of 110

23 Interface Aggregation of behavior declarations Different languages C++: abstract base class with public pure virtual methods 23 Java: interface (defined just like a class) Building block for specifications Slide 23 of 110

24 Interface: Examples Enrollment Residence Behavior associated with enrolling in courses 24 Behavior associated with living in on-campus housing Billable Behavior associated with being able to make payments Student Parent Company Slide 24 of 110

25 Interface: Testing Implications Possible poor design Some interfaces may have 'extra' behavior Interface as parameter 25be passed merely as its An object may interface Unwanted baggage may be carried along Slide 25 of 110

26 Class Set of objects (members) that share a common conceptual basis Class definition What the members have in common 26 What they will do together Objects Classes Elements for executing a program Elements for defining a program An Object is an instance of a Class Slide 26 of 110

27 Class: Specification Operation: action applied to an object to obtain a certain effect Two categories of operations Accessor 27 Returns information about the object Changes nothing in the object Modifier Changes the state of an object Slide 27 of 110

28 Preconditions/Postconditions Precondition Postcondition 28 Condition that must be true before an operation is attempted Condition that must be true after an operation is completed Invariant Condition that must be true before and after an operation Sort of a pre/post combination Slide 28 of 110

29 Preconditions State and attributes of the object containing the operation Attributes of parameters in the message 29 Slide 29 of 110

30 Postconditions State and attributes of the object containing the operation Attributes of parameters in the message Return value (if30any) Any exception that might arise Slide 30 of 110

31 Invariants Attributes that must be the same before and after Operational Invariants during 31 a single operation Class Invariants for the lifetime of an object Implies: during ALL operations Slide 31 of 110

32 Road Map Introduction Object-Orientation Overview Specifications/Testing Classes Interactions Hierarchies Conclusion 32 Slide 32 of 110

33 Question #5 Is OO Testing: Blackbox testing? Whitebox tesing? Why? 33 Slide 33 of 110

34 Trick Question: Both Whitebox Looking at how the code is written Analyzing code structure Class 34 Message Inheritance Blackbox How objects behave from the outside Interface Polymorphism Slide 34 of 110

35 OO Is More Than the Code It can also include the entire development process* Requirements Analysis and35 Design Implementation *Please see EECS 816: OO Analysis and Design Slide 35 of 110

36 The Big Zoom Out Many levels of testing Each has 'challenges' Class 36 Class Interactions Class Hierarchies Slide 36 of 110

37 So, What's a Class Again? Fundamental unit of OO programming First level of information-hiding Key to encapsulation Building block 37 of inheritance Slide 37 of 110

38 How Can You Test a Class? Two ways: Code reviews (static) Execution of test cases (dynamic) 38 Slide 38 of 110

39 Code Reviews (Pro/Con) Pros Ability to shift with changing specifications Exposes more of the team to the implementation 39 Cons Humans involved (mistakes) Time-consuming (especially for regression testing) Slide 39 of 110

40 Test Case Execution (Pro/Con) Pros Ability to shift with changing specifications Exposes more of the team to the implementation 40 Easily repeatable (Regression testing) Cons Humans involved Difficult to identify Time-consuming to write If coverage is good, maybe more time than writing the code itself Slide 40 of 110

41 So, Which One's the Best? That depends.... How often do you need to test? What development model do you use? Aren't they complementary? 41 Yes, they're complimentary Technically, a lot of overlap Better to do both, but may reduce the practicality Slide 41 of 110

42 Our Focus Execution-based testing Easily repeatable More useful in non-waterfall models 42 Slide 42 of 110

43 Main Trouble Identifying test cases 43 Slide 43 of 110

44 44 Slide 44 of 110

45 Assumption Quote We assume that a class to be tested has a complete and correct specification..... We assume the specification is expressed in a specification language such as the Object 45 Constraint Language (OCL) or a natural language and/or as a state transition diagram. Does that sound practical to you? Slide 45 of 110

46 Complete Specifications? Not me! 46 Slide 46 of 110

47 But, Seriously... In order to write tests, you need a specification of some kind 47 Slide 47 of 110

48 So, What's a Specification Exactly? Link between real world and model Part of the problem Part of the solution 48 Description of operation Class a whole Operations Preconditions/postconditions Invariants Slide 48 of 110

49 What If I Don't Have a Spec? Get one 49 Slide 49 of 110

50 No, Really, What If I Don't Have a Spec? Reverse-engineer from the code And how think the code is supposed to work Test-driven development 50 Write the tests Write the code Repeat When do you write comments? Slide 50 of 110

51 Better To Write As You Go... Tests are code Consider test code linked with implementation Unit testing 51 Slide 51 of 110

52 What is Unit Testing? Unit Test procedure used to verify that a particular module of source code is working properly Goal is to catch52regression errors Unit test frameworks Sunit (Smalltalk) Junit (Java) CppUnit (C++) NUnit (C#) Practical Slide 52 of 110

53 extreme Programming (XP) Agile development model Requires test-first model Must write the test before the code that will be tested 53 We're getting off track... Slide 53 of 110

54 Road Map Introduction Object-Orientation Overview Specifications/Testing Classes Interactions Hierarchies Conclusion 54 Slide 54 of 110

55 Finding Defects 55 Slide 55 of 110

56 Dimensions of Class Testing Who What When How How much? 56 Slide 56 of 110

57 Who Usually developers (of the code itself) Minimizes public knowledge (good) Minimizes peer review (bad) 57 Slide 57 of 110

58 What Code meets requirements No more No less 58 Slide 58 of 110

59 When Never Milestones When you have a specification When changes59occur Always Slide 59 of 110

60 How Drivers and stubs Unit test frameworks Instance vs. static 60 Slide 60 of 110

61 How Much? Spec vs. implementation Simple answer: Enough! Impractical answer: Everything! 61 Risk-based analysis Slide 61 of 110

62 Back To Not Having a Spec... Writing testable code Contract Approach Preconditions over postconditions 62 Defensive Approach Postconditions over preconditions Problems? Slide 62 of 110

63 Contract Approach Preconditions are an obligation of the sender If met, receiver is obligated to meet the requirements and postconditions 63 Design implications Need sufficient preconditions so receiver can fulfill postconditions a sender can determine whether all preconditions are met before sending a message May need extra accessor methods to check for postcondition success Slide 63 of 110

64 Defensive Approach Interface defined in terms of the receiver Operation typically returns a value Return code Status object64 Primary goal Sanity checking Returning status of processing Slide 64 of 110

65 Test Writing Implications Contract approach simplifies class testing complicates interaction testing must ensure any sender meets the 65 preconditions Defensive approach complicates class testing test cases must address all possible outcomes complicates interaction testing must ensure all possible outcomes are produced and that they are properly handled by the sender Slide 65 of 110

66 Road Map Introduction Object-Orientation Overview Specifications/Testing Classes Interactions Hierarchies Conclusion 66 Slide 66 of 110

67 Programming Tip Testing is for cowards A brave coder will bypass that step If we have full confidence in our coding ability, then testing will be unnecessary 67 - from How to Write Unmaintainable Code Slide 67 of 110

68 Class Interactions OO Program Collection of objects Collaborate together to solve a problem Ensure that messaging happens correctly 68 Assumptions Objects have been individually tested Unidirectional messages Interactions are sequential (not concurrent) Slide 68 of 110

69 What's an Interaction? Object 'A' calls a method 'X' of Object 'B' Object B's method X executes Reply from method X is returned to A 69 Slide 69 of 110

70 Impact of a Single Interaction Possible cascade of other object interactions State of the receiver Associated objects Possible outcomes 70 No change Changes in attribute values State changes Creation or deletion of objects Slide 70 of 110

71 Identifying Interactions Two types of classes Primitive classes Simple 71 needed No other classes Usually limited in number Non-primitive Support/require other objects Most common in OO programming Slide 71 of 110

72 Two Categories of Classes Collection Collaboration 72 Slide 72 of 110

73 Collection Classes Collection classes Have classes associated with them Never actually use them Store/Create/Delete 73 Examples Stack Queue Map Vector Slide 73 of 110

74 Testing Collection Classes Fairly straightforward Capacity limitations Store/retrieve order correctness Negative tests 74 Slide 74 of 110

75 Collaboration Classes More complex than collection classes Identification Uses other objects in operations 75 operation When, after an State is possibly affected An attribute is used or modified Handout # 1 Identify the classes Slide 75 of 110

76 What To Test? Best Every collaboration interaction Not reasonable Better Interactions most likely to have faults Good 76 Probability distribution Good enough (Not much choice here) Less than ideal probability distribution Slide 76 of 110

77 Test Case Sampling Random Use Profiling Stratified Sample OATS (Orthogonal Array Test System) 77 Slide 77 of 110

78 Use Profile Associate each use of the system with a frequency Ranked Probability of use 78 Higher frequency of use ---> More testing Slide 78 of 110

79 Stratified Sample Tests selected from categories Example: Test subsets Select a set of test cases that exercise every component in79the system Divide those into subsets based on component Example: Use Case Actors Rank uses by actor/frequency Handout #2 Slide 79 of 110

80 Orthogonal Array Test System (OATS) Method to limit explosion of test cases Uses pair-wise combination of factors Two-way interactions cause most faults 80 pairwise testing Sometimes called Used in Taguchi Methods Slide 80 of 110

81 OATS: Basic Technique 1) Determine number of independent variables 2) Determine number of values it will take (states) 81 3) Find an minimum-pair array (book) 4) Map factors into array 5) Build test cases These steps may vary slightly from user to user Slide 81 of 110

82 OATS: Example Consider a web page with three sections (Top, Middle, and Bottom). Sections that can be individually shown or hidden by the user. 82 You wish to test the interactions of the different sections. Slide 82 of 110

83 Question #6 How many test cases would there be if you wanted 100% coverage? 83 Slide 83 of 110

84 Answer #6 8 tests, 2^3 = 8 84 Slide 84 of 110

85 OATS 1-Independent Variables Three independent variables (page sections) Top Middle Bottom 85 Slide 85 of 110

86 OATS 2-Variable States Each variable can take two states Hidden Visible 86 Slide 86 of 110

87 OATS 3-Minimum Pair Array 87 Slide 87 of 110

88 OATS 4-Map Factors Into Array 88 Slide 88 of 110

89 OATS 5-Build Test Cases 1) Hide all sections 2) Display all but the top section 3) Display all but the middle section 89 the bottom section 4) Display all but Slide 89 of 110

90 OATS: OO Programming Independent variables are class families Values are members of the class family See Handout #3 90 Slide 90 of 110

91 OATS: Adequacy Criteria Exhaustive Minimal tester haphazardly selects cases from several of the classes Representative only interactions 91 between the base classes Random all combinations of all factors uniform sample -- every class is tested Weighted representative adds cases of relative importance or risk Slide 91 of 110

92 Road Map Introduction Object-Orientation Overview Specifications/Testing Classes Interactions Hierarchies Conclusion 92 Slide 92 of 110

93 Programming Tip Never, Ever Do Any Performance Testing Hey, if it isn't fast enough, just tell the customer to buy a faster machine 93 - from How to Write Unmaintainable Code Slide 93 of 110

94 Class Hierarchies (Inheritance) Relationship between classes Allows new class to be based on existing class Reuse of specification and implementation 94 Parent (source) class Superclass Base class New Class Subclass Derived class Slide 94 of 110

95 Inheritance (cont.) Inheritance hierarchy Each class has ancestors (except roots) Good OO Design 95 is-a relationship is-a-kind-of relationship Best when used to propagate specification Not implementation (code reuse) Slide 95 of 110

96 Inheritance: Testing Implications Provides a bug propagation mechanism Inherit defects from parent Good reason to test class hierarchy as it develops 96 Allows for reuse of test cases Reuse of spec and implementation Slide 96 of 110

97 A Tale of Two Classes C D Parent or superclass 97 Child or subclass Handout #4 Slide 97 of 110

98 Is-Kind-Of Relationship D is-a-kind-of C D can be used in place of C in a program Behavior of D must match (or supersede) C Class Behavior98 Observable states Operational semantics Enforced by the Substitution Principle Slide 98 of 110

99 Substitution Principle Only these changes are allowed in a subclass Preconditions Postconditions Must be the same or stronger Must expect as much as superclass Class Invariant Must be the same or weaker Less constraining to a client 99 Must be the same or stronger Can add more constraints Assume Substitution Principle Slide 99 of 110

100 Refinement Possibilities (Subclass) 1) Add new operations/methods to D 2) Change spec or implementation of and operation declared by C Change in D100 an operation declared in C Override in D a method inherited in C 3) Add new instance members in D 4) Change the class invariant Slide 100 of 110

101 Hierarchical, Incremental Testing (HIT) Incremental changes from C to D can guide test case selection All of the spec-based tests of C should apply to D 101 If not, substitution rule has been broken Simple process to determine Which C tests are still applicable What new tests need to be written Slide 101 of 110

102 1) HIT: Add Operations New operation implements new functionality New functionality needs to be tested Also need to add Class/Object102 implementation test Class Interaction tests Slide 102 of 110

103 2) HIT: Change Spec a) Change in D the spec for a method declared in C Must add new spec-based tests Must test new 103pre/post conditions Must re-run C test cases b) Override a C method in D that uses a C operation Can reuse C's spec-based tests Must review all implementation based tests Possibly new coverage Slide 103 of 110

104 HIT: Change Operations New instance variables added Most likely tested by new code Already covered by new tests? If a new variable 104 is not used, it doesn't need to be tested Slide 104 of 110

105 HIT: Change Invariant New postconditions Simply test the new invariant conditions Must re-run all inherited test cases to assure that the invariant 105 holds Slide 105 of 110

106 Conclusion OO brings new tool to the programmer New way of programming New ways of testing 106 Old testing methods still apply Slide 106 of 110

107 Thoughts? How do you test now? How can you change the testing of code in your environment? Will these techniques help you? 107 Slide 107 of 110

108 Questions? 108 Slide 108 of 110

109 References A Practical Guide to Testing Object-Oriented Software by John D. McGregor and David A. Sykes; 2001, Addison-Wesley. The Object Primer by Scott W. Ambler; , Cambridge University Press. JUnit Primer : er.html Unit Testing : Slide 109 of 110

110 References Orthogonal Array Testing System (OATS) : Temas/TemarioEnCurso/Prova orientada a objecte/orthogonal arrays.pdf 110 Slide 110 of 110

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

Learning objectives: Software Engineering. CSI1102: Introduction to Software Design. The Software Life Cycle. About Maintenance

Learning objectives: Software Engineering. CSI1102: Introduction to Software Design. The Software Life Cycle. About Maintenance CSI1102: Introduction to Software Design Chapter 10: Introduction to Software Engineering Learning objectives: Software Engineering The quality of the software is a direct result of the process we follow

More information

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format Final Exam Final Exam Review CS 4354 Fall 2012 Jill Seaman Friday, December 14, 11AM Closed book, closed notes, clean desk Content: Textbook: Chapters 1, 2, 4-10 Java Lectures, GRASP + JUnit 35% of your

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

Data Abstraction. Hwansoo Han

Data Abstraction. Hwansoo Han Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed

More information

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing Black Box Testing EEC 521: Software Engineering Software Testing Black-Box Testing Test-Driven Development Also known as specification-based testing Tester has access only to running code and the specification

More information

State-Based Testing Part B Error Identification. Generating test cases for complex behaviour

State-Based Testing Part B Error Identification. Generating test cases for complex behaviour State-Based Testing Part B Error Identification Generating test cases for complex behaviour Reference: Robert V. Binder Testing Object-Oriented Systems: Models, Patterns, and Tools Addison-Wesley, 2000,

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Question 1: What is a code walk-through, and how is it performed?

Question 1: What is a code walk-through, and how is it performed? Question 1: What is a code walk-through, and how is it performed? Response: Code walk-throughs have traditionally been viewed as informal evaluations of code, but more attention is being given to this

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : , Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,

More information

UML Views of a System

UML Views of a System UML Views of a System The architecture of a system is the fundamental organization of the system as a whole. The five UML Views: Use Case View: focuses on scenarios Design View: focuses on the vocabulary

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6 Trying to deal with something big all at once is normally much harder than dealing with a series of smaller things Separate people can work on each part. An individual software engineer can specialize.

More information

CMPT Data and Program Organization

CMPT Data and Program Organization CMPT-201 - Data and Program Organization Professor: Bill Havens Office: APSC-10828 Lectures: MWF 2:30pm - 3:20pm Venue: C-9002 WWW: http://www.cs.sfu.ca/coursecentral/201 Office Hours: Monday @3:30pm January

More information

Review sheet for Final Exam (List of objectives for this course)

Review sheet for Final Exam (List of objectives for this course) Review sheet for Final Exam (List of objectives for this course) Please be sure to see other review sheets for this semester Please be sure to review tests from this semester Week 1 Introduction Chapter

More information

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing. Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

Assertions. Assertions - Example

Assertions. Assertions - Example References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 11/13/2003 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,

More information

Steps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26.

Steps for project success. git status. Milestones. Deliverables. Homework 1 submitted Homework 2 will be posted October 26. git status Steps for project success Homework 1 submitted Homework 2 will be posted October 26 due November 16, 9AM Projects underway project status check-in meetings November 9 System-building project

More information

SOFTWARE ENGINEERING. Lecture 6. By: Latifa ALrashed. Networks and Communication Department

SOFTWARE ENGINEERING. Lecture 6. By: Latifa ALrashed. Networks and Communication Department 1 SOFTWARE ENGINEERING Networks and Communication Department Lecture 6 By: Latifa ALrashed Outline q q q q q q q q Define the concept of the software life cycle in software engineering. Identify the system

More information

Motivation State Machines

Motivation State Machines Motivation State Machines Generating test cases for complex behaviour Textbook Reading: Chapter 7 We are interested in testing the behaviour of object-oriented software systems Behaviour: Interactions

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

CS 520 Theory and Practice of Software Engineering Fall 2018

CS 520 Theory and Practice of Software Engineering Fall 2018 CS 520 Theory and Practice of Software Engineering Fall 2018 Nediyana Daskalova Monday, 4PM CS 151 Debugging October 30, 2018 Personalized Behavior-Powered Systems for Guiding Self-Experiments Help me

More information

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright Object Model Object Orientated Analysis and Design Benjamin Kenwright Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean

More information

Safety SPL/2010 SPL/20 1

Safety SPL/2010 SPL/20 1 Safety 1 system designing for concurrent execution environments system: collection of objects and their interactions system properties: Safety - nothing bad ever happens Liveness - anything ever happens

More information

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages No Source Code : Software Testing Black-Box Testing Test-Driven Development No access to source code So test cases don t worry about structure Emphasis is only on ensuring that the contract is met Specification-Based

More information

UNIT II Requirements Analysis and Specification & Software Design

UNIT II Requirements Analysis and Specification & Software Design UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

CSE 70 Final Exam Fall 2009

CSE 70 Final Exam Fall 2009 Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15

More information

Advanced Object Oriented PHP

Advanced Object Oriented PHP CNM STEMulus Center Web Development with PHP November 11, 2015 1/17 Outline 1 2 Diamond Problem Composing vs Inheriting Case Study: Strategy Design Pattern 2/17 Definition is when a class is based on another

More information

Lecturer: William W.Y. Hsu. Programming Languages

Lecturer: William W.Y. Hsu. Programming Languages Lecturer: William W.Y. Hsu Programming Languages Chapter 9 Data Abstraction and Object Orientation 3 Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

More information

Black-box Testing Techniques

Black-box Testing Techniques T-76.5613 Software Testing and Quality Assurance Lecture 4, 20.9.2006 Black-box Testing Techniques SoberIT Black-box test case design techniques Basic techniques Equivalence partitioning Boundary value

More information

CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley

CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley In Brief: What You Need to Know to Comment Methods in CSE 143 Audience o A random person you don t know who wants

More information

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

Patterns and Testing

Patterns and Testing and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3

More information

Interface (API) Design

Interface (API) Design Interface (API) Design Architect s Perspective R. Kuehl/J. Scott Hawker p. 1 What is an API? Exposes the public facing functionality of a software component Operations, inputs, and outputs Exposes functionality

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

CPS122 Lecture: Detailed Design and Implementation

CPS122 Lecture: Detailed Design and Implementation CPS122 Lecture: Detailed Design and Implementation Objectives: Last revised March 3, 2017 1. To introduce the use of a complete UML class box to document the name, attributes, and methods of a class 2.

More information

Back to ObjectLand. Contents at: Chapter 5. Questions of Interest. encapsulation. polymorphism. inheritance overriding inheritance super

Back to ObjectLand. Contents at: Chapter 5. Questions of Interest. encapsulation. polymorphism. inheritance overriding inheritance super korienekch05.qxd 11/12/01 4:06 PM Page 105 5 Back to ObjectLand Contents at: Chapter 5 #( encapsulation polymorphism inheritance overriding inheritance super learning the class hierarchy finding classes

More information

Chapter 8: Class and Method Design

Chapter 8: Class and Method Design Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined

More information

1 of 5 3/28/2010 8:01 AM Unit Testing Notes Home Class Info Links Lectures Newsgroup Assignmen [Jump to Writing Clear Tests, What about Private Functions?] Testing The typical approach to testing code

More information

Type Hierarchy. Comp-303 : Programming Techniques Lecture 9. Alexandre Denault Computer Science McGill University Winter 2004

Type Hierarchy. Comp-303 : Programming Techniques Lecture 9. Alexandre Denault Computer Science McGill University Winter 2004 Type Hierarchy Comp-303 : Programming Techniques Lecture 9 Alexandre Denault Computer Science McGill University Winter 2004 February 16, 2004 Lecture 9 Comp 303 : Programming Techniques Page 1 Last lecture...

More information

Object Oriented Programming

Object Oriented Programming Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering

More information

Software Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006

Software Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006 Software Testing 2 Jens Dietrich OOD and Testability Component based design and component based unit testing. Design that isolates component that are difficult to test (automatically) (such as user interfaces).

More information

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 I. Logic 101 In logic, a statement or proposition is a sentence that can either be true or false. A predicate is a sentence in

More information

1: Specifying Requirements with Use Case Diagrams

1: Specifying Requirements with Use Case Diagrams Outline UML Design Supplement 1: Specifying Requirements with Use Case Diagrams Introduction Use Case Diagrams Writing Use Cases Guidelines for Effective Use Cases Slide adapted from Eran Toch s lecture

More information

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek Seite 1 von 5 Issue Date: FoxTalk July 2000 It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek This month, Paul Maskens and Andy Kramek discuss the problems of validating data entry.

More information

DESIGN AS RISK MINIMIZATION

DESIGN AS RISK MINIMIZATION THOMAS LATOZA SWE 621 FALL 2018 DESIGN AS RISK MINIMIZATION IN CLASS EXERCISE As you come in and take a seat What were the most important risks you faced in a recent software project? WHAT IS A RISK? WHAT

More information

Inheritance and Substitution (Budd chapter 8, 10)

Inheritance and Substitution (Budd chapter 8, 10) Inheritance and Substitution (Budd chapter 8, 10) 1 2 Plan The meaning of inheritance The syntax used to describe inheritance and overriding The idea of substitution of a child class for a parent The various

More information

17. Assertions. Outline. Built-in tests. Built-in tests 3/29/11. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen

17. Assertions. Outline. Built-in tests. Built-in tests 3/29/11. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen 17. Assertions Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen Outline Introduction (BIT, assertion, executable assertion, why?) Implementation-based vs responsability-based assertions Implementation

More information

CS 32. Lecture 1: oops

CS 32. Lecture 1: oops CS 32 Lecture 1: oops Textbooks Problem Solving in C++ (CS 16) Chapters 10-18 Data Structures with C++ (CS 24) Chapters 12-14 Reader SBPrinter at UCen Grading Labs 20% Programming Assignments 20% 3 thirdterm

More information

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class

More information

CSC Advanced Object Oriented Programming, Spring Specification

CSC Advanced Object Oriented Programming, Spring Specification CSC 520 - Advanced Object Oriented Programming, Spring 2018 Specification Specification A specification is an unambiguous description of the way the components of the software system should be used and

More information

17. Assertions. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen

17. Assertions. Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen 17. Assertions Jelle Slowack, Bart Smets, Glenn Van Loon, Tom Verheyen Outline Introduction (BIT, assertion, executable assertion, why?) Implementation-based vs responsability-based assertions Implementation

More information

Introduction to OOP. Procedural Programming sequence of statements to solve a problem.

Introduction to OOP. Procedural Programming sequence of statements to solve a problem. Introduction to OOP C++ - hybrid language improved and extended standard C (procedural language) by adding constructs and syntax for use as an object oriented language. Object-Oriented and Procedural Programming

More information

CPS 506 Comparative Programming Languages. Programming Language

CPS 506 Comparative Programming Languages. Programming Language CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support

More information

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects Lecture 4: Fundamentals of Object Technology Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture

More information

Introduction to OO Concepts

Introduction to OO Concepts Introduction to OO Concepts Written by John Bell for CS 342, Fall 2018 Based on chapters 1, 2, and 10 of The Object-Oriented Thought Process by Matt Weisfeld, with additional material from UML Distilled

More information

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software

Testing. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software Testing Basic ideas and principles Traditional testing strategies Unit, integration, regression, validation, system OO Testing techniques Application of traditional techniques to OO software Testing-11,

More information

References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1

References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,

More information

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models CS 494 Object-Oriented Analysis & Design UML Class Models Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation

More information

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented

More information

Data Structures (list, dictionary, tuples, sets, strings)

Data Structures (list, dictionary, tuples, sets, strings) Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in brackets: l = [1, 2, "a"] (access by index, is mutable sequence) Tuples are enclosed in parentheses: t = (1, 2, "a") (access

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Last Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns

Last Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns Last Time: Object Design Comp435 Object-Oriented Design Week 7 Computer Science PSU HBG The main idea RDD: Responsibility-Driven Design Identify responsibilities Assign them to classes and objects Responsibilities

More information

The Essence of Object Oriented Programming with Java and UML. Chapter 2. The Essence of Objects. What Is an Object-Oriented System?

The Essence of Object Oriented Programming with Java and UML. Chapter 2. The Essence of Objects. What Is an Object-Oriented System? Page 1 of 21 Page 2 of 21 and identity. Objects are members of a class, and the attributes and behavior of an object are defined by the class definition. The Essence of Object Oriented Programming with

More information

Testing. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)?

Testing. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)? Testing CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Testing Feb. 15, 2007 Some slides adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Execute program on sample input

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 10 Refactoring Patterns Part 1 1 Refactoring: Definition Refactoring: A change made to the internal structure of software to make it easier

More information

Classes, subclasses, subtyping

Classes, subclasses, subtyping 1 CSCE 314: Programming Languages Dr. Flemming Andersen Classes, subclasses, subtyping 2 3 Let me try to explain to you, what to my taste is characteristic for all intelligent thinking. It is, that one

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

Chapter 9 :: Data Abstraction and Object Orientation

Chapter 9 :: Data Abstraction and Object Orientation Chapter 9 :: Data Abstraction and Object Orientation Programming Language Pragmatics Michael L. Scott Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it in

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc. Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures

More information

Overview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017

Overview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017 Overview of OOP Dr. Zhang COSC 1436 Summer, 2017 7/18/2017 Review Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in square brackets: l = [1, 2, "a"] (access by index, is mutable

More information

1. Write two major differences between Object-oriented programming and procedural programming?

1. Write two major differences between Object-oriented programming and procedural programming? 1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:

More information

Chapter 10 :: Data Abstraction and Object Orientation

Chapter 10 :: Data Abstraction and Object Orientation Chapter 10 :: Data Abstraction and Object Orientation Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier Chapter10_Data_Abstraction_and_Object_Orientation_4e 1 Object-Oriented

More information

CompuScholar, Inc. 9th - 12th grades

CompuScholar, Inc. 9th - 12th grades CompuScholar, Inc. Alignment to the College Board AP Computer Science A Standards 9th - 12th grades AP Course Details: Course Title: Grade Level: Standards Link: AP Computer Science A 9th - 12th grades

More information

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M Introduction to UML Part I 1 What is UML? Unified Modeling Language, a standard language for designing and documenting a system in an object- oriented manner. It s a language by which technical architects

More information

Regression testing. Whenever you find a bug. Why is this a good idea?

Regression testing. Whenever you find a bug. Why is this a good idea? Regression testing Whenever you find a bug Reproduce it (before you fix it!) Store input that elicited that bug Store correct output Put into test suite Then, fix it and verify the fix Why is this a good

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1 Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations

More information

Final Exam CISC 475/675 Fall 2004

Final Exam CISC 475/675 Fall 2004 True or False [2 pts each]: Final Exam CISC 475/675 Fall 2004 1. (True/False) All software development processes contain at least separate planning, testing, and documentation phases. 2. (True/False) The

More information

door Sasa Berberovic

door Sasa Berberovic door Sasa Berberovic Overview Reusable Components Subsystems Reusable Components Reuse Mechanisms The Role of Testing in Reuse Reusing Test Suites Test Design Patterns Abstract Class Test Generic Class

More information

Specifications. Prof. Clarkson Fall Today s music: Nice to know you by Incubus

Specifications. Prof. Clarkson Fall Today s music: Nice to know you by Incubus Specifications Prof. Clarkson Fall 2015 Today s music: Nice to know you by Incubus Question Would you like a tiny bonus to your final grade for being here on time today? A. Yes B. Sí C. Hai D. Haan E.

More information

Software Engineering Lab Manual

Software Engineering Lab Manual Kingdom of Saudi Arabia Ministry Education Prince Sattam Bin Abdulaziz University College of Computer Engineering and Sciences Department of Computer Science Software Engineering Lab Manual 1 Background:-

More information

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD Domain analysis Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD OOA concerned with what, not how OOA activities focus on the domain layer

More information

Inheritance and Polymorphism in Java

Inheritance and Polymorphism in Java Inheritance and Polymorphism in Java Introduction In this article from my free Java 8 course, I will be discussing inheritance in Java. Similar to interfaces, inheritance allows a programmer to handle

More information

Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming)

Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming) 2014-03-07 Preface Fortgeschrittene objektorientierte Programmierung (Advanced Object-Oriented Programming) Coordinates: Lecturer: Web: Studies: Requirements: No. 185.211, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/foop.html

More information

Improving Software Testability

Improving Software Testability Improving Software Testability George Yee, 1Z48-M Jan 14, 2000 1 Contents 1. Introduction 2. Improving Testability at Design Time 3. Improving Testability at Coding Time 4. Putting it into Practice 5.

More information

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should

More information

Sample Question Paper. Software Testing (ETIT 414)

Sample Question Paper. Software Testing (ETIT 414) Sample Question Paper Software Testing (ETIT 414) Q 1 i) What is functional testing? This type of testing ignores the internal parts and focus on the output is as per requirement or not. Black-box type

More information