CSE 990 Fall 2009
Software Quality Methods

Home | Course Syllabus | Class News and Announcements

Poor software quality continues to be an issue. In 2002 the National Institutes of Standards reported that up to $59 billion is being lost in the US economy each year due the lack of a sufficient quality infrastructure. In this course we examine one aspect of ensuring software quality -- software testing. We will learn about the fundamentals of software testing and study current research from topics such as event driven system testing, GUI testing, combinatorial testing, configuration-aware testing and database testing and object oriented testing. In addition we may study special topics as time allows such as testing for security specific faults, test generation and testing of end-user software. The course is a topics-based course. We will read several papers on each topic chosen during the semester. Topics selected will customized based on current research trends and the mix of the students in this course.

The course will have a substantial independent project and will require strong class participation. Many of the lectures will not be structured. You are expected to read the assigned material and participate in discussions.


This is a seminar course. We will read papers from the literature on specialized topics in software testing. There will also be several homework assignments.

Each student will select a project during the course of the semester. They will be expected to become familiar with a particular body of research beyond the classroom lectures. Students will submit a written report, and give an oral presentation of their findings. A list of suggested projects for this course will be available after the first 4 weeks of classes. Students are encouraged to work on projects related to their current research areas.

To succeed in this course you should have taken an algorithms course and have some prior knowledge of software engineering.

This document is available at http://www.cse.unl.edu/~myra/classes/cse990SQM_09/syllabus.html

Course Textbook: There is no official text for this course. Research papers from conferences and journals will be read during this course. The articles will be available for download via our library or through blackboard.

Topics to be Covered:

(This syllabus will be updated and expanded as the semester progresses. You should use your browser reload button each time to make sure you have the most current version). A detailed schedule of lectures and handouts can be found below.

Part I: Software Testing Overview

The grading for the class will be as follows:

 

Detailed Class Schedule:

Class Day/Date Topic and Lecture Notes Readings Assignments
1 Monday 8/24 Introduction to Course. Lecture Notes Reading for Monday: A brief essay on Software Testing, Technical Report Bertolino and Marchetti or Local copy (1) Return Student Questionnaire to me by email, before Friday (8/28).

(2) Due Friday September 4th.
    Write short summaries of each of the following papers. Include a discussion of the main points you have learned through the combination of these papers. What do you see as the most important challenges in software testing? These may be challenges that are common to both papers or are new challenges arising since the ICSE 2000 paper. We will discuss this more in class next week.
  • Testing: A Roadmap by Mary Jean Harrold, FOSE 2000. Local Copy
  • Software Testing Research: Achievements, Challenges, Dreams by Antonia Bertolino, FOSE 2007. Local copy.
  Wed 9/26 No Class If you did not come to the first day of class and/or need to contact me please send email and I will answer as soon as possible. Please use CSE990 in the subject if this is important.  
  Fri 8/28 No Class   Questionnaires Due
2 Mon 8/31 Overview of Software Testing
(See Wednesday's Lecture notes)
Beizer Book on Reserve  
3 Wed 9/1 Overview Cont. Lecture Notes   More detailed specifications are in our lecture notes for the paper summaries due on Friday
4 Fri 9/4 Future of Software Testing Lecture Notes Survey paper on adequacy criteria for your reference (warning - this paper is 62 pages long if you decide to print) Read Category Partition Method. Summary with questions due on Wednesday in class. Details are listed in our class notes from today.
Read Selecting Software Test Data Using Data Flow Information and Applicable Family of DF Testing Criteria for Friday (Sept. 11) and Monday. No summaries due.
Mon 9/7 Labor Day - no class    
5 Wed 9/9 Test Specification Language    
6 Fri 9/11 TSL Lecture Notes    
7 Mon 9/14 TSL Cont. and Projects/Assingment Preview of Notes on contents/format of proposal. Potential Projects
Assignment 1 handed out. Due Sept 25th
8 Wed 9/16 Dataflow Criteria   Reading for Friday/Monday:
The AETG System
Combinatorial Design Approach
Applying Design of Experiments to Software Testing
Write a paper summary for Friday on the second paper, Combinatorial Design Approach. Answer the question posed in class notes.
9 Fri 9/18 Dataflow Criteria cont. Lecture notes    
10 Monday 9/21 Combinatorial Testing I: Lecture Notes
Note: notes on using tool for assignment one are included in these notes
   
11 Wednesday 9/23 Combinatorial Testing    
12 Friday 9/25 Combinatorial Testing   Reading for Monday-Friday: (no reviews)
Regression Testing Techniques
Test Case Prioritization
Configuration Prioritization
13 Monday 9/28 Regression Testing    
14 Wednesday 9/30 Regression Testing    
15 Friday 10/2 Regression Testing    
16 Monday 10/5 Configuration-Aware Regression Testing   Reading for Wed/Friday: Problems for GUI testing
Overview of GUI testing
17 Wednesday 10/7 GUI Testing    
18 Friday 10/9 GUI Testing    
19 Monday 10/12 GUI Testing   Reading: Agenda
Adequacy
20 Wednesday 10/14 Database Testing    
21 Friday 10/16   Project Proposals Due!  
Monday 10/19 Fall Break    
22 Wednesday 10/21 Guest Lecture: G. Rothermel    
23 Friday 10/23 Discussion of Proposals   Reading for the Week of Nov 2nd:
Wed Nov 4th: Concurrent Testing
Fri Nov 6th: PLUSS approach
  Monday 10/25 No class (work on projects)    
  Wednesday 10/27 No class (work on projects)    
  Friday 10/29 No class (work on projects)    
24 Monday 11/02 Database Testing Cont.    
25 Wednesday 11/04 Student Presentation (E.S.)
Slides
Read paper on concurrent testing for this class  
26 Friday 11/06 Student Presentation (I.C.)
slides
Read paper on PLUSS for this class  
27 Monday 11/09 Student Presentation (Z.L.)
slides
  Read paper on cooperative answering
28 Wednesday 11/11 Student Presentation (W.X.)
slides
  Read paper on GUI coverage criteria
29 Friday 11/13 Student Presentation (A.H.)   Read paper Dytan
30 Monday 11/16 Student Presentation (S.K.)
slides
  Read paper spreadsheet testing
31 Wednesday 11/18 Student Presentation (T.Y.)
slides
  Read paper incremental CAs
32 Friday 11/20 Student Presentation (D.L.)
slides
  Read paper sensor network testing
33 Monday 11/23 Discussion of Final Projects slides    
  Wednesday 11/25 Thanksgiving Break    
  Friday 11/27 Thanksgiving Break    
34 Monday 11/30 Mutation Testing in Experimentation lecture notes   Reading for class Mutation Testing Paper
35 Wednesday 12/2 Mutation Testing Cont. and Automated Test Generation   Reading for class sbst.pdf
36 Friday 12/4 Automated Test Generation Using Search    
37 Monday 12/7 Project Presentations by: S.K., D.L. and W.X.    
38 Wednesday December 9th
Snowday. Presentations moved to 11:30 December 11th. Room TBD
Project Presentations by: E.S., I.C. and T.Y.    
39 Fri December 11th Project Presentations by: A.H and Z.L.   Final Projects (formatting) Due at Midnight