35
CEN 4072 / CEN 6070 Software Testing & Verification Spring 2018 Syllabus available on-line at: www.cise.ufl.edu/class/cen6070/sp18.html

CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Embed Size (px)

Citation preview

Page 1: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

CEN 4072 / CEN 6070

Software Testing & Verification

Spring 2018

Syllabus available on-line at:

www.cise.ufl.edu/class/cen6070/sp18.html

Page 2: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Course Overview

Prepared by

Stephen M. Thebaut, Ph.D.

University of Florida

Software Testing and Verification

Lecture 1

Page 3: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Contact Info

• Instructor: Prof. Steve Thebaut, CSE 330

– Office Hours: M/W 3-4 PM or by appt.

– e-mail: smt AT cise DOT ufl DOT edu

• TA: Ms. Keke Zhai

– Office Hours: days/time TBD or by appt.

– e-mail: zhaikeke AT ufl DOT edu

Page 4: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Course Description

• Software Testing and Verification is a survey course on concepts, principles, and techniquesrelated to software testing and program verification for the development of dependable systems.

• Students will become acquainted with both the strengths and limitations of various functional and structural testing methods, as well as techniques for reasoning logically about the functional correctness of sequential programs.

(cont’d)

Page 5: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Course Description (cont’d)

• It focuses primarily on techniques/methods employed by software/test engineers who develop high dependability (e.g., safety-critical) systems using plan-driven processes, as opposed to non-safety-critical web services/business systems developed as rapidly as possible using agile processes.

• It is NOT a training or professional certification course, and it is NOT (CASE) tools-oriented.

(Looking for JUnit certification training? Click here.)

(cont’d)

Page 6: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Course Description (cont’d)

• Topics include: black-box and white-box test case design strategies, incremental integration testing techniques, inspections and reviews, axiomatic verification techniques, predicate transforms, and function theoretic-based verification.

• You will have the opportunity to explore the ideas and practice the techniques presented in class via group and/or individual exercises.

Page 7: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Prerequisites

1. Successful completion of an upper division (undergraduate) or graduate-level software engineering survey course, or comparable professional experience;

2. Familiarity with programming using a high-level language (C, C++, Java, etc.);

3. Basic knowledge of algorithms, data structures, and discrete math;

(cont’d)

Page 8: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Prerequisites (cont’d)

4. An interest in the V&V processes used to develop long-lifetime, high-dependability software systems (warning: many intro SE couses no longer attempt to foster such an interest); and

5. A desire for deeper insights into programming and program semantics – especially program iteration semantics (looping constructs).

(cont’d)

Page 9: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Prerequisites (cont’d)

A self-assessment “pre-test” on the course website may help you in assessing your preparedness for the course vis-à-vis coverage of a small subset of prerequisite knowledge.

Page 10: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Important notes:

• If you take this course and then later wish to take CEN 5035, Software Engineering,you may do so, but you will be required to complete other work/assignments (TBD) in lieu of the "Intro to Proofs of Correctness" and closely related material that is covered in CEN 5035.

• Students who have already taken CEN 4072 at UF may NOT take CEN 6070 for credit.

Page 11: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Other SE-related courses offered this

semester

• OBJECT ORIENTED PROGRAMMING

• TRANSLATORS

• MALWARE REVERSE ENGINEERING

• ADVANCED DATA STRUCTURES

• PROGRAMMING LANGUAGE PRINCIPLES

• DATABASE SYSTEMS IMPLEMENTATION

• AI FOR COMPUTER GAMES

Note that neither CEN 5035 nor CEN 6070 is expected to be offered this coming summer.

Page 12: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Class Meeting Times and Location

• M/W/F: 7th (1:55-2:45)

• Room: CSE 119

Page 13: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Web Site

• Syllabus

• Lecture Notes

• Lesson Plans

• Practice Exams

• Quiz Schedule

• Problem Sets

• Reading List

• Announcements

• Prerequisite Pre-Test

• Contact Information

www.cise.ufl.edu/class/cen6070/sp18.html

Page 14: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Required Reading Material

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.

(cont’d)

Page 15: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Required Reading Material (cont’d)

3. Gause & Weinberg, Exploring Requirements: Quality Before Design, Dorset House, 1989, pp. 80-91, Making Meetings Work for Everybody.

4. Fagan, Design and Code Inspections to Reduce Errors in Program Development, IBM Systems Journal, Vol. 15, No. 3, July 1976, pp. 182-211.

(cont’d)

Page 16: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Required Reading Material (cont’d)

5. Grady & Van Slack, Key Lessons in Achieving Widespread Inspection Use, IEEE Software, July 1994, pp. 46-57.

6. Sauer, et al., The Effectiveness of Software Development Technical Reviews: A Behaviorally Motivated Program of Research,IEEE Transactions on Software Engineering, Vol. 26, No. 1, January 2000.

(cont’d)

Page 17: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Required Reading Material (cont’d)

7. King, et al., Is Proof More Cost-Effective than Testing?, IEEE Transactions on Software Engineering, Vol. 26, No. 8, August 2000.

8. Dunlap & Basili, A Comparative Analysis of Functional Correctness, ACM Computing Surveys, Vol. 14, No. 2, June 1982.

9. Linger, Cleanroom Software Engineering for Zero-Defect Software, Proceedings, 15th Int. Conf. on Soft. Eng. (1993), IEEE Computer Society Press, pp. 2-13.

(cont’d)

Page 18: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Required Reading Material (cont’d)

• Readings are available for download at NO CHARGE via the UF Libraries Reserves site:

https://ares.uflib.ufl.edu/ares/

Before accessing course reserve materials from a NON-UF network, you must log into the UF VPN client. To download the UF VPN client,

visit:

https://net-services.ufl.edu/provided-services/vpn/clients/

Page 19: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Outline of Topics

• Introduction to V&V Techniques and Principles

• Requirements and Specifications

• Black-Box Test Case Design Strategies

– Partition testing

– Combinatorial approaches

– Other strategies

(cont’d)

Page 20: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Outline of Topics (cont’d)

• White-Box Test Case Design Strategies

– Logic coverage

– Dataflow coverage

– Path conditions & symbolic evaluation

– Other strategies

• Integration and Higher Level Testing

• Testing Object-Oriented Software

(cont’d)

Page 21: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Outline of Topics (cont’d)

• Reviews and Inspections

• Testing Tools (a brief, high-level overview)

--------------------------------------------------

• Formal Program Specification

• Axiomatic Verification

– Weak correctness

– Rules of inference: sequencing, selection statements, iteration

– Strong correctness

(cont’d)

Page 22: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Outline of Topics (cont’d)

• Predicate Transforms

– Computing predicate transforms

– Predicate transforms and loops

• Functional Verification

– Complete and sufficient correctness

– Compound programs and the Axiom of Replacement

(cont’d)

Page 23: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Outline of Topics (cont’d)

• Functional Verification (cont’d)

– Correctness conditions

– Iteration Recursion Lemma

– Subgoal Induction

– Revisiting loop invariants (the Invariant Status Theorem)

• Cleanroom Software Engineering

Lecture Notes (in both "student" and "instructor" formats)will be posted (on a just-in-time basis) on the course website.

Page 24: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Examinations and Grades

• Course grades will be based SOLELY on:

i. three or four equally weighted 40-minute in-class quizzes (50%), and

ii. a comprehensive two-hour final exam (50%).

• Histograms of numeric scores will be provided with Solution Notes for quizzes and the exam.

• Course letter grades will be determined at the end of the semester based on separate “curves” for CEN 4072 and CEN 6070 students.

Page 25: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Exam/Quiz Schedule

• Final Exam: Monday, April 30, 7:30-9:30 AM

• Quizzes will be held following the posting of Solution Notes for Problem Sets 1+2, 3+4, 5+6, and (time permitting) 7. Specific dates will be announced in class and posted on the course website.

Page 26: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Make-Up Exam/Quiz Policy

• You are expected to be present at all scheduled quizzes and the final exam. Please do NOT plan conflicting elective activities (family gatherings, job interviews, visa renewal trips, etc.).

– If missing the FINAL EXAM is unavoidable (e.g., due to sickness, accident, or other reasons beyond your control), contact the instructor as far in advance as possible.

– The make-up exam may be administered orally. If it is not possible to administer the exam before the end of the term, a course grade of "I" (incomplete) will be assigned.

(cont’d)

Page 27: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Make-Up Exam/Quiz Policy (cont’d)

– Except in unusual circumstances (e.g., when multiple quizzes are missed due to an extended illness), THERE WILL BE NO MAKE-UP QUIZZES.

– However, each student’s lowest quiz score will be dropped before determining his/her average quiz score.

Page 28: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Problem Sets

• There are 7 non-graded Problem Sets covering the areas:

– Black-box Testing

– Logic Coverage

– Dataflow Coverage

– Path conditions and Symbolic Evaluation

– Axiomatic Verification

– Predicate Transforms

– Functional Verification

(cont’d)

Page 29: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Problem Sets (cont'd)

• The Sets are important learning tools, and introduce significant course content that is not included in the lecture notes.

• Some involve problems that are non-trivial and/or require a creative (“clinical”) application of the techniques presented in class.

• Problem Set introductions, discussions, and solution hints will be provided in class as appropriate.

(cont’d)

Page 30: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Problem Sets (cont'd)

• You are strongly encouraged to attempt all the problems of each Set – either individually or in small groups – PRIOR TO REVIEWING POSTED SOLUTION NOTES, and to meet with the TA and/or instructor to discuss problem solving strategies as needed.

• Your work will not be submitted for grading, but the in-class quizzes are intended, in part, to assess your understanding of the problems and their suggested solutions.

Page 31: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Class Attendance and Etiquette

• Please attend class when your circumstances allow you to be “fully present,” and participate in class discussions related to assigned readings, posted lecture notes, problem sets, etc.

• However, I ask that you NOT read newspapers, communicate with others via messaging or e-mail, access social media, etc.

• Finally, please avoid arriving late or leaving early, as this can be a significant distraction for others.

Page 32: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Academic Integrity

• On all quizzes and the final exam in this course, you will be asked to sign the following statement:

On my honor, I have neither given nor receivedunauthorized aid on this test and I pledge not to

divulge information regarding its contents tothose who have not yet taken it.

• Also, please note that, for security reasons, graded quizzes/exams are routinely copied before being returned to students.

Page 33: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Other Info

For info regarding:

– Accommodation for Students with Disabilities,

– UF Counseling Services,

– UF Software Use Policies, and

– Instructor background,

please see the course syllabus.

Page 34: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Questions?

Page 35: CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 1

Course Overview

Prepared by

Stephen M. Thebaut, Ph.D.

University of Florida

Software Testing and Verification

Lecture 1