1 / 35

Software Testing and Verification Course - Concepts, Principles, and Techniques

This course provides a survey of concepts, principles, and techniques related to software testing and verification for the development of dependable systems. Students will learn various black-box and white-box test case design methods, integration test case design strategies, and techniques for reasoning about program correctness.

joycewhite
Download Presentation

Software Testing and Verification Course - Concepts, Principles, and Techniques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Course Overview Software Testing and Verification Lecture 1 Prepared by Stephen M. Thebaut, Ph.D. University of Florida

  3. Contact Info • Instructor: Steve Thebaut, CSE 330 • Office Hours: M/W 3-4 PM or by appt. • e-mail: smt AT cise DOT ufl DOT edu • TA: Bo Ma, CSE 335 • Office Hours: Tu/Th 2-3 PM or by appt. • e-mail: bbo AT cise DOT ufl DOT edu

  4. Course Description • Software Testing and Verification is a survey course on concepts, principles, and techniques related to software testing and program verification for the development of dependable systems. (It is NOT a training or CASE tools-oriented course.) • It focuses primarily on issues relevant to software engineers (especially dependable systems software engineers) as opposed to system-level testers, QA personnel, web services/agile business software developers, etc.

  5. Course Description (cont’d) • You will: • Learn to apply various black-box and white-box test case design methods, • Become acquainted with various integration test case design strategies, and • Become acquainted with techniques for reasoning about the functional correctness of sequential programs.

  6. 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.

  7. Prerequisites • Successful completion of an upper division (undergraduate) or graduate-level software engineering survey course, or comparable professional experience (Students currently or recently employed as software engineering professionals automatically meet this requirement.)† • Familiarity with programming using a high-level language (C, C++, Java, etc.) †If you do not meet this prerequisite, please plan to do so before enrolling in CEN 4072/6070.

  8. Prerequisites (cont’d) • Basic knowledge of algorithms, data structures, object-oriented programming principles, and discrete math • An interest in the V&V processes used to develop long-life-time, high-dependability software systems, and/or a desire for deeper insights into programming and program semantics (Warning: some intro SE courses no longer tend to foster such interests…)

  9. 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.

  10. 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.

  11. Other SE-related courses offered this semester • OBJECT ORIENTED PROGRAMMING • Human-Computer Interaction (HCI) • MALWARE REVERSE ENGINEERING • ADVANCED DATA STRUCTURES • PROGRAMMING LANGUAGE PRINCIPLES • DATABASE MANAGEMENT SYSTEMS • MOBILE COMPUTING Note that neither CEN 5035 nor CEN 6070 is expected to be offered this coming summer.

  12. Class Meeting Times and Location • M/W/F: 7th (1:55-2:45) • Room: CSE 222

  13. Syllabus Lecture Notes Lesson Plans Practice Exams Exam Schedule Problem Sets Reading List Announcements Prerequisite Pre-Test Contact Information Web Site www.cise.ufl.edu/class/cen6070/sp17.html

  14. Required Reading Material • Myers, The Art of Software Testing, John Wiley & Sons, 1979, pp. 4-16, The Psychology and Economics of Program Testing. • Kit, Software Testing in the Real World: Improving the Process, Addison-Wesley, 1995, pp. 3-13, Part I, Software testing process maturity. (cont’d)

  15. Required Reading Material (cont’d) • Gause & Weinberg, Exploring Requirements: Quality Before Design, Dorset House, 1989, pp. 80-91, Making Meetings Work for Everybody. • 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)

  16. Required Reading Material (cont’d) • Grady & Van Slack, Key Lessons in Achieving Widespread Inspection Use, IEEE Software, July 1994, pp. 46-57. • 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)

  17. Required Reading Material (cont’d) • King, et al., Is Proof More Cost-Effective than Testing?, IEEE Transactions on Software Engineering, Vol. 26, No. 8, August 2000. • Dunlap & Basili, A Comparative Analysis of Functional Correctness, ACM Computing Surveys, Vol. 14, No. 2, June 1982. • Linger, Cleanroom Software Engineering for Zero-Defect Software, Proceedings, 15th Int. Conf. on Soft. Eng. (1993), IEEE Computer Society Press, pp. 2-13.

  18. Required Reading Material (cont’d) • Readings are available for download at NO CHARGE via the Course Reserves tab at: http://www.uflib.ufl.edu/ • 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/

  19. 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)

  20. 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)

  21. 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 Exam 1 (cont’d)

  22. 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)

  23. 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 PPT Lecture Notes (in both "student" and "instructor" formats) will be posted (on a just-in-time basis) on the course website.

  24. Examinations and Grades • Course grades will be based SOLELY on: • the four highest scores of five equally weighted 25-minute in-class quizzes (50%), and • two equally weighted 50-minute in-class exams (50%). • Histograms of numeric scores will be provided with Solution Notes for both exams. • Course letter grades will be determined at the end of the semester based on separate “curves” for CEN 4072 and CEN 6070 students.

  25. Exam/Quiz Schedule • Exam 1:Wednesday, March 1 (tentative) • covers topics through “Testing Tools” + associated readings. • Exam 2:Wednesday, April 19 • covers remaining topics + associated readings. • Quizzes will be held following the posting of Solution Notes for Problem Sets 1+2, 3+4, 5, 6, and 7. Specific dates will be announced in class and posted on the course website. Note: there is no (comprehensive) “final exam” for this course.

  26. Make-Up Exam/Quiz Policy • You are expected to be present at all scheduled exams/quizzes. Please do NOT plan conflicting elective activities (family gatherings, job interviews, visa renewal trips, etc.). • If missing an exam is unavoidable (e.g., due to sickness, accident, or other reasons beyond your control), contact the instructor as far in advance as possible. • Make-up exams for excused absences will normally be administered orally. (cont’d)

  27. 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, only your four highest scores will be considered when determining an overall quiz score. (cont’d)

  28. Problem Sets • There are 7 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)

  29. Problem Sets (cont'd) • A few problems may be non-trivial and/or require the creative application of techniques presented in class. • Introductions, discussions, and solution hints will be provided in class as appropriate. • You are strongly encouraged to work on the Problem SetsPRIOR TO REVIEWING POSTED SOLUTION NOTES, and to meet with the TA and/or instructor to discuss problem solving strategies as needed. (cont’d)

  30. Problem Sets (cont'd) • Problem Sets are an important, independent learning tool, introducing some ideas that may not be discussed in lectures; therefore, while I suggest that you not think of them as being “optional”, you are not, in fact, required to submit your work and they will not be graded. • However, the in-class quizzes are intended, in part, to assess your familiarity with, and understandingof, both the problems and the suggested solution strategies reflected in the Solution Notes.

  31. Class Attendance and Etiquette • I hope you will choose to attend class whenever your circumstances allow you to be "fully present“ (in the Zen sense)! But please do NOT come to class for the purpose of reading newspapers, communicating with others via messaging or e-mail, checking Facebook, etc. • If you bring a laptop with you, please limit its use to class-related activities only. And please turn your cell phone off. • Finally, please avoid coming to class late/leaving early, as this can be a significant distraction for others (including me)!

  32. Academic Integrity • You will be asked to sign the following state-ment on exams and quizzes in this course: On my honor, I have neither given nor received unauthorized aid on this test and I pledge not to divulge information regarding its contents to those who have not yet taken it.

  33. 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.

  34. Questions?

  35. Course Overview Software Testing and Verification Lecture 1 Prepared by Stephen M. Thebaut, Ph.D. University of Florida

More Related