INFT 824: Analysis of Software for Testing
INFT 821 -- Special Topics in Software Engineering
Course Syllabus -- Fall 1999
Jeff Offutt
Office: S&T II 355, 993-1654, fax: 993-1638
Email: offutt@gmu.edu
URL:
http://www.ise.gmu.edu/~offutt
Class Hours: Tue 4:30 -- 0710, Robinson B118
Office Hours: Anytime electronically, Tue 2:00 -- 4:00, or by appointment
- Learning:
-
What you discover on your own is always more
exciting than what someone else discovers for you -- it's like
the diference between romantic love and an arranged marriage.
- - Terrence Rafferty
NOTE:
INFT 821 can be taken several times, providing the content is different
each time.
This course has been approved as its own course, INFT 824,
but was left out of this year's catalog because of a paperwork mistake.
- PREREQS:
-
A compiler class (e.g., CS 540) or
a testing class (e.g., SWE 637) or
Permission of the Instructor.
- MATERIALS:
-
A collection of papers
available at the university copy shop
(in the Johnson Center).
- OBJECTIVES:
-
Learn different methods for analyzing software,
with several applications in software engineering, particularly testing.
We will study different analysis techniques,
learn how they work by studying specific algorithms and tools,
and discuss applications of the techniques.
Our goal will be to
explore the current research issues in this cutting edge area,
to learn how to build software analysis tools,
and to understand how these techniques can be applied to
software development activities.
We will primarily focus on applications for testing software,
including automatic test data generation,
object-oriented testing,
and testing client-server applications.
We will also consider using analysis techniques
for other software related activities such as
maintenance,
reuse,
object-oriented development,
metrics,
and optimization.
Some of the specific analysis techniques to be studied are
parsing,
software representation methods
(control flow graphs, data flow graphs, program dependency graphs),
symbolic evaluation,
constraints,
program slicing,
software coupling,
and testability.
For one-half of the research papers,
turn in a short (about one page) summary of the paper.
The summaries should:
(1) describe the problem in general terms,
(2) summarize the analysis technique,
(3) discuss the application of the technique (if appropriate),
(4) summarize and critique the major results,
(5) and critique the presentation of the paper.
You can choose which papers you want to turn in summaries for.
- GRADING:
-
This course will be run and graded as a seminar.
The major grade determinant will be
projects selected by the students.
The project can be primarily implementation with a short writeup,
or primarily research with a full paper.
All students will present the results of their projects to the class.
We will also have a few assignments.
There are no exams.
Tentative Schedule
Fall 1999
- Background
- Software representation methods
- Control flow graphs
- Data flow graphs
- Program dependency graphs
- Software representation methods
- Program slicing
- Graph representations
- Applications
- Static analysis
- Testing
- Reusability
- Change Impact Analysis
- Metrics
Jeff Offutt
Tue Aug 10 1999