Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Testing Computer Software: Lecture 5 - Importance of Effective Software Testing, Study notes of Civil Engineering

A lecture from csis 370 course on testing computer software. It discusses the importance of testing software, common challenges in testing, and various testing strategies such as boundary testing, equivalence classes, and risk-based testing. The lecture also emphasizes the role of a good tester in getting bugs fixed.

Typology: Study notes

Pre 2010

Uploaded on 08/05/2009

koofers-user-nir-1
koofers-user-nir-1 🇺🇸

5

(1)

10 documents

1 / 2

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CSIS 370 – Lecture 5
Testing Computer Software: Chapter 1
Key Points:
- Don't waste time testing a program that doesn't even do simple things correctly
- Boundary tests are the most powerful
- Can't test every combination, so you need to pick carefully
- The reason the program is in testing is that it probably doesn't work
- About 1 in 3 attempts to fix a bug either doesn't fix it, or creates another problem!
- The more you know about computer programming, the more internal boundaries
you can anticipate and test for.
Page 9: Example of a non-obvious internal boundary condition – the values 127 and -128
based on the possibility that the data is stored in a single byte.
Common programmer/project manager response to some bug reports: "That's not a bug",
or "no one would do that", or "it will never happen". Why do you think they engage in
this behavior?
What does book suggest doing about this? Do you think it would be effective?
Find test cases that make the bug appear in situations that are so likely to occur that no
one would put up with it.
Measure of best tester: one who gets the most bugs fixed. This requires humility and
craftiness – don't want to antagonize the developers, but you do want to convince them
that the bugs need to be fixed.
Discuss Triangle Example.
Get students to develop test cases. What's a test case?
- list of input values, and the expected result. If you don’t know
what you expect, how can you know if the software is right or
wrong?
positive testing – test case that shows software responds as we expect
it to when we supply good data
negative testing – test case that shows that software behaves
reasonably when we give it bad data.
How many test cases do we have just for this simple program? Could
we test all possible combinations of the 3 input values?
[Book example: 39,601 combinations of numbers only!]
pf2

Partial preview of the text

Download Testing Computer Software: Lecture 5 - Importance of Effective Software Testing and more Study notes Civil Engineering in PDF only on Docsity!

CSIS 370 – Lecture 5

Testing Computer Software: Chapter 1 Key Points:

  • Don't waste time testing a program that doesn't even do simple things correctly
  • Boundary tests are the most powerful
  • Can't test every combination, so you need to pick carefully
  • The reason the program is in testing is that it probably doesn't work
  • About 1 in 3 attempts to fix a bug either doesn't fix it, or creates another problem!
  • The more you know about computer programming, the more internal boundaries you can anticipate and test for. Page 9: Example of a non-obvious internal boundary condition – the values 127 and - based on the possibility that the data is stored in a single byte. Common programmer/project manager response to some bug reports: "That's not a bug", or "no one would do that", or "it will never happen". Why do you think they engage in this behavior? What does book suggest doing about this? Do you think it would be effective? Find test cases that make the bug appear in situations that are so likely to occur that no one would put up with it. Measure of best tester: one who gets the most bugs fixed. This requires humility and craftiness – don't want to antagonize the developers, but you do want to convince them that the bugs need to be fixed. Discuss Triangle Example. Get students to develop test cases. What's a test case?
  • list of input values, and the expected result. If you don’t know what you expect, how can you know if the software is right or wrong? positive testing – test case that shows software responds as we expect it to when we supply good data negative testing – test case that shows that software behaves reasonably when we give it bad data. How many test cases do we have just for this simple program? Could we test all possible combinations of the 3 input values? [Book example: 39,601 combinations of numbers only!]

How could you possibly test a complex application? Can't test everything –

  • too many combinations What can we do to reduce number of test cases? How do we decide what to test? Equivalence classes
  • For example, if you test 5,5,5 what is likelihood that 7,7,7 will produce different results? Risk based testing
  • test the things that are the most critical/important/most likely to cause serious problems if there are bugs.
  • Test the parts of the program that are the most complex.
  • Focus effort on these things. Boundary testing:
  • what are some boundary conditions with triangles? o Lengths must be positive, so test a small number and 0 o sum of two shorter sides > longer side, so test a + b = c (and a + c = b, and b+c = a) Last bullet item shows that testers need to understand the problem domain. In business applications, this means that you have to understand what the business is.