In4matx 115: Software Testing, Analysis, and Quality Assurance

Overview

Software testing is more than just error detection.It plays an important role in Software development lifecycle by improving the quality, reliability & performance of the system by checking what the software is supposed to do and also checking that the Software is not doing what its not supposed to do. After the completion of the course, students will be able to

General Information

Description

Topics

Tentative Schedule

This schedule is subject to change

Date Topic Reading Assignments Posted assignments Due assignments
Week 0
Friday, September 28th, 2018 Introduction    
Week 1
Monday, October 1st, 2018 Testing fundamentals   Assignment 0
Wednesday, October 3rd,2018 Introduction to Software Testing    
Friday, October 5th, 2018 Kinds of Testing    
Week 2
Monday, October 8th, 2018 Kinds of Testing   Assignment 1 Assignment 0
Wednesday, October 10th, 2018 TDD      
Friday,October 12th, 2018 TDD vs. BDD      
Week 3
Monday, October 15th, 2018 Combinatorial testing     Assignment 1
Wednesday, October 17th, 2018 TBA      
Friday,October 19th, 2018 TBA      
Week 4
Monday, October 22nd, 2018 TBA   Assignment 2  
Wednesday, October 24th, 2018 TBA      
Friday, October 26th, 2018 TBA      
Week 5
Monday, October 29th, 2018 TBA     Assignment 2
Wednesday, October 31st, 2018 Midterm exam review      
Friday, November 2nd, 2018 Midterm      
Week 6
Monday, November 5th, 2018 TBA   Assignment 3  
Wednesday, November 7th, 2018 TBA      
Friday, November 9th, 2018 TBA      
Week 7
Monday, November 12th, 2018 No class      
Wednesday, November 14th, 2018 TBA   Assignment 4 Assignment 3
Friday, November 16th, 2018 TBA      
Week 8
Monday, November 19th, 2018 TBA   Final project  
Wednesday, November 21st, 2018 TBA     Assignment 4
Friday, November 23rd, 2018 No class for Thanksgiving      
Week 9
Monday, November 26th, 2018 TBA      
Wednesday, November 28th, 2018 TBA      
Friday, November 30th, 2018 TBA      
Week 10
Monday, December 3rd, 2018 TBA      
Wednesday, December 5th, 2018 TBA      
Friday, December 7th, 2018 TBA     Project Due

Policies

Grading

Grading weights: 10% for each of the 4 assignments (Total 40%), 25% Midterm exam, 30% Final Project, 5% Any Quiz and Class participation (Assignment 0 will count towards this category).


* If you have a problem with the grade, you must contact the TA through EMAIL within ONE WEEK of receiving your grade.

Assignments - 40%
* There are 4 total assignments to be completed over the course of this class.
* Assignments include a mixture of written documents and code submissions.
* Assignments are all submitted via CANVAS.
* If you have a problem with an assignment grade, you must contact the instructor through EMAIL within ONE WEEK of receiving your grade.
* Be forewarned that every single assignment will require a lot of work. Do not wait until the night before to start the homework; you will be dismayed. Start on each homework the week before it is due, and spread the work throughout the week.

Midterm Exam - 25%
* This will be in class.
* If you have a problem with the grade, you must contact the TA through EMAIL within ONE WEEK of receiving your grade.

Final Project - 30%
* There is a final project designed to check for a cumulative understanding, which includes some of the work for assignments.
* Final project include a mixture of written report and code submission.
* For this project, you will work alone.
* Like assignments, all submission is via CANVAS.
* Like assignments be forewarned that the project will require a lot of work. Do not wait until the last moment to start; you will be dismayed. Start as early as possible.

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.

Students with Disabilities

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

Additional Resources

Few additional resources
1. Maintenance and Source Control
http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/
http://www.gnu.org/software/make/manual/make.html
2. Builds & Static Analysis
http://www.thegeekstuff.com/2011/04/svn-command-examples/
http://www.spinroot.com/uno/
3. Introduction to Software Testing
http://cs.gmu.edu/~offutt/softwaretest/powerpoint/
4. Coverage Metrics
http://gcc.gnu.org/onlinedocs/gcc/Gcov.html
5. Lessons Learned in Software Testing: The Testing Role
http://www.associationforsoftwaretesting.org/
6. How to Write a Simple Random Tester
http://blog.regehr.org/archives/896
http://blog.regehr.org/archives/856
http://blog.regehr.org/archives/872
http://web.cecs.pdx.edu/~omse535/hamlet94random.pdf
https://www.udacity.com/course/cs258
7. Random Testing: Not Just For Toys
http://www.st.cs.uni-saarland.de/dd/
http://www.squarefree.com/2007/08/02/introducing-jsfunfuzz/
http://blog.chromium.org/2012/04/fuzzing-for-security.html
http://embed.cs.utah.edu/csmith/
http://embed.cs.utah.edu/creduce/
8. Introduction to Debugging
http://www.whyprogramsfail.com/slides.php
9. Quick Intro to Debuggers
http://www.cs.cmu.edu/~gilpin/tutorial/

Most of this course was adapted from teaching material designed by Dr. James A. Jones.

Last Updated: September 21, 2018