door Sasa Berberovic

Size: px
Start display at page:

Download "door Sasa Berberovic"

Transcription

1 door Sasa Berberovic

2 Overview Reusable Components Subsystems

3 Reusable Components Reuse Mechanisms The Role of Testing in Reuse Reusing Test Suites Test Design Patterns Abstract Class Test Generic Class Test New Framework Test Popular Framework Test

4 Reuse Mechanisms Component: standalone sofware artifact that may be used in multiple contexts. Component toolkit: collection of programming utilities that support reuse of a certain component library. Reuse differs according to binding time: Source code augmentation Translation time binding Link time/runtime interfaces

5 Reuse Mechanisms Foundation class library supprts translation time reuse by inheritance. Provide a broad range of related capabilities. OpenStep Foundation Kit class library include in Smalltalk development env MS Foundation Classes Java Foundation Classes

6 Reuse Mechanisms Executable components support link time/runtime reuse. Sun s JavaBeans MS ActiveX (COM/DCOM)

7 Reuse Mechanisms Abstract Class exports method interfaces that do not have an implementation within the abstract class. Root class of polymorphic hierarchy Supports dynamic polymorphism

8 Reuse Mechanisms Generic Class requires a type parameter that binds generic instance variables and operations to a specific type (class), providing static polymorphism. Wel suited for implementing data types whose general behavior is nearly identical Ada 95, C++ and Eiffel Not in Java, Objective C and Smalltalk

9 Reuse Mechanisms Framework is an implementation of a reusable, domain specific design. White box framework: consumers typically develop implementations for abstract classes provided in the framework and additional application specific code. After refinement and stabilization white box framework may become black box frameword, in which composition plays a larger role.

10 The Role of Tes9ng in Reuse Solution to chronic software development problems: High development time and cost; Unacceptably frequent failures; Low maintainability; Low adaptability. Study of C++ development: Reuse reduced design errors by a ratio of 49:1 Reuse reduced coding errors by a ratio of 26:1 100:1 reduction in rework an debug time

11 The Role of Tes9ng in Reuse Simple in principle, development of reusable oocomponents is surprisingly difficult. Dependability is the barrier. We test reusable components to remove bugs and increase dependability. Testing can also show that component implementation is awkward, inelegant of difficult to use.

12 The Role of Tes9ng in Reuse Effective producer testing leads to: more reliable components; enhances component documentation; improves design level robustness and reusability; encourages consumer reuse. Focus here is on test strategies for components that support reuse by source code augmentation. (see table)

13 The Role of Tes9ng in Reuse Reusable Component Abstract class Test Instantiation Overriding subclass method implementation Testable Responsibilities Class contract Producer s Test Scope Class/flattened class Generic class Type parameter Class contract Class/flattened class Application framework Application implementation Framework use cases Association invariants System

14 The Role of Tes9ng in Reuse Instantiation means something different for each kind of component: abstract class instantiation is a subclass that provides an implementation of the abstract class interface; generic class instantiation is the class that results when a parameter is provided in a declaration or a definition. framework instantiation is a system of subclasses that realizes one possible implementation of the framework.

15 The Role of Tes9ng in Reuse Framework often evolve from insights about design solutions that can work in more than one context. As it evolves, the focus of testing shifts: New framework test: applies to initial and early version; Popular framework test: applies to a framework that has become widely used.

16 Reusing Test Suites Reuse not limited to code, it can benefit both the consumer as the producer to reuse the test suites. Consumer: can extend the test suite to parallel application extensions. Producer: consumer implementation can provide a rich source for controlled testing by producer.

17 Test Design Pa>erns Abstract Class Test Generic Class Test New Framework Test Popular Framework Test

18 Abstract Class Test Intent: Develop a test implementation of and a test suite for an abstract class interface. Context: Abstract class can not be instantiated and can not be tested as written. It must be tested by developing a subclass by implementing all the unimplemented superclass methods. Test suite is designed for entire hierarchy by using a pattern that corresponds to this test instantiation.

19 Abstract Class Test Context: Example abstract class (C++): class Account { public: Account () {} virtual ~Account () {} virtual Money balance () = 0; virtual void credit (Money& amount) = 0; virtual void debit (Money& amount) = 0; }

20 Abstract Class Test Fault Model: Design errors: incomplete or inconsistent identification of common responsibilities; incorrect or incomplete representation of responsibilities in the interface, definition of instance variables that should be deferred; missing capabilities. Simple coding errors.

21 Abstract Class Test Strategy: Develop a subclass that implements all the abstract methods; Develop a specification based test suite for the contract of the flattened subclass using the applicable method and class scope test design patterns. Polymorphic Server Test may be used for a test suite for the hierarchy; Test Case for each subclass method that implements an abstract superclass method en run on subclass object; Test Case for each implemented superclass method en run on the superclass method; Reuse above test case for subclass methods; Integration testing at flattened scope for each subclass ; The Subclass Driver is appropriate as a class scope driver.

22 Abstract Class Test Entry criteria: An abstract class may be tested when it is compiled. Exit criteria: The test instantiation should achieve the coverage recommended for test pattern applied. Method scope coverage is the recommended minimum.

23 Abstract Class Test Consequences: The development of the test subclass and its test suite may reveal design errors or reusability problems. Test suite may provide useful documentation for consumers.

24 Generic Class Test Intent: Develop a test implementation of and a test suite for a class that requires a type parameter. Context: This pattern applies to any generic class; Generic classes must be instantiated with a type parameter and tested with that type binding;

25 Generic Class Test Fault Model: Requires strong type checking; Type depended faults; Type specific faults; Multiple type interaction faults;

26 Generic Class Test Strategy: Single Type Parameter Type independent tests; Type specific tests; Type overloading tests. Two or More Type Parameters More complex testing problem Exercise combination of types

27 Generic Class Test Strategy: Single type parameter: the following steps will allow later test to reuse earlier tests. 1. Choose a representative type parameter; 2. Select applicable method and class test patterns and develop test suites accordingly. (Category Partition and Nonmodal Class test) 3. Run the test suite on an instantiation of the representative type, debug it, and achieve the appropriate coverage. 4. Determine how many additional type dependent instantiations should be tested. 5. Determine how many additional type specific instantiations should be tested. 6. If the class exports overloadable operations, then develop a test for each possible combination.

28 Strategy: Two or more type parameters: Test as many type combinations as time permits; Select the types that will be used most frequently; Replace the secondary parameter, revise a copy of the test suite and repeat; Repeat the cycle until all combination have been tested and pass with acceptable branch coverage.

29 Generic Class Test Automation: Implement a test driver for generic class as a generic class that accepts the same types parameters as the class under test. Develop the test driver progressively.

30 Generic Class Test Entry criteria: All accepted classes identified as type should pass their own test suites; Meet entry criteria for applicable test patterns. Exit criteria: At 100% branch coverage or better on every tested instantiation of the CUT. Achieve exit criteria for the applicable test patterns.

31 New Framework Test Intent: Develop a test implementation of and a test suite for a framework that has few if any instantiations. Context: This pattern is applicable to a system of classes intended to support development of specific apps by extension and to class hierarchies that offer a generic programming infrastructure. A framework may be developed in 2 ways: A modal based framework: supports a family of app systems that share a common set of classes Generalized framework: generalizing an antecedent app system (follow the patterns for evolving frameworks)

32 New Framework Test Fault Model: Frameworks make three general promises: They are a complete and consistent representation of the salient aspects of the problem domain as classes and associations; They provide basic capabilities to create, read, update and delete objects of these classes and the associations among them; They enforce sequential control necessary for required behaviour.

33 New Framework Test Fault Model: Likely kinds of bugs: Design omission; Representational integrity bugs; Control bugs; Infrastructure bugs.

34 New Framework Test Strategy: Test Model A testable instantiation must be designed and developed (demo app) The use case model should include all use cases that developers can identify for the entire framework Use Extended Use Case Test do develop tests for each use case Use Class Association Test to develop tests for each association Model a state machine and develop a test suite to achieve N+ coverage The demo app must implement features that are the same or nearly the same as those of the predecessor system It does not need to implement all features of the predecessor system It can implement features not found in the predecessor system.

35 Popular Framework Test Intent: Develop a test suite for a framework that has many application specific instantiations. Fault Model: A feature interaction; A compatibility bug; A latent bug;

36 Popular Framework Test Strategy: Test model: Feature interaction testing: Test suite for the version of the FUT; Additional feature interaction tests from anti requirements; Feature combinations; A regression test suite should be run; Test cases for the new features using Extended use case test and class association test; Automation: Test suite implemented with a driver suited to the external interface of the demo app.

37 Popular Framework Test Entry Criteria: A testable system scope should be available; New and changed classes/subsystems should have passed their individual test suites; System scope test harness should be installed, tested and stabilized; Test environment should be installed, tested and stabilized; Optional: you have build 1 actual instantiation of the current release; You have conducted an analysis of the new and changed features.

38 Popular Framework Test Exit Criteria: Same as for New Framework Test;

39 Subsystems What is a Subsystem? Why Test Subsystem Scope? Design patterns: Class Association Test; Controlled Exception Test; Round trip Scenario Test; Mode Machine Test.

40 What? Any testable collection of classes, objects, components and modules Characteristics: Executable and testable as whole Has parts that can be tested in isolation Implements cohesive set of responsibilities Doesn t provide all the functionality of the application under test.

41 Types Small clusters Pattern participants Developer subclasses Family of Ada 95 packages Large clusters Build group Task group

42 Why? It is a precondition for testing at system scope It is a practical necessity Support for internal release during incremental, iterative development Use cases can model requirements for any subsystem with public interface Some classes and other components have been bundled for historical reasons and must be tested as whole Some subsystems must work for additional funding Testing budget or schedule is limited or reduced Dependability of some subsystems is higher than of others The target environment is unique or different or must be simulated apart from the rest of the application

43 Test Design Pa>erns Class Association Test Controlled Exception Test Round trip Scenario Test Mode Machine Test

44 Class Associa9on Test Intent: Design a test suite to verify the implementation of required associations among classes Context: Correctly implement the relationships in a Class Diagram It will reveal typical bugs in the implementation of associations.

45 Class Associa9on Test Fault model: Kinds of faults Incorrect multiplicity Update anomaly Delete anomaly Missing link Wrong link Exercise the code that implements the associations constraints

46 Class Associa9on Test Strategy: Test Model: Multiplicity Test Sets Testing for Update /Delete Bugs Wrong and Missing Links Automation: Increase testing by interleaving anomaly tests with max value multiplicity tests Via an API driver interface Set up test cases with a db loader utility

47 Class Associa9on Test Entry Criteria: Each class in the scope of the model has passed an alpha omega cycle Keyed collections are typically used to implement associations. These classes should be individually tested with Quasi modal Class Test

48 Class Associa9on Test Exit Criteria: Each multiplicity on point test passes Each multiplicity off point test passes A deletion anomaly test passes An update anomaly test passes All tests for mutual exclusion pass

49 Round trip Scenario Test Intent: Extract a control flow model from a UML Sequence Diagram and develop a path set that provides minimal branch and loop coverage

50 Round trip Scenario Test Fault Model: A scenario is one path through a Sequence Diagram Following bugs can occur: Incorrect/missing output Acceptance of incorrect selection or object Action missing on external interface Missing function/feature in a participant Correct msg passed to wrong object Incorrect msg passed to right object Msg sent to destroyed object Correct exception raised, but by a wrong object Incorrect exception raised to right object

51 Round trip Scenario Test Strategy: Test Model: The information in the Sequence Diagram can be transformed into a flow graph, witch is highly testable model. Drawing the control flow graph will probably reveal ambiguities and omissions in the Sequence Diagram.

52 Round trip Scenario Test Strategy: Test procedure: 4 steps 1. Translate the Sequence Diagram into a Flow Graph; 2. Identify Paths to Test from the Flow Graph; 3. Identify Special Cases; 4. Identify Inputs and States Needed to Cause a Prticular Path to Be Taken.

53 Round trip Scenario Test Strategy: Automation: Test suite can be implemented with a GUI scripting language or in an API test driver. Entry Criteria: The objects, components or subsystems participating in the scenarios should have passed at least a minimal test suite or have been sufficiently reliable in actual use.

54 Round trip Scenario Test Exit Criteria: Every branch in a derived flowchart is taken at least once; Each loop is bypassed or iterated for minimum number of iterations; Each loop is iterated once and then exited; Each loop is iterated for the maximum number of iterations.

55 Controlled Excep9on Test Intent: Design a test suite that will exercise exceptions handlers and provide a systematic means to generate all exceptions Context: The Controlled Exceptions Test pattern applies to implementations expected to handle application specific exceptions or exceptions raised by target environment. Computational exceptions; I/O errors File errors Main storage management Task management

56 Controlled Excep9on Test Fault Model: General kinds of faults that can occur: An exception is incorrectly passed from client to server; An exception propagates out of scope; An application specific exception handler is missing/incorrect; An exception is ignored and results in an immediate process/task abend; An exception is ignored and results in a mysterious failure in unrelated code; An exception handler creates an adverse side effect; The recovery attempted by an exception is incorrect or incomplete; The exception structure loops;

57 Controlled Excep9on Test Fault Model: If exist, these can be reached only by activating the code that handles the exceptions; This pattern does not directly target faults in logic or computation leading to incorrect output, sequential behavior constraints or performance problems.

58 Controlled Excep9on Test Strategy: Test Model: A state machine or combinational logic can be used as test model (Category Partition); Exception testing can be accomplished in 3 ways: Activation; Inducement; Simulation;

59 Controlled Excep9on Test Strategy: Test Model: Exception activation: activated through input and state values supplied by test cases. Exception inducement: are induced by directly manipulating the implementation under test or target environment: Mistune; Cripple; Pollute; Mutate/Zap. Exception simulation: simulated by using controllable wrappers for application server or virtual machine services.

60 Controlled Excep9on Test Strategy: Automation: Stubs are commonly used to simulate application specific exceptions; Command line scripts can be developed to generate anomalous conditions to trigger exceptions; A wrapper class can be used to simulate exceptions.

61 Controlled Excep9on Test Entry Criteria: Do exception testing after responsibility testing of the server and client has been completed. Exit Criteria: Each server exception should be raised at least once, and each handler in the IUT should be activated at least once; If the handler is nontrivial, coverage appropriate for the responsibility of the exception handler is achieved; If the exception has a long percolation chain, each link should be traversed at least once.

62 Mode Machine Test Intent: Develop a test suite for subsystem scope behavior by analysing component behavior. Context: This test pattern is useful for testing subsystems whose behavior is sequentially constrained; A modal subsystem includes a dominant controle object, implements a state pattern or has similar control strategy; This pattern produces a test suite that helps solve several hard testing problems: Identification of end to end threads; Unambiguous determination of external sequences necessary to test a thread given a certain constellation of class states; Unambiguous determination of external sequences necessary to place an object in a given state.

63 Mode Machine Test Fault Model: The state of an application subsystem consists of the collective state of its object, or mode; When sequences of external events are constrained, a correctly functioning subsystem must 1. Accept legal events; 2. Reject events that are illegal in these states; 3. Produce a correct resultant state for accepted and rejected events; 4. Produce correct action for each test event msg.

64 Mode Machine Test Fault Model: A subsystem implementation can have 5 kinds of control faults: Missing transition; Incorrect action; Invalid resultant state; The production of a corrupt state; A sneak path that allows an event to be accepted when it should have been rejected.

65 Mode Machine Test Strategy: Test Model: Mode Machine Test produces a state based model of subsystem behavior that can generate N+ test suite. Test model is developed in the following steps: Indentify the dominant control object for the subsystem under test and develop its state model; Identify the external events and actions of the subsystem under test; Map the external events onto the dominant control object (the mode machine); Develop a modal test suite for this state model.

66 Mode Machine Test Strategy: Test Model: The test generation procedure is the same as used in the modal class pattern: 1. Identify the Dominant Control Object; 2. Model External Events and Actions; 3. Develop an N+ Test Suite (composed of 5 kinds of tests): 1. Conformance tests; 2. Guard expansion; 3. Iteration expansion; 4. Implicit transition expansion; 5. Sneak path analysis.

67 Mode Machine Test Strategy: Automation: A modal test suite may be implemented with any of the API test Harness patterns (Chapter 19). Entry Criteria: Each component class or cluster has met the exit criteria for the applicable test pattern. Leaf node test cannot be reached until all predecessor test have passed; Each cluster has met minimal operability requirements. Exit Criteria: There is a test for every root to leaf path in the expanded transition tree and each sneak path pair. These test sequences pass.

68 The End

Class Modality. Modality Types. Modality Types. Class Scope Test Design Patterns

Class Modality. Modality Types. Modality Types. Class Scope Test Design Patterns Class Scope Test Design Patterns Testing methods in isolation is not enough Instance variables act like global variables within a class Need to test intraclass interactions Message sequences Class Modality

More information

Integration Testing Qualidade de Software 2

Integration Testing Qualidade de Software 2 Integration Testing Integration Testing Software systems are built with components that must interoperate Primary purpose: To reveal component interoperability faults so that testing at system scope may

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

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

Testing Object-Oriented Software. 22 November 2017

Testing Object-Oriented Software. 22 November 2017 Testing Object-Oriented Software 22 November 2017 Testing Object-Oriented Software 2 Problems in object-oriented testing [Binder] Each level in the class hierarchy creates a new context for inherited features:

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

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

15. Regression testing

15. Regression testing Outline 15. Regression testing Tom Verheyen, Jelle Slowack, Bart Smets, Glenn Van Loon Introduction - What, why, when, how - Regression faults - Test automation - Test suite maintenance - Reducing a test

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

Chap 2. Introduction to Software Testing

Chap 2. Introduction to Software Testing Chap 2. Introduction to Software Testing 2.1 Software Testing Concepts and Processes 2.2 Test Management 1 2.1 Software Testing Concepts and Processes 1. Introduction 2. Testing Dimensions 3. Test Concepts

More information

Software Testing. Massimo Felici IF

Software Testing. Massimo Felici IF Software Testing Massimo Felici IF-3.46 0131 650 5899 mfelici@staffmail.ed.ac.uk What is Software Testing? Software Testing is the design and implementation of a special kind of software system: one that

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

Design Pattern: Composite

Design Pattern: Composite Design Pattern: Composite Intent Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. Motivation

More information

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1 Design Principles Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques 2-1 Data Structures Data Structure - A systematic way of organizing and accessing

More information

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

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process Verification and Validation Assuring that a software system meets a user s needs Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 19,20 Slide 1

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

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

Błaej Pietrzak

Błaej Pietrzak Błaej Pietrzak blazej.pietrzak@cs.put.poznan.pl Fault model Result-oriented testing Test design approach Domain testing model Category-Partition test pattern Polymorphic message test pattern 1 Exhaustive

More information

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

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

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

Design Patterns IV Structural Design Patterns, 1

Design Patterns IV Structural Design Patterns, 1 Structural Design Patterns, 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Class Object Department of Computer Science The Australian National University 18.1 1 2 Class Object

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

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Testing Software Engineering -CSC4350/6350 - Rao Casturi 2 Testing What is testing? Process of finding the divergence between the expected behavior of the

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

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/10/2015 http://cs.gsu.edu/~ncasturi1 Class announcements Final Exam date - Dec 1 st. Final Presentations Dec 3 rd. And

More information

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content Core Java - SCJP Course content NOTE: For exam objectives refer to the SCJP 1.6 objectives. 1. Declarations and Access Control Java Refresher Identifiers & JavaBeans Legal Identifiers. Sun's Java Code

More information

Design Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns

Design Patterns IV. Alexei Khorev. 1 Structural Patterns. Structural Patterns. 2 Adapter Design Patterns IV. Alexei Khorev. Structural Patterns Structural Design Patterns, 1 1 COMP2110/2510 Software Design Software Design for SE September 17, 2008 2 3 Department of Computer Science The Australian National University 4 18.1 18.2 GoF Structural

More information

Software Engineering Fall 2014

Software Engineering Fall 2014 Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/10/2014 Final Exam date - Dec 10 th? Class announcements Final Presentations Dec 3 rd. And Dec 8 th. Ability

More information

Object-Oriented Concepts and Design Principles

Object-Oriented Concepts and Design Principles Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation

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

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

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

Testing Objectives. Successful testing: discovers previously unknown errors

Testing Objectives. Successful testing: discovers previously unknown errors Testing Objectives Informal view: Testing: a process of executing software with the intent of finding errors Good testing: a high probability of finding as-yetundiscovered errors Successful testing: discovers

More information

Błaej Pietrzak Goal. Two approaches. Process. If we limit testing to method scope

Błaej Pietrzak Goal. Two approaches. Process. If we limit testing to method scope Błaej Pietrzak blazej.pietrzak@cs.put.poznan.pl Class scope integration Design by Contract Invariant Boundaries pattern Non-modal class pattern FREE state model Quasi-modal class pattern Modal class pattern

More information

Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems)

Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems) 2. Models (Based on Part II: Models of Testing Object-Oriented Systems) Software Testing 2. Models Models Why? What? How? Combinational Models Decision Tables: What? How? Test Generation State Machines

More information

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends! Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science

More information

Testing3. State-based Testing

Testing3. State-based Testing Testing3 State-based testing Inheritance Testing interacting classes Communication diagrams Object relation graph (ORD) Regression testing GUI Testing 1 State-based Testing Natural representation with

More information

JVA-103. Java Programming

JVA-103. Java Programming JVA-103. Java Programming Version 8.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for programmers with experience in languages other

More information

Chapter 5 Object-Oriented Programming

Chapter 5 Object-Oriented Programming Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares

More information

Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems)

Software Testing. 2. Models. 2. Models. Testing Approaches. Why Models? (in Testing) (Based on Part II: Models of Testing Object-Oriented Systems) 2. Models (Based on Part II: Models of Testing Object-Oriented Systems) Software Testing 2. Models Models - Why? What? How? Combinational Models - Decision Tables: What? How? - Test Generation State Machines

More information

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013! Testing Prof. Leon Osterweil CS 520/620 Spring 2013 Relations and Analysis A software product consists of A collection of (types of) artifacts Related to each other by myriad Relations The relations are

More information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 307: Software Engineering. Lecture 10: Software Design and Architecture CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

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

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

SE 2730 Final Review

SE 2730 Final Review SE 2730 Final Review 1. Introduction 1) What is software: programs, associated documentations and data 2) Three types of software products: generic, custom, semi-custom Why is semi-custom product more

More information

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 21 Regression Testing Path Spectra Today s Agenda (1) Regression Test Selection Path Spectra Presentation by David (skeptic) Presentation by Sidd (advocate) Presentation by Srinivas (skeptic) Today

More information

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake Sample ISTQB examination 1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake 2 Regression testing 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

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction

More information

Chapter 8 Software Testing. Chapter 8 So-ware tes0ng

Chapter 8 Software Testing. Chapter 8 So-ware tes0ng 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

More information

Exception Handling Introduction. Error-Prevention Tip 13.1 OBJECTIVES

Exception Handling Introduction. Error-Prevention Tip 13.1 OBJECTIVES 1 2 13 Exception Handling It is common sense to take a method and try it. If it fails, admit it frankly and try another. But above all, try something. Franklin Delano Roosevelt O throw away the worser

More information

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia Topic: Software Verification, Validation and Testing Software Engineering Faculty of Computing Universiti Teknologi Malaysia 2016 Software Engineering 2 Recap on SDLC Phases & Artefacts Domain Analysis

More information

Big Java Late Objects

Big Java Late Objects Big Java Late Objects Horstmann, Cay S. ISBN-13: 9781118087886 Table of Contents 1. Introduction 1.1 Computer Programs 1.2 The Anatomy of a Computer 1.3 The Java Programming Language 1.4 Becoming Familiar

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized

More information

A Reconnaissance on Design Patterns

A Reconnaissance on Design Patterns A Reconnaissance on Design Patterns M.Chaithanya Varma Student of computer science engineering, Sree Vidhyanikethan Engineering college, Tirupati, India ABSTRACT: In past decade, design patterns have been

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

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test

More information

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation Yan Shi SE 2730 Lecture Notes Verification and Validation Verification: Are

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns

More information

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level D Y Patil Institute of Engineering and Technology, Ambi, Pune Address:Sr.No.124 & 126, A/p- Ambi, Tal-Maval, MIDC Road, TalegaonDabhade, Pune-410506, Maharashtra, India Tel: 02114306229, E-mail : info@dyptc.edu.in

More information

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright Classes and Objects Object Orientated Analysis and Design Benjamin Kenwright Outline Review Previous Weeks Object Model, Complexity,.. What do we mean by Classes and Objects? Summary/Discussion Review

More information

The testing process. Component testing. System testing

The testing process. Component testing. System testing Software testing Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating system

More information

Software Testing. Integration Testing. Beat Fluri. software evolution & architecture lab

Software Testing. Integration Testing. Beat Fluri. software evolution & architecture lab Software Testing Integration Testing Beat Fluri software evolution & architecture lab V-Model Specification Implementation User needs Delivery System Spec System Integration Test Subsystem Design/Spec

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Software Testing and Maintenance

Software Testing and Maintenance Software Testing and Maintenance Testing Strategies Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

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

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

challenges in domain-specific modeling raphaël mannadiar august 27, 2009 challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing

More information

Lecture Notes on Programming Languages

Lecture Notes on Programming Languages Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered

More information

Software Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION

Software Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION Software Testing TEST CASE SELECTION AND ADEQUECY TEST EXECUTION Overview, Test specification and cases, Adequacy criteria, comparing criteria, Overview of test execution, From test case specification

More information

Software Testing. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University

Software Testing. Minsoo Ryu. Hanyang University. Real-Time Computing and Communications Lab., Hanyang University Software Testing Minsoo Ryu Hanyang University Topics covered 1. Testing Goals and Principles 2. Testing Process 3. Testing Strategies Component testing Integration testing Validation/system testing 4.

More information

Software testing. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1

Software testing. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 23 Slide 1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles

More information

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles Abstraction Design fundamentals in OO Systems Tool for abstraction: object Object structure: properties and values for those properties operations to query and update those properties We refer to the collection

More information

COURSE 2 DESIGN PATTERNS

COURSE 2 DESIGN PATTERNS COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract

More information

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins Software Testing Why Test? Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins https://www.typemock.com/software-bugs-infographic A bug found at design time costs ten times less to fix

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

Software Testing. 14. Application Systems. International Funds Transfer System Development Team - Objects work, objects are right The System Works!

Software Testing. 14. Application Systems. International Funds Transfer System Development Team - Objects work, objects are right The System Works! Software Testing 14. Application Systems Daniel Riegelhaupt - Thomas De Vylder - Loots Gertjan - Saquet Tim - Philip De Smedt 14. Application Systems Testing Application Systems Test Design Patterns Implementation-specific

More information

Checklist for Requirements Specification Reviews

Checklist for Requirements Specification Reviews Checklist for Requirements Specification Reviews Organization and Completeness o Are all internal cross-references to other requirements correct? o Are all requirements written at a consistent and appropriate

More information

Information System Design (IT60105)

Information System Design (IT60105) Information System Design (IT60105) Lecture 26 Object-Oriented System Testing Lecture #23 Procedural vs OO paradigms Why not Traditional Testing? Issues Methodology 2 Procedural Vs OO p Procedural Vs OO

More information

INTERNAL ASSESSMENT TEST III Answer Schema

INTERNAL ASSESSMENT TEST III Answer Schema INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object

More information

Interactions A link message

Interactions A link message Interactions An interaction is a behavior that is composed of a set of messages exchanged among a set of objects within a context to accomplish a purpose. A message specifies the communication between

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 8 OO modeling Design Patterns Introduction Creational Patterns Software

More information

Efficient Regression Test Model for Object Oriented Software

Efficient Regression Test Model for Object Oriented Software Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration

More information

Design Patterns. Comp2110 Software Design. Department of Computer Science Australian National University. Second Semester

Design Patterns. Comp2110 Software Design. Department of Computer Science Australian National University. Second Semester Design Patterns Comp2110 Software Design Department of Computer Science Australian National University Second Semester 2005 1 Design Pattern Space Creational patterns Deal with initializing and configuring

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Object-Oriented Systems Analysis and Design Using UML

Object-Oriented Systems Analysis and Design Using UML 10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand

More information

UNIT-4 Black Box & White Box Testing

UNIT-4 Black Box & White Box Testing Black Box & White Box Testing Black Box Testing (Functional testing) o Equivalence Partitioning o Boundary Value Analysis o Cause Effect Graphing White Box Testing (Structural testing) o Coverage Testing

More information

Design Patterns Reid Holmes

Design Patterns Reid Holmes Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary

More information

Sample Exam Syllabus

Sample Exam Syllabus ISTQB Foundation Level 2011 Syllabus Version 2.9 Release Date: December 16th, 2017. Version.2.9 Page 1 of 46 Dec 16th, 2017 Copyright 2017 (hereinafter called ISTQB ). All rights reserved. The authors

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

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

Class Analysis for Testing of Polymorphism in Java Software

Class Analysis for Testing of Polymorphism in Java Software Class Analysis for Testing of Polymorphism in Java Software Atanas Rountev Ana Milanova Barbara G. Ryder Rutgers University, New Brunswick, NJ 08903, USA {rountev,milanova,ryder@cs.rutgers.edu Abstract

More information

Error Model Annex Revision

Error Model Annex Revision Error Model Annex Revision Peter H Feiler phf@sei.cmu.edu Jan 2011 Goal A core set of reliability concepts and error types Interaction of systems with nominal behavior and threats in the form of defects,

More information

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

More information

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering

Chapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering Chapter 11, Testing Using UML, Patterns, and Java Object-Oriented Software Engineering Outline Terminology Types of errors Dealing with errors Quality assurance vs Testing Component Testing! Unit testing!

More information