20
1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

1

Software Testing and Quality Assurance

Lecture 31 – Testing Systems

Page 2: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

2

Lecture Objectives Types of Testing Measuring Test Coverage Software Maintenance Activities

Page 3: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

3

Types of testing Stress testing Life-cycle testing Performance testing

Page 4: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

4

Types of testing: stress testing Stress testing is operating a system under conditions that

come close to exhausting the resources needed by the system:

Filling RAM with objects. Filling hard disk with records. Move the mouse back and forth. Natural growth of information that accumulates as the

system is operated. For OO systems:

Create large number of instances of classes

Page 5: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

5

Types of testing: steps in stress testing

Identify the variable resources that increase the amount of work the system has to do

If there are relationships among these resources, develop a matrix that lists combinations of resource levels to use

Create test cases that use each combination

Execute and evaluate the results

Page 6: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

6

Types of testing: life-cycle testing Two types of life cycles that do make sense

to test: Domain life cycles: these correspond to the

key processes in the domain (for accounting system run a series of test to cover a full fiscal year).

Computer application life cycles: it begins with the installation of the application and ends with its removal (test the installer and uninstaller programs).

Page 7: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

7

Types of testing: performance testing Perception: object-oriented systems are

inherently slow. Testing for performance is like measuring

the reliability of a piece of software. Establishing the context within which the

performance will be measured: Context: description of the environment in

which the measurement will be made.

Page 8: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

8

Types of testing: performance testing technique Define the context in which performance

measure applies: Describe the state of the application to be

tested. Describe the execution environment in

terms of the platform being used. Describe the other applications running at

the time of tests

Page 9: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

9

Types of testing: performance testing technique

Identify the extremes within the context. Define, as expected result, what will

constitute acceptable performance. Execute the tests and evaluate the

results.

Page 10: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

10

Types of testing: problems with real data in testing

Problems with real data in testing: Extensive past data available. Analysis of the data requires time.

Page 11: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

11

Types of testing: problems with real data in testing

It might be quicker to manufacture data that has specific properties than to use real data: Analyze the existing data to identify patterns. Construct test data that follow these patterns but

for which the expected results are more easily determined

Design test cases that use the test data in the context of the of a complete life cycle.

Execute and evaluate the results.

Page 12: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

12

Testing different types of systems

Reactive systems Embedded systems Multitiered systems Distributed systems

Page 13: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

13

Measuring test coverage Coverage: is the metrics that indicates level

of confidence we have in our testing. What is to be covered?

To measure coverage two categories can be used:

Inputs: how many of the possible inputs have been used in test cases.

Outputs: how many of the possible outputs that a system can produce have been produced during testing.

Page 14: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

14

Measuring test coverage As systems have become more

integrated into Life-critical and mission-critical systems, Expectations have increased to include

“does the system do any thing it is not suppose to do?”

Page 15: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

15

Measuring test coverage (cont...) When is coverage measured?

Coverage data is collected continuously during testing

When is coverage used? “at release time”, coverage is part of the

decision criteria for release.

Page 16: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

16

Software maintenance activities Corrective maintenance are activities

of handling problems resulting from faults.

Adaptive Maintenance involves adjusting the application to changes in the environment, or changes from other parts of the system.

Page 17: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

17

Software maintenance activities

Perfective maintenance involves making changes to improve some aspect of the system, even when the changes are not suggested by faults.

Preventive maintenance involves changing some aspect of the system to prevent failures.

Page 18: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

18

Software maintenance activities (cont...)

Corrective21%

Perfective50%

Adaptive25%

Preventive4%

Page 19: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

19

Key points

Types of testing: stress testing, life-cycle testing, and performance testing

Coverage: is the metrics that indicates level of confidence we have in our testing.

Page 20: 1 Software Testing and Quality Assurance Lecture 31 – Testing Systems

20

Announcement SWE Revised Program Discussion

Monday December 29, 2008 at 12:10-1:00 in 24/141