Software Testing, Analysis, and Quality Assurance

 

Informatics 115: Software Testing, Analysis, and Quality Assurance

Fall Quarter 2015

General Information

Instructor: Professor James A. Jones

Email: jajones@uci.edu

Class Time: Monday, Wednesday 3:30pm–4:50pm

Class Location: ICS 174

Course TAs: Sunakshi Gupta (UCInetID: sunaksg) and Maryam Khademi (UCInetID: mkhademi)

TA Office Hours:

Sunakshi: Thursdays, 2–3pm at DBH 5082

Maryam: Wednesdays, 12–1pm at DBH 4209

Instructor Office Hours: After class, or by appointment. After class on Wednesday is a bit more limited because professor has another class to teach almost immediately after. But, Mondays allow for more time.

EEE Dropbox: https://eee.uci.edu/toolbox/dropbox/index.php?op=openfolder&folder=422308

Final Exam: Monday, Dec. 7. 4:00–6:00pm

Description

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.

Topics

  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

Homeworks

  1. Homework 1 (assigned Oct. 7; due Oct. 14): See assignment in EEE INF115-CourseFiles dropbox.

  2. Homework 2 (assigned Oct. 21; due Oct. 27): See assignment in EEE INF115-CourseFiles dropbox

  3. Homework 3 (assigned Nov. 18; due Nov. 25): See assignment in EEE INF115-CourseFiles dropbox

Schedule

  1. Week 1 (Sep 28, 30): Course Introduction. Testing fundamentals.

  2. Week 2 (Oct 5, 7): Testing fundamentals continued. Mistake/fault/error/failure. Exploratory testing. Acceptance testing. Behavior driven development. Reading assignment: read Exploratory Testing Explained before class on Wednesday. Homework 1 assigned.

  3. Week 3 (Oct 12, 14): JUnit. Black-box/functional testing. Homework 1 is due Wednesday.

  4. Week 4 (Oct 19, 21): Combinatorial testing. Finite functional models. Homework 2 assigned Wednesday.

  5. Week 5 (Oct 26, 28): Finite behavior models. Structural Finite Models. Control-flow graphs. Instrumentation. Homework 2 is due Tuesday night.

  6. Week 6 (Nov 2, 4): Midterm exam review on Monday Nov. 2. Midterm Exam on Wednesday Nov. 4.

  7. Week 7 (Nov 9, 11): Structural testing. No class Wednesday: School holiday.

  8. Week 8 (Nov 16, 18): Monday: BDD and Mocking (Guest Lecturer: Vijay Krishna Palepu); Wednesday: Midterm Return. Homework 3 assigned.

  9. Week 9 (Nov 23, 25): Regression testing. Regression test selection. Regression test minimization and prioritization. Continuous Testing and Integration. Homework 3 due.

  10. Week 10 (Nov 30, Dec 2): Test input generation. GUI testing. Debugging. Final exam review on Wednesday.

  11. Week 11: Final exam on Monday, Dec. 7 from 4:00pm to 6:00pm.

Course Evaluations

The window for spring 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.


Cheating

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.


Disabilities

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

Policies