Professor: |
Paul Ammann |
Office: |
Engineering Building 4428, 993-1660 |
Email: |
pammann@gmu.edu |
URL: |
http://cs.gmu.edu/~pammann/795.html
|
Class Hours: |
Monday 4:30 to 7:10, Nyugen Engineering 1103 |
Prerequisite: |
SWE 637 or POI.
Contact me if you have questions. |
Office Hours: |
Mondays and Thursdays 2-3PM;
anytime electronically;
after class;
by appointment
|
Important
This class is a seminar!
It is not a lecture class.
Students should expect to contribute heavily to the class.
Course Description
This version of SWE 795 is about advanced testing techniques.
I will focus on two (very different)
areas where I am actively involved in research:
-
Mutation testing, including applications to automated program repair (APR).
-
Testing to support usable security
I expect that most students will choose to work in one of these
areas,
but it is also possible,
with instructor approval,
to focus on a different advanced testing technique.
Note: This class counts towards the
"12 credits from SWE 700-level courses and IT-SWE courses"
in the
Software Engineering Advanced Emphasis Requirement.
Course Materials
-
We will use
Piazza
for discussions and posting (most) material.
-
Brief Introductory Slides
-
Introduction to Software Testing,
Ammann and Offutt, Cambridge University Press, 2008
Book website
Direct Safari Link
General Safari Link (off campus)
-
Material on mutant subsumption graphs.
We'll start with the only paper on the topic:
the paper
and
the presentation.
-
Material on APR.
To get you started, here is a
bibtex file.
We'll look at some, but not all of these papers.
We'll start with an
overview,
which happens to be paper 24 in the list.
-
Material on case studies (TBD - Probably Yin: depends on class interest level)
-
Material on usable security: I'll introduce this with a
SECTEST keynote talk
I gave last spring.
-
Material selected from the literature by students with instructor approval.
Approximate Schedule: Revisions likely!
-
First few weeks: General (re)orientation in testing,
introduction to proper case study design, and
overview of usable security.
I plan to lead some of these discussions,
but heavy student participation is expected.
-
Middle section of the semeter:
Student presentations of papers from the literature.
-
Last few weeks of the semester:
Student presentations of projects/papers.
This will cover your work.
Assignments/Expectations
There are three specific expectations of students
in this class.
-
The simplest is that each student come to lecture prepared
to discuss the topic of the day.
This is a seminar, not a lecture.
Each student is expected to add value to the discussion.
Discussions will continue outside of class on a Piazza forum.
Again, students are expected to contribute.
-
Each student will lead one or two discussions
in class, as well as one or more online discussions.
This will involve selecting suitable material,
making it available to other students,
and preparing a presentation to guide the discussion.
You should begin researching what topics you would like
to present now.
You should have clear your ideas with me a couple of weeks
before you are scheduled to present.
Group work is certainly allowed - even encouraged -
depending on what is most appropriate for the specific topic.
-
Each student will prepare a project or paper on
some advanced testing technique.
Again, you should discuss your ideas with me
as early as possible.
Group work is possible in this aspect of the course as well,
but requires a strong rationale and prior instructor approval.
PhD students should aim for a paper/project
that is potentially publishable.
Often, such papers require additional work outside the
scope of the class to bring them to the level of
quality required to satisfy a typical set of reviewers.
MS students are also welcome to aim
for publication.
However, many MS students are often interested
in more practical applications.
Grading
Grades are computed as: Class participation (33%);
Discussion leading (33%);
Project (33%).