Top Banner
Software Testing Part I Thinking in Software Testing Saroj Sangphongamphai, August 2015 [email protected]
39

Thinking in software testing

Apr 15, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Thinking in software testing

Software Testing Part IThinking in Software Testing

Saroj Sangphongamphai, August [email protected]

Page 2: Thinking in software testing

Sincerely grateful to all teachers, professors, books,

websites, and others.

Page 3: Thinking in software testing

Think Big, Set the High Goal

Page 4: Thinking in software testing
Page 5: Thinking in software testing
Page 6: Thinking in software testing
Page 7: Thinking in software testing
Page 8: Thinking in software testing

Software development life cycle Analysis and design Planing Implementation Testing Deployment

Page 9: Thinking in software testing

What is software testing?1.Testing is the process of demonstrating that errors are not present.

2.The purpose of testing is to show that a program performs its intended functions correctly.

3.Testing is the process of establishing confidence that a program does what it is supposed to do.

Page 10: Thinking in software testing

What is software testing?

Testing is the process of executing a program with the intent of finding

errors.

Page 11: Thinking in software testing

Terms for software failuresDefect

FaultProblem

ErrorIncident

Anomaly

VarianceFailureInconsistencyFeatureBugEtc.

Page 12: Thinking in software testing

Software bug: a formal definition(1 of 5)

The software does not do something that the product specification says it should

do.

Page 13: Thinking in software testing

Software bug: a formal definition(2 of 5)

The software does something that the product specification says it should not

do.

Page 14: Thinking in software testing

Software bug: a formal definition(3 of 5)

The software does something that the product specification does not mention.

Page 15: Thinking in software testing

Software bug: a formal definition(4 of 5)

The software does not do something that the product specification does not

mention but should.

Page 16: Thinking in software testing

Software bug: a formal definition(5 of 5)

The software is difficult to understand, hard to use, slow, or in the software

tester’s eyes will be viewed by the end user as just plain not right.

Page 17: Thinking in software testing

Software bug: a formal definition1.The software does not do something that the product specification says

it should do.2.The software does something that the product specification says it

should not do.3.The software does something that the product specification does not

mention.4.The software does not do something that the product specification does

not mention but should.5.The software is difficult to understand, hard to use, slow, or in the

software tester’s eyes will be viewed by the end user as just plain not right.

Page 18: Thinking in software testing

Insights from a Venn Diagram

Page 19: Thinking in software testing

Insights from a Venn Diagram

Page 20: Thinking in software testing

Why do bug occurs?

Page 21: Thinking in software testing

The cost of bugs

Page 22: Thinking in software testing

To find bugs To find them as early as possible And to make sure they get fixed

The goal of a software tester

Page 23: Thinking in software testing

The challenge of software testing

Exhaustive testing is impractical.

Page 24: Thinking in software testing

Exhaustive testing is impracticalA simple function adds two 32 bit numbers and returns a result.

Assumption: we can execute 1,000 test cases per second

How long will it take to exhaustively test this function?

(Signed range 32 bits integer is -2,147,483,648 to 2,147,483,647 and unsigned: 0 to 4,294,967,295)

Page 25: Thinking in software testing

Exhaustive testing is impracticalA simple function adds two 32 bit numbers and returns a result.

Assumption: we can execute 1,000 test cases per second

How long will it take to exhaustively test this function?

Answer: 585 million years2 (32+32) /1000/60/60/24/365 = 584,942,417 years.

(Signed range 32 bits integer is -2,147,483,648 to 2,147,483,647 and unsigned: 0 to 4,294,967,295)

Page 26: Thinking in software testing

Optimal amount of testing

Page 27: Thinking in software testing

The psychology of software testing

A successful test case is one that detects an undiscovered error.

Page 28: Thinking in software testing

The psychology of software testing

Page 29: Thinking in software testing

The psychology of software testing

Testing can only show the presence of errors, not their absence.

Page 30: Thinking in software testing

The psychology of software testing

A necessary part of a test case is a definition of the expected output or

result.

Page 31: Thinking in software testing

The difference between testing and debugging

Testing = Find Bug

Debugging = Remove Bug

Page 32: Thinking in software testing

Quality is free

Page 33: Thinking in software testing

Early testing, more prevention than detection

Page 34: Thinking in software testing

Quality is not equal to test

If it is not built right in the first place, then it is never going to be right.

Page 35: Thinking in software testing

Quality is not equal to test

Quality is achieved by putting development and testing into a blender and mixing them until one is indistinguishable from the other.

Page 36: Thinking in software testing

Primary metric

Cycle time

Page 37: Thinking in software testing

Reference

Page 38: Thinking in software testing

Question & Answer

Page 39: Thinking in software testing

Next

Software Testing Part IITesting Techniques