32
ommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide Verification and Validation Assuring that a software system meets a user's needs

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

Embed Size (px)

Citation preview

Page 1: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 1

Verification and Validation

Assuring that a software system meets a user's needs

Page 2: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 2

Objectives

To introduce software verification and validation To describe the stages of the testing process To explain the importance of test planning To describe various complementary testing

strategies

Page 3: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 3

Topics covered

The testing process Test planning Testing strategies

Page 4: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 4

Verification: "Are we building the product right"

The software should conform to its specification Validation:

"Are we building the right product" The software should do what the user really

requires

Verification vs validation

Page 5: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 5

Is a whole life-cycle process - V & V must be applied at each stage in the software process.

Has two principal objectives• The discovery of defects in a system

• The assessment of whether or not the system is usable in an operational situation.

The V & V process

Page 6: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 6

Dynamic V & V Concerned with exercising and observing product behaviour (testing)

Static verification Concerned with analysis of the static system representation to discover problems

Dynamic and static verification

Page 7: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 7

Static and dynamic V&V

Formalspecification

High-leveldesign

Requirementsspecification

Detaileddesign

Program

PrototypeDynamicvalidation

Staticverification

Page 8: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 8

Can reveal the presence of errors NOT their absence

A successful test is a test which discovers one or more errors

Only validation technique for non-functional requirements

Should be used in conjunction with static verification

Program testing

Page 9: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 9

Statistical testing• tests designed to reflect the frequence of user inputs. Used

for reliability estimation.

• Covered in Chapter 18 - Software reliability.

Defect testing• Tests designed to discover system defects.

• A successful defect test is one which reveals the presence of defects in a system.

• Covered in Chapter 23 - Defect testing

Types of testing

Page 10: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 10

Defect testing and debugging are distinct processes

Defect testing is concerned with confirming the presence of errors

Debugging is concerned with locating and repairing these errors

Debugging involves formulating a hypothesis about program behaviour then testing these hypotheses to find the system error

Testing and debugging

Page 11: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 11

The debugging process

Locateerror

Designerror repair

Repairerror

Re-testprogram

Page 12: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 12

Unit testing• testing of individual components

Module testing• testing of collections of dependent components

Sub-system testing• testing collections of modules integrated into sub-systems

System testing• testing the complete system prior to delivery

Acceptance testing• testing by users to check that the system satisfies

requirements. Sometimes called alpha testing

Testing stages

Page 13: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 13

The testing process

Sub-systemtesting

Moduletesting

Unittesting

Systemtesting

Acceptancetesting

Componenttesting

Integration testing Usertesting

Page 14: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 14

Object-oriented system testing

Less closely coupled systems. Objects are not necessarily integrated into sub-systems

Cluster testing. Test a group of cooperating objects

Thread testing. Test a processing thread as it weaves from object to object. Discussed later in real-time system testing

Page 15: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 15

Describe major phases of the testing process Describe tracability of tests to requirements Estimate overall schedule and resource

allocation Describe relationship with other project plans Describe recording method for test results

Test planning and scheduling

Page 16: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 16

The test plan

The testing process Requirements traceability Tested items Testing schedule Test recording procedures Hardware and software requirements Constraints

Page 17: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 17

The V-model of development

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

ServiceAcceptance

testSystem

integration testSub-system

integration test

Page 18: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 18

Testing strategies

Tetsing strategies are ways of approaching the testing process

Different strategies may be applied at different stages of the testing process

Strategies covered• Top-down testing

• Bottom-up testing

• Thread testing

• Stress testing

• Back-to-back testing

Page 19: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 19

Incremental testing

T3

T2

T1

T4

T5

A

B

C

D

T2

T1

T3

T4

A

B

C

T1

T2

T3

A

B

Test sequence1

Test sequence2

Test sequence3

Page 20: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 20

Top-down testing

Level 2Level 2Level 2Level 2

Level 1 Level 1Testing

sequence

Level 2stubs

Level 3stubs

. . .

Page 21: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 21

Top-down testing

Start with the high-levels of a system and work your way downwards

Testing strategy which is used in conjunction with top-down development

Finds architectural errors May need system infrastructure before any

testing is possible May be difficult to develop program stubs

Page 22: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 22

Bottom-up testing

Level NLevel NLevel NLevel NLevel N

Level N–1 Level N–1Level N–1

Testingsequence

Testdrivers

Testdrivers

Page 23: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 23

Bottom-up testing

Necessary for critical infrastructure components Start with the lower levels of the system and

work upward Needs test drivers to be implemented Does not find major design problems until late in

the process Appropriate for object-oriented systems

Page 24: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 24

Thread testing

Suitable for real-time and object-oriented systems Based on testing an operation which involves a

sequence of processing steps which thread their way through the system

Start with single event threads then go on to multiple event threads

Complete thread testing is impossible because of the large number of event combinations

Page 25: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 25

Process interactions

P2

P1

P5

P4

I1 (P2)

O2 (P4)

O1(P5)

I2 (P1)

I1 (P1)

I3 (P1)

P3I1 (P3) O1 (P4)

Page 26: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 26

Thread testing

P2P3 P4 O1(P4)

I1(P3)

P2P1 P5 O1(P5)

I2(P1)

I1(P1)

I3(P1)

Page 27: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 27

Multiple-thread testing

P2P1 P5

P4

I1 (P2)

O2 (P4)

O1 (P5)I2 (P1)

I1 (P1)

I3 (P1)

Page 28: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 28

Exercises the system beyond its maximum design load. Stressing the system often causes defects to come to light

Stressing the system test faulure behaviour.. Systems should not fail catastrophically. Stress testing checks for unacceptable loss of service or data

Particularly relevant to distributed systems which can exhibit severe degradation as a network becomes overloaded

Stress testing

Page 29: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 29

Back-to-back testing

Present the same tests to different versions of the system and compare outputs. Differing outputs imply potential problems

Reduces the costs of examining test results. Automatic comparison of outputs.

Possible twhen a prototype is available or with regression testing of a new system version

Page 30: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 30

Back-to-back testingTest data

Programversion A

Programversion B

Resultscomparator

Difference report

Page 31: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 31

Key points

Verification and validation are not the same thing Testing is used to establish the rpesence of

defects and to show fitness for purpose Testing activities include unit testing, module

testing, sub-system testing, integration testing and acceptance testing

Object classes should be testing in O-O systems

Page 32: ©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22 Slide 32

Key points

Testing should be scheduled as part of the planning process. Adequate resources must be made available

Test plans should be drawn up to guide the testing process

Testing strategies include top-down testing, bottom-up testing, stress testing, thread testing and back-to-back testing