Through a Glass, Darkly: Object-Oriented Testing. Through A Glass, Darkly:
|
|
- Silvester Atkinson
- 5 years ago
- Views:
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 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 informationLearning 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 informationFinal 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 information1: 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 informationChapter 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 informationProgram 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 informationData 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 informationBlack 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 informationState-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 informationNOTES 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 informationQuestion 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 informationFor 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 informationUML 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 informationSoftware 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 informationLethbridge/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 informationCMPT 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 informationReview 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 informationOverview. 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 informationChapter 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 informationCOP 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 informationAssertions. 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 informationSteps 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 informationSOFTWARE 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 informationMotivation 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 informationObject-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 informationCS 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 informationObject 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 informationSafety 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 informationNo 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 informationUNIT 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 informationWhat 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 informationCSE 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 informationAdvanced 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 informationLecturer: 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 informationChapter 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 informationBlack-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 informationCSE 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 informationPROCESS 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 informationChapter 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 informationConcepts 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 informationLecture 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 informationSoftware 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 informationPatterns 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 informationInterface (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 informationOutline. 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 informationCPS122 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 informationBack 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 informationChapter 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 information1 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 informationType 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 informationObject 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 informationSoftware 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 informationFoundations, 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 information1: 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 informationIt 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 informationDESIGN 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 informationInheritance 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 information17. 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 informationCS 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 informationLesson 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 informationCSC 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 information17. 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 informationIntroduction 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 informationCPS 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 informationCredit 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 informationIntroduction 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 informationTesting. 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 informationReferences: 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 informationA - 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 informationChapter 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 informationData 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 informationProgramming 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 informationLast 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 informationThe 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 informationTesting. 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 informationPatterns 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 informationClasses, 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 informationAnalysis 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 informationChapter 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 informationChapter 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 informationAADL 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 informationChapter 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 informationOverview 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 information1. 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 informationChapter 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 informationCompuScholar, 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 informationIntroduction 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 informationRegression 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 informationThe 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 informationObject-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 informationFinal 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 informationdoor 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 informationSpecifications. 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 informationSoftware 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 informationGoal: 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 informationInheritance 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 informationFortgeschrittene 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 informationImproving 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 informationVerification 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 informationSample 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