Lectures 1 and 2

advertisement
Lectures 1 and 2
Course Overview and Introduction to V&V
Welcome to CEN 4072/6070, Software Testing and Verification! The focus this week is
to convey some basic course information (“Course Overview”) and to introduce some
basic V&V (Verification and Validation) techniques, concepts, and terminology. You
will also be introduced to some important principles concerning the psychology and
economics of program testing via a classic reading from Glenford Myers, The Art of
Software Testing. A second reading from Edward Kit, Software Testing in the Real
World: Improving the Process, will introduce some important ideas concerning testing
process maturity.
Course Overview
Context:
The course “syllabus” is presented in the form of a
lecture. Course objectives, prerequisites, required
readings, topics, grading, and exercises are covered.
Purpose:
To familiarize students with what to expect from this
course, and what will be expected of them.
Competency Objectives:
At the end of this lesson, you will be able to:
1. Determine if this course appears to be consistent
with your interests and background.
2. Describe, in general terms, the scope of the
course.
3. Describe how your performance in the course will
be evaluated.
Key Points:
1. Students taking this course should have already completed of an
upper division undergraduate or graduate-level software
engineering survey course (such as CEN 3031/5035), or have
comparable professional experience. (Off-campus EDGE students
currently employed as software professionals automatically meet
this requirement.). Students should also have programming
experience using a high-level language (C, C++, Java, etc.), and
have basic knowledge of algorithms, data structures, objectoriented programming principles, & discrete math.
2. Course grades will be based solely on two 90 minute exams.
3.
Exams assume a thorough understanding of the problem sets and their
solutions.
2
Introduction to V&V
Context:
A basic introduction to “Verification & Validation” (V&V)
is presented: the types of activities involved; their role
in software engineering. Evolving attitudes about
testing; testing approaches, levels, costs, and
limitations; process improvement.
Purpose:
This lecture sets the stage for the major topics of the
course: human-based testing (e.g., reviews and
inspections), formal correctness proofs, and machinebased testing. Some important principles and
terminology related to testing in general are also
covered.
Competency Objectives:
At the end of this lesson, you will be able to:
1. Describe the role, importance, and basic forms of
V&V.
2. Define “testing” from several different
perspectives.
3. Explain why testing cannot, in general, guarantee an error-free
program.
4. Describe a number of different testing approaches, levels, types,
and principles.
Key Points:
1. The V&V activities considered in this course involve three basic
approaches: human-based testing, formal correctness proofs, and
machine-based testing
2. Testers should approach their work with the intent of finding errors.
3. Black-box testing is based solely on the analysis of requirements;
white-box testing is based on the analysis of an element’s internal
logic (design, code, etc.).
4. Testing usually begins with functional (black-box) tests,
supplemented by structural (white-box) tests, working from the unit
level toward the system level with one or more integration steps.
5. Only exhaustive testing can guarantee program correctness.
Unfortunately, this generally impossible to achieve.
6. The costs of software errors can increase exponentially with time
between injection and discovery. Thus, early detection is critical.
3
7. Software engineers should be knowledgeable of all V&V techniques,
and should be able to employ and assess the effectiveness of those
techniques appropriate to their responsibilities.
Reading Assignment:
1. Myers, The Art of Software Testing, John Wiley & Sons, 1979,
pp. 4-16, "The Psychology and Economics of Program Testing."
2. Kit, Software Testing in the Real World: Improving the Process,
Addison-Wesley, 1995, pp. 3-13, "Part I, Software testing process
maturity."
Self-Check Quiz Questions
1. Regression testing involves executing tests that have already
been executed without revealing an error. Explain the purpose
of this.
2. What is the principal distinction between Alpha testing and Beta
testing?
3. Briefly describe the difference between Black-Box and WhiteBox program testing.
4. Glenford Myers ("The Psychology and Economics of Program
Testing") argues that the "...the most important single thing
that one can learn about testing" concerns: (Circle one only.)
a. an appropriate definition of the word "testing"
b. the distinction between white-box and black-box testing
c. the recognition that test cases must be written for invalid
and unexpected, as well as valid and expected, input
conditions
d. the observation that the probability of the existence of
more errors in a section of a program is proportional to the
number of errors already found in that section
e. the necessity that a definition of the expected output or
result be a part of every test case
5. What is “benchmarking”?
Download