55
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 11, Testing: Model-based Testing and U2TP Note to Instructor: Some of the material in this slide set is not contained in the 3 rd edition of the text book It is planned for the 4 th edition.

Chapter 11, Testing: Model-based Testing and U2TP

Embed Size (px)

DESCRIPTION

Chapter 11, Testing: Model-based Testing and U2TP. Note to Instructor: Some of the material in this slide set is not contained in the 3 rd edition of the text book It is planned for the 4 th edition. Outline of the Lectures on Testing. Terminology Test Model Model-based Testing - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 11, Testing: Model-based Testing and U2TP

Usi

ng U

ML,

Pat

tern

s, a

nd J

ava

Obj

ect-

Orie

nted

Sof

twar

e E

ngin

eerin

g Chapter 11, Testing:Model-based Testing and U2TP

Note to Instructor:

Some of the material in this slide set is not contained in the 3rd edition of the text book

It is planned for the 4th edition.

Page 2: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

Outline of the Lectures on Testing

• Terminology• Test Model• Model-based Testing• Model-driven Testing• U2TP

Page 3: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

Model Driven Architecture (MDA)

• Recall: MDA focuses on forward engineering, i.e. producing code from a system model

• Note: The term “architecture” in MDA does not mean the architecture of the system being modeled, but refers the architecture of the various standards and models that serve as the technology basis for MDA

• UML: Unified Modeling Language• MOF: Meta-Object Facility• XMI: Metadata Interchange• EDOC: Enterprise Distributed Object Computing• SPEM: Software Process Engineering Metamodel• CWM: Common Warehouse Metamodel

An important objective of MDA is executable UML.

Page 4: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

Executable UML

• Executable UML means that given a UML system model the following steps can be performed automatically:

• Code generation • Simulation Validation • Test generation (“Model based Testing”)

Page 5: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

Generating Tests from a System Model

• There are many different ways to "derive" tests from a system model

• Manual generation

• Automatic generation

• Because testing is usually experimental and based on heuristics, there is no one best way to do this

• It is common to consolidate all test related decisions into a package that is often known as "test requirements” or "test package”

• This test package can contain e.g. information about the part of the system model that should be the focus for testing, or about the conditions where it is correct to stop testing (test stopping criteria).

Page 6: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

Test Model

• The Test Model consolidates all test related decisions and components into one package (sometimes also test package or test requirements)

• The test model contains tests, input data, the oracle and the test harness

• A test driver (the program executing the test)• The input data needed for the tests• The oracle comparing the expected output with the

actual test output obtained from the test• The test harness

• A framework or software components that allow to run the tests under varying conditions and monitor the behavior and outputs of the SUT

• Test harnesses are necessary for automated testing.

Page 7: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Model-Based TestingDefinition: Model Based Testing

• The system model is used for the generation of the test model

Definition: System under test (SUT)

• (Part of) the system model which is being tested• Advantages of model-based testing:

• Increased effectiveness of testing• Decreased costs, better maintenance• Reuse of artifacts such as analysis and design models• Traceability of requirements

System under Test(SUT)

Minor Variant: Extreme Programming“Construct the test model first,

before the system model”

Test Model

System Model

Page 8: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

Observations on Model Based Testing

• A system model is an abstract representation of the system’s desired behavior

• The test cases derived from this model are functional tests on the same level of abstraction as the model

• These test cases are known as the abstract test suite

• Because test suites are derived from models - not from source code - model-based testing is a form of black-box testing

• The abstract test suite cannot be executed• An executable test suite must be derived from the abstract

test suite which communicates with the system under test (SUT)

• This is done by mapping the abstract test suite to concrete test cases suitable for execution.

• This mapping is not part of our lecture.

Page 9: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

Model-Driven Testing (MDT)

Model-Driven Architecture (MDA)• The system model can be separated into a platform

independent system model (PIM) and a platform specific system model (PSM)

• A PIM describes the system independently from the platform that may be used to realize the system

• A PIM can be transformed into a PSM. PSMs contain information on the underlying platform

• In another transformation step, the system code is derived from the PSM

• The completeness of the system code depends on the completeness of the system model

• Model-driven testing has its roots in this idea. Similar to MDA, Model-driven testing distinguishes between:

• Platform independent test models (PIT)• Platform specific test models (PST)• Test code generated from these models.

Page 10: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

Model-Driven Testing• System models are transformed into

test models • When the system model is defined at the

PIM level, the platform-independent test model (PIT) can be derived

• When PSM level is defined, the platform-independent test model (PST) can be derived

• The PST can also be derived by transforming the PIT model

• Executable test code is then derived from the PST and PIT models

• After each transformation, the test model may have to be enriched with test specific properties. Examples:

• PIT and PST models must cover unexpected system behavior, special exception handling code must be added to the test code

• Test control and deployment information is usually added at the PST level

System Model

Test Model

• Model-driven testing enables the early integration of testing into the system development process.

Page 11: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

Automated Testing

• There are two ways to generate a test model• Manually: Developers set up the test data, run the test

and examine the results themselves. Success or failure is determined through observation by the developers

• Automatically: Automated generation of test data and test cases. Running the test is also done automatically, and finally the results (success and/or failure) is also automatically investigated

• Definition Automated Testing• All tests are automatically executed with a test harness

• Advantage of automated testing:• Less boring for the developer• Better test thoroughness• Reduces the cost of test execution• Indispensible for regression testing.

Page 12: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

U2TP: A UML Profile for Model Based Testing:

• In 2001, the OMG released a Request for Proposals (RFP) for a Testing Profile for UML to support model based testing

• Several companies and institutions (Ericsson, Fraunhofer/FOKUS, IBM, Motorola, Rational, Softeam, Telelogic, University of Lübeck) responded to this RFP, and after some discussion, decided to work together as a consortium to produce U2TP

• U2TP: UML 2 based Test Profile

Page 13: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

U2TP

• UML-2 Testing Profile (U2TP):• A UML extension that makes UML applicable to

software testing. • U2TP allows the collection of all information required

for the model-based testing process• Deriving a test model from the system model.

• Test Model:• A set of test cases derived from the system model.

Page 14: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

Overview of Concepts used in U2TP

• Test behavior• Test objective, test case• Default behavior, verdict

• Test architecture• Test component, test configuration, test context• SUT (System under Test)• Test control, arbiter, scheduler

• Test Data• Wildcards, data pools, data partition, data selector,

coding rules

• Time Concepts• Timers, time zone.

Page 15: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

General Definitions used in U2TP

• Test: An attempt to create a difference between the observed behavior and the specified behavior of a system a planned way

• Test data: The structures and meaning of values to be processed in a test

• System under test (SUT)• A system, subsystem or component• The SUT is treated as black-box. This means:

• The SUT can be accessed only via a public interface• No information on the internal structure of the SUT

is available for use in the specification of test cases.• Test case: Describes a specified behavior, that is, a

behavior specified in the system model (normative behavior) of the SUT.

Page 16: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

Test Objective

• Test objective • Find any difference between the observed behavior

and the specified behavior, that is, the behavior specified in the system model.

• UML Example• The test objective in the diagram below specifies that the

objective of the ValidWithdrawal test case is to validate the WithdrawMoney use case.

<<testcase>>ValidWithdrawal

<<usecase>>WithdrawMoney<<objective>>

Page 17: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Test Architecture Definitions

• Test component: An object within a test system• Test architecture: The test components and their

relationships in a test system• Testing configuration: The combination of a test

system with a SUT• Test control: A ordering of the execution of the

tests performed on the SUT• Test context: A description of

• A set of test cases• A test configuration• A test control.

Page 18: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

Mandatory Elements in a test based on U2TP

• A test system following the U2TP testing profile must consists at least of the following parts: • Test architecture: SUT, Test Context• Test behavior: TestCase, Verdict.

Architecture Behavior Data Time

SUT Objective Timer

TestContext TestCase StartTimerAction

TestConfiguration Observation StopTimerAction

TestComponent Stimulus TimeOut

Arbiter Verdict

Mandatory Elements

Page 19: Chapter 11, Testing: Model-based Testing and U2TP

Example: Test System for a Vending Machine• Drink Vending Machine (DVM) with 3 use cases:

• The drinking machine accepts cash payment • If the inserted money is sufficient, a drink is returned• If not, the money is returned.

Page 20: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

Model-based Testing of Moneybox

The test system MoneyUnitTest is developed with the purpose of unit testing the class Moneybox, which is part of the system under test

Moneybox must be imported by MoneyUnitTest to be accessible.

Test System SUT

Page 21: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

UML System Model of the Moneybox

Page 22: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

Testing the addMoney Operation (Unit Test)

Test that the machine correctly counts the money inserted by the user into the Moneybox.

Page 23: Chapter 11, Testing: Model-based Testing and U2TP

Sequence Diagram for addMoney

:customer

money1:Money

cashRegister

:Money(x)

:Money(y)

:addMoney(money1)

money2:Money

:addMoney(money2)

money3:Money:Money(z)

:getTemporaryAmout()

:money4

:equals(money4)

:true

Page 24: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Model-based Testing of Moneybox

MoneyTest is the test context

MoneyUnitTest is the test case

Test System SUTTestContext

Test Case

Page 25: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

Definition Test Case

• Test case: A test case implements a test objective. It describes a specified behavior, that is, a behavior specified in the system model (normative behavior) of the SUT

• A test case is defined in terms of sequences, alternatives, loops, and defaults of stimuli to and observations from the SUT.

• A test case consists of• Flow of events (use case, sequence diagram)

• Stimulus to and Observation from the SUT• Verdict: Assessment of the correctness of the SUT

• Arbiter: Evaluates the outcome of the test.

Page 26: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

Test Case• A Test case specifies how a set of test components

interact with the system under test realize a test objective

• A test case is owned by a test context• Components of a test case

• Event flow: Sequence of steps to execute the SUT• May include timing information

• Input: Stimulus• Output: Observation• Expected result: Oracle• Verdict: Observation equals Oracle

• Comparison done by an arbiter

• A test case may invoke other test cases.

Page 27: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

Sequence Diagram for addMoneyTest

Instantiated SUT

Stimulus

Page 28: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

Stimulus and Observation

• Stimulus: Data sent to the SUT

stimulus()

observation

• Observation: Data returned from the SUT as a result of a stimulus.

• Both, stimuli and observations are described as Test data.

Page 29: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29

Stimulus and Observation in addMoneyTest

Instantiated SUT

Observation

Stimulus

Page 30: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

Test Data

• Test Data: A generalization of stimulus and observation. There are three types of test data:

• Data pool: Test data which are unspecific in their properties

• Data partition: Test data which are unspecific in their values

• Wild card: Test data which are unspecific in certain elements

• Data selector: An operation that defines how data values or equivalence classes are selected from a data pool or data partition.

• Coding rules: Describe the encoding/decoding of test data to be sent to the interfaces of the SUT.

Page 31: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31

Data Pool

• Data pools are a collection of data partitions or explicit values that are used by a test context, or test components, during the evaluation of test contexts and test cases. They can be used for repeated tests.

• Example• see figure on next slide

Page 32: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

Data Pool Example

Page 33: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

Verdict

• A test verdict describes the result of a test case execution:

• Pass indicates that the specified behavior equals the observed behavior of the SUT for that specific test case

• Fail describes that the specified behavior is not equal to the observed behavior of the SUT for that test case

• Inconclusive is used if neither a Pass nor a Fail verdict can be given

• Error is used to indicate a failure in the test case itself.

Page 34: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

Verdict in addMoneyTest

Instantiated SUT

Observation

Stimulus

Verdict

Page 35: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

Scheduler: • Predefined interface in U2TP that controls the execution of

the test components that take part in a test case• Keeps control over the creation and destruction of test components

• Collaborates with the arbiter to inform it when it is time to issue a verdict.

• Operations• Scheduler() : Constructor of Scheduler. Starts SUT and Arbiter.

• startTestCase() : Starts test case by notifying all involved test components.

• finishTestCase(t:TestComponent) : Records that test component t has finished its execution. Notifies the arbiter, when all test components in the current test case are finished

• createTestComponent(t:TestComponent) : Records that the test component t has been created by some other test component.

Page 36: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36

Arbiter

• Arbiter: Called by the scheduler. Evaluates the execution of the test case and assigns a verdict to it

• Arbiter is an interface provided by the UML Testing Profile.

• Operations

• getVerdict: Returns the current verdict

• setVerdict: Sets a new verdict value

• Semantic of Arbiter:

• If a verdict is pass, it can be changed to inconclusive, fail, or error.

• If a verdict is inconclusive, it can be changed to fail or error.

• If a verdict is fail, it can be changed to error only.

• If a verdict is error, it cannot be changed.

Page 37: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37

Testing the DVM (Integration Test)• Test Objective

• Check the operation of the DVM when a user buys a drink • System is not yet complete:

• HWControl and CashRegister are not yet developed.

Provided interface

Required interface

Page 38: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38

Develop the Test Components• Test components implement the interfaces of

emulated components • The test components also interact with SUT

TestComponents

Page 39: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39

Test Configuration

• Test Configuration: The test configuration defines instances of the test component (test objects and the connections between them)

• Initial test configuration: State of the test objects at the beginning of a test

• UML Example: • Testing Configuration for the Vending machine• Next slide.

Page 40: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40

Test Configuration for the Vending Machine

• Collection of test components and ports between these components and the SUT

• Defines the connections when the test case is launched.• the maximum number of ports and test components

during the execution of the test case.

Page 41: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41

Timer

• Timer is a mechanism to generate a timeout event occurrence

• This may occur when a pre-specified time interval has expired

• Timers are defined as properties of test components

• A timeout indicates the timer expiration • A timer can be stopped. • The expiration time of a running timer and its current

status (e.g., active/inactive) can be checked.

Page 42: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42

Timer (2)

• StartTimerAction• Semantics: Start Timer t1 with the value 1.5 sec• Parameter: duration• Notation:

• StopTimerAction• Semantics: Stop Timer• Notation:

• TimeOut• The time specified as duration in StartTimer has expired

• Example: • Test that the hardware provides a drink (“giveDrink”) within

1.5 seconds after a drink has been selected.

Page 43: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 43

Timer Example

Start the Timer t1

Stop the Timer t1

Page 44: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 44

Wildcards

• Wildcards are special symbols representing values or ranges of values

• They specify whether the value is present or not, and/or whether it is of any value

• Wildcard types: • Wildcard for any value

• Example: “?” (question mark)• Wildcard for any value or no value at all (i.e. an

omitted value)• Example: “*” (star)

• Wildcard for an omitted value

Page 45: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 45

Additional Readings

• XMI• http://en.wikipedia.org/wiki/XMI

• MDA• http://en.wikipedia.org/wiki/Model-driven_architecture

• UML Testing Profile Tutorial• Ina Schieferdecker, Øystein Haugen, 2004

• http://folk.uio.no/oysteinh/Schieferdecker-Haugen-ECOOP2004-U2TP.pdf

Page 46: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46

Summary

• Review of all the definitions introduced in this part of the lecture.

• Writing test cases for a use case• Write the use case• Determine SUT• Add Stimulus, Observation and Verdict to use case,

turning it into a test case.

Page 47: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 47

Additional Slides

Page 48: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48

Properties of a Good Test Model• Scope

• Each test in the test model should focus on a specific aspect. For unit testing the normal scope is a class or a subsystem (functionally closely coupled classes). For integration testing, the scope is the possible subsystem combinations. For system testing the scope is the full system with respect to functional and nonfunctional requirements

• Repeatability• For the same setup of a test the same results should be produced.

Multiple developers should be able to execute tests at the same time. When a test depends on a shared state, the execution of two tests can lead to a race condition

• Example: if a test modifies a database and several developers are running it simultaneously, the data may be corrupted and one of the tests might fail even though the code is correct. 

• Independence• Tests should not rely on other tests to be run before or after.

They must be able to be run alone so the order of the tests is not critical.

Page 49: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 49

Properties of a good Test Model (2)• Self containment (Independence from

Environment)• All the information required for running a test should be

contained in the test. For example, instead of relying on an environment variable to be set, the environment variable should be set in the test

• Performance• If running a test takes too long, developers are reluctant

to run them. Tests should be as fast as possible and it should be possible to disable tests

• Maintainability• Tests must be maintainable. In particular, when the

system model changes, it must be easy to determine the tests which need to be changed as well

• Reusability of Tests• A test should be reusable across many testing scenarios• A test should applicable to more than one testing

situation.

Page 50: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 50

3 Approaches to Organize Test Cases

• The first approach creates a separate directory structure in parallel with the SUT directory structure, i.e. with the same package alignment as the classes being tested

• The second approach creates a subpackage for all the test classes

• The third approach creates one test case class for a complete package

• For each of these approaches, all the tests must be part of the project build and release process

• Important that the system model, SUT code and tests do not get out of synch with each other during the life of the project.

• From: http://www.informit.com/articles/article.aspx?p=101374&seqNum=8

Page 51: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 51

Sequence Diagram for addMoney

:customer

money1:Money

cashRegister

:Money(x)

:Money(y)

:addMoney(money1)

money2:Money

:addMoney(money2)

money3:Money:Money(z)

:getTemporaryAmout()

:money4

:equals(money4)

:true

Page 52: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 52

Stimulus and Observation in addMoneyTest

Instantiated SUT

Page 53: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 53

Defaults

A default is a behavior triggered by a test observation that is not handled by the behavior of the test case per se. A default is triggered whenever a test observation is not handled by the behavior of a test case. There is a hierarchy of defaults:• within the behavior of a test component object associated to

a state (i.e. in a state machine) or to a combined fragment (in an interaction diagram);

• for the complete behavior of a test component object associated to a part (typed with a test component) in the internal structure of a test context (i.e. in a test configuration);

• for all test component objects of a test component associated to a test component in a test architecture.

Page 54: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 54

Default Examples

Page 55: Chapter 11, Testing: Model-based Testing and U2TP

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 55

Validation Action

A validation action is an action performed by a test component to assess a test observations and/or additional characteristics/parameters. A notation to model validation actions is still to be defined.

• Example