1 software testing and quality assurance lecture 16 - test analysis & design models (chapter 4,...

27
1 Software Testing and Quality Assurance Lecture 16 - Test Analysis & Design Models (Chapter 4, A Practical Guide to Testing Object-Oriented Software)

Post on 19-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

1

Software Testing and Quality Assurance

Lecture 16 - Test Analysis & Design Models (Chapter 4, A Practical Guide

to Testing Object-Oriented Software)

2

Lecture Outline To learn how to inspect the semantics

of UML models. To be able to setup an inspection

session.

3

Introduction Developers model the software they are

constructing because: It assists in understanding the problem

they are solving It helps manage the complexity of the

system being developed. High quality of models make a valuable

contribution to the project

4

Introduction (cont...) Guided inspection:

An enhanced inspection technique for verifying the models as they are created; and

For validating the completed models against project requirements.

5

Introduction (cont...) Reviews focus on what is in the model rather

than what should be in the model. Guided inspection applies the testing

perspective early in the development process.

Guided inspection requires valuable resources, and the time and attention of project personnel.

6

Introduction: the V ModelSystem Models

System Implementation

Architecture Models

Subsystem Integration

Component Models

Component Implementation

Guided Inspection

Code-b

ased

Tes

ting t

echn

iques

7

Place of guided inspection in the development process

The last activity in each phase in the development process should be a verification of the required qualities of the developed product.

Differences between succeeding models: The scope of the content The level of abstraction

8

Guided inspection in the development process: models and phases

Architectural design model and standard design patterns and algorithms

Each interface in the Architecture is implemented by one or more components

Detailed design

Standard architectural patterns and creativity of designers

Basic structure of interfaces and their interactions

Architectural design

The domain analysis model and the requirements model

Concepts needed to explain the specific problem; standard algorithm

Application analysis

The minds of the domain experts

Domain concepts, standard algorithms

Domain analysis

Transformed fromContentPhase/model

9

The basics of Guided inspection The guided inspection technique

provides a means of objectively and systematically searching a work product for faults by using explicit test cases.

The basic steps in guided inspection Define the test space Select values from the test space using a

specific strategy

10

The basics of Guided inspection Apply the test values to the product

being tested Evaluate the results and the percentage

of the model covered by the test Based on some criteria.

11

The basics of Guided inspection (cont...)

The previous steps are specialized to the following steps: Specify the scope and depth of the inspection Identify the basis models from which the model

under test (MUT) was created Develop test cases for each of the evaluation

criteria to be applied using the contents of the basis model as input.

Establish criteria for measuring test coverage.

12

The basics of Guided inspection (cont...) Perform the static analysis using the

appropriate checklist. “Execute” the test cases. Evaluate the effectiveness of tests using the

coverage measurement. If the coverage is insufficient, expand the test

suite and apply the additional tests, otherwise, terminate the testing.

13

The basics of Guided inspection : Example

Initial stages of developing Brickles Following work products have been

produced: Design-level class diagrams [Ref. Figure

2.18] State diagrams [Ref. Figure 2.19] Sequence diagrams [Ref. Figure 2.20]

Test the design model before starting coding

14

The basics of Guided inspection : Example (cont...) Assign the inspection team, the team includes

Two developers A system tester from the company Company’s process person (Moderator)

The tester will develop a set of test cases from the use case diagram.

The developers will show how the classes in the design model handle each test case.

The moderator will define the inspection boundaries, schedule the guided inspection sessions, etc

15

The basics of Guided inspection : Example (cont...)

Step 1: Specify the scope and depth of the inspection The scope is defined by a set of use cases.

We will cover all use cases The depth is defined by identifying levels of

containment in the composition hierarchies.

Test only those objects that represent the state of the match (BricklesDoc object)

16

The basics of Guided inspection : Example (cont...)

Step 2: Identify the basis models from which the model under test (MUT) was created Design Model

Design-level class diagrams [Ref. Figure 2.18] State diagrams [Ref. Figure 2.19] Sequence diagrams [Ref. Figure 2.20]

17

The basics of Guided inspection : Example (cont...)

Step 3: Develop test cases for each of the evaluation criteria to be applied using the contents of the basis model as input. Tester will write all test cases based on the

Use case diagrams like Figure 2.11, 2.12 (see next slide)

18

The basics of Guided inspection: Example― use cases for Brickles (cont...)

Use cases for Brickles

19

The basics of Guided inspection : Example (cont...)

Each test case should be in the following format

The use case: A player stops a Brickles match by selecting QUIT from the File Menu

Preconditions: The Player has stated the Brickles, has moved the paddle, and has broken some bricks

Test input: The player selects Quit Expected output: All game action freezes and

the game window disappears

20

The basics of Guided inspection : Example (cont...)

Step 4: Establish criteria for measuring test coverage. All use cases should be tested. Coverage

will be 100 % for use cases and 60 % for composition hierarchies.

21

The basics of Guided inspection : Example (cont...)

Step 5: Perform the static analysis using the appropriate checklist. Developers complete the design model

checklist [Ref. Figure 4.3] Developers compare class diagram from

analysis model [Ref. Figure 2.13] with the class diagram in the design model.

22

The basics of Guided inspection : Example— Design model checklist (cont...)

23

The basics of Guided inspection : Example (cont...)

Step 6: “Execute” the test cases. Moderator schedules a meeting and makes

the relevant material available to all involved

During the meeting, the developers show how test cases will be handled by the classes in the design model

24

The basics of Guided inspection : Example (cont...)

Step 7: Evaluate the effectiveness of tests using the coverage measurement. The moderator will note down the problems

found during the symbolic execution of test cases.

Founded bugs will be analyzed by the team and proper description for each bug will be developed.

25

The basics of Guided inspection : Example (cont...)

Step 8: If the coverage is insufficient, expand the test suite and apply the additional tests, otherwise, terminate the testing. The moderator will prepare and submit a report to

the project manager that contains: The problems found during the execution of the test

cases. Where execution terminated. The sequence diagram used to record the test execution.

26

Guided inspection issues Should test cases be available to the developers

prior the inspection test? No, developers should not have the scenarios prior

the inspection test. Should testers only use test cases for the current

increment in an inspection test? No, running a test scenario from a previous increment

as a regression check on the mode is a useful idea. Coverage in models

Higher the level of abstraction, the higher the level of coverage.

27

Key points The guided inspection technique provides a

means of objectively and systematically searching a work product for faults by using explicit test cases.

The basic steps in guided inspection Define the test space Select values from the test space using a specific

strategy Apply the test values to the product being tested Evaluate the results and the percentage of the

model covered by the test