Software Testing, Analysis, and Quality Assurance


Informatics 115: Software Testing, Analysis, and Quality Assurance

Fall Quarter 2017

General Information

Instructor: Professor James A. Jones


Class Time: Tuesday, Thursday 6:30pm–7:50pm

Class Location: Parkview Classroom Building - PCB 1100

Course TAs:

  1. Tariq Ibrahim <>

  2. Karishma Naresh Khanna <>

  3. Soham Sunil Kulkarni <>

TA Office Hours:

  1. Tariq Ibrahim: Mondays 2–3pm, ICS 414

  2. Soham Sunil Kulkarni: Wednesdays 12pm–1pm, ICS Open Lab on the 3rd floor

  3. Karishma Naresh Khanna: Thursdays 11:30–12:30 pm, ICS Open Lab on the 3rd floor

Instructor Office Hours: After class, or by appointment.

Course Materials:

Course Exam: Thursday, Dec. 7. 6:30pm–7:50pm

Web Forum to ask questions and discussion:


Course Description:

Preparation for developing high-quality software through successful verification and validation techniques. Fundamental principles of software testing, implementing software testing practices, ensuring the thoroughness of testing to gain confidence in the correctness of the software.

Course Prerequisites:

(I&C SCI 45J or I&C SCI 45C or I&C SCI 65 or I&C SCI 23 or CSE 23 or I&C SCI 46 or CSE 46 or IN4MATX 45) and (IN4MATX 43 or I&C SCI 52). I&C SCI 45J with a grade of C or better. I&C SCI 45C with a grade of C or better. I&C SCI 65 with a grade of C or better. I&C SCI 23 with a grade of C or better. CSE 23 with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better. IN4MATX 45 with a grade of C or better. IN4MATX 43 with a grade of C or better. I&C SCI 52 with a grade of C or better.

Requirements and Expectations of Students:

This course requires a strong programming background and a good understanding of complex programs. Completion of ICS 31, ICS 32, and ICS 33 (or equivalent) should give a sufficient background in programming. There will be homeworks and projects that require programming. As such, I expect students to:

  1. Be familiar and comfortable with software programming. We will mostly focus on Java, but may include other languages — so a comfortability and eagerness to learn new programming languages is important.


  1. Testing Fundamentals

  2. Specifications

  3. Combinatorial Testing

  4. Structural Testing

  5. Fault-based Testing

  6. Regression Testing

  7. Testing Object-Oriented Programs

  8. Testing and Profiling

  9. Testing Process

  10. Debugging


Schedule (Tentative)

  1. Week 0 (Sep 28): Course Introduction. Survey link will be sent at 8pm, Thursday, Sept 28.

  2. Week 1 (Oct 3, 5): Tuesday: Testing fundamentals. Complete the survey by noon on Tuesday. Thursday: Testing fundamentals continued. Mistake/fault/error/failure. Exploratory testing. Homework 1 assigned.

  3. Week 2 (Oct 10, 12): Tuesday: Acceptance testing. JUnit. Thursday: Black-box/functional testing. Homework 1 due.

  4. Week 3 (Oct 17, 19): Tuesday: Combinatorial testing. Thursday: Finite functional models.

  5. Week 4 (Oct 24, 26): Tuesday: Finite structural models. Control-flow graphs. Parameterized Testing in JUnit. Homework 2 assigned. Thursday: Structural Testing. Instrumentation.

  6. Week 5 (Oct 31, Nov 2): Tuesday: Testing Principles. Homework 2 due. Thursday: Midterm exam review.

  7. Week 6 (Nov 7, 9): Tuesday, Nov. 7: Midterm Exam. Thursday: Coverage Tools in JUnit. Regression testing. Regression test selection. Regression test minimization and prioritization.

  8. Week 7 (Nov 14, 16): Tuesday: GUI Testing, Test input generation. Homework 3 assigned. Thursday: Midterm Return.

  9. Week 8 (Nov 21, 23): Tuesday: Scaffolding & Mocking. Homework 3 due. Thursday: No class for Thanksgiving.

  10. Week 9 (Nov 28, 30): Tuesday: Code Review & Static analyzers. Thursday: Debugging.

  11. Week 10 (Dec 5, 7): Tuesday: Course exam review. Thursday, December 7, 6:30pm–7:50pm: Course Exam.

  12. Finals week: Please note that there will be no “Final Exam,” which was left unassigned (“TBA”) by the registrar. Instead, we will have a Course Exam that is held on December 7.


  1. Class participation (5%)

  2. Homeworks (and any quizzes) (30%)

  3. Midterm exam (30%)

  4. Course Exam (35%)

Course Evaluations

The window for fall quarter online evaluations will be open near the end of the quarter. Once the dates for evaluations are known, this information will be posted here.


The UCI academic honesty policy applies. Consequences of cheating in this class: a letter in your UCI file, and the course grade is lowered, most likely to F. Material that is copied from any source needs to be quoted and the source must be cited. If you plagiarize, you run the severe risk of failing the class, in a most disgraceful manner. All work should be assumed to be individual work (not group work) unless stated otherwise on the assignment.


If you need an accommodation because of a disability, please contact the instructor and the Disability Services Center as soon as possible.