CEN 4072 / CEN 6070 Software Testing & Verification … · Course Overview Prepared by Stephen...

Preview:

Citation preview

CEN 4072 / CEN 6070

Software Testing & Verification

Spring 2018

Syllabus available on-line at:

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

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

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)

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)

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.

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)

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)

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.

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.

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.

Class Meeting Times and Location

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

• Room: CSE 119

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

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)

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)

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)

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)

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/

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)

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)

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)

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)

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.

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.

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.

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)

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.

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)

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)

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.

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.

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.

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.

Questions?

Course Overview

Prepared by

Stephen M. Thebaut, Ph.D.

University of Florida

Software Testing and Verification

Lecture 1

Recommended