|
|
TextBook:
- Referenced Text: Practical Model-Based-Bsed
Testing, by Mark Uttung and Bruno Legeard
- Required Text: Software Testing: A
Craftsman's Approach By Paul C. Jorgense, third edition
Other Sources:
- ACM/IEEE Journals and Proceedings Articles
On-line Materials Via UND Main Library:
Course lecture notes will be available on-line from the course web
site. For the most parts, I will do my best to provide handouts and
copies of some of the reading relevant to this course. However,
this is an advanced course and by its very nature requires frequent
visits to the library (UND's Chester Fritz library and/or NDSU,
elsewhere) resources. Therefore, it is YOUR responsibility to get
copies of journal articles and bring them to the class or to use them
for homework, project, or term paper. Currently, both ACM and
IEEE are on-line via UND main library. Please consult with Chester
Fritz library people to find out how to connect to On-Campus and
Off-Campus from your computer in order to access on-line IEEE/ACM
digital libraries.
Course Description:
Software testing is a process by which software systems are
executed in order to determine whether the product is
built right (verification) or the right product. has
been built (validation). The past decades have witnessed a great
increased in the study and hence in the theory of software testing
techniques. This course covers the most well known testing
methods/strategies, such as structured testing, functional
testing, mutation testing, data flow testing, and formal specification
based testing methods. Upon successful completion of the course, the
student should be able to understand the theory and the role of
software testing and its relationship to the quality assurance. The
objectives for this course include but not limited to :
- Basic Definitions
- Set theory and and graphs
- Software Testing Strategies
- Functional testing
- Boundary value analysis
- Equivalence classes
- Decision tables
- Structural Testing
- base -paths
- McCabe's Basis Path Method
- Essential Complexity
- Define/Use Testing
- Data Flow testing
- Slice-based testing
- Integration and System Testing
- Performace/Stress Testing
- Security Testing
- Usability Testing (web)
- Reusability Testing
- Testing and Software architecture
- Integrated functional/structural testing techniques
- Using Software architecture for Integration Testsing
Course Prerequisites and Prerequisite Fulfillment:
The course will utilize lecture and discussion, as the main teaching
tools for presenting the course material. Students will be expected to
read the material be prepared to discuss the readings and the
assignments
in class.
Prerequisite for this course is successful completion of
Csci463, background in discrete math, and exposure to any
high level programming languages such as C, C++, or Java
are required.
This course is a CORE course for graduate students and hence
demands both independent and cooperative work. Working independently
requires that you have good time management skills and self directed
learning skills. There are no prerequisites for team work other than a
willingness and flexibility to participate and learn as part of a team.
This course fulfills all or part of the prerequisite
requirements for Csci 566 (Software Engineering Track). This
course is also very relevant for students with a general background in
computer science interest in the theory and practice of software
development and maintenance.
Other Related Courses in Software Engineering Track (SET):
- Software Architecture (Csci 582/501):
- A study of formal and semi formal notations used to
specify communicational and computational elements of a software system;
- Formal Specification Methods (Csci 562):
- This course is an introduction to the application
of modeling notations that allows a software engineer to precisely
specify and verify the behavior of a system In this course, we
will discuss the suitability of various specification techniques.
Email Policy:
You are more than welcome to email me about your concerns at
any time. If you have any specific question about the course that
requires some lengthy discussion then you better off to see me at
the office.
Exams:
The exams will contain questions covering
material in the class, homework, the lecture notes, textbook, and
handouts. There
are
two exams:
- Exam 1:March
12th;
- Exam 2: April 16th ;
Make-up Exam and Quiz Policy:
No make-up exams or quizzes will
be conducted .
Assignments and Pop Quizzes:
There will be several assignments and quizzes throughout the course.
The topics of these assignments will be taken from reading
resources and will be announced in advance. Assignments should be
turned
in the class. For every day of late submission 20% of the points will
be deducted. You are advised to hand in assignments in class. Any
homework
placed without my knowledge (e.g., in my office mail box) will be
accepted
without any warranty. In case an assignment is lost, it is your
responsibility. Recommendations are: to save everything, retain
important papers and
computer files until the course is finished.
There will also be pop quizzes on material we have recently
read/discussed in class. The quiz will normally be one or two basic
questions. Your answer will be a given S ( Satisfactory) or U
(Unsatisfactory). There will be 4-6 quizzes for the course. To
accommodate
those who miss class, two low quizzes for each student will be dropped.
Submitting Assignments:
All programming assignments (if any) must be submitted either by email
or on the disks/CDs. The following guidelines are used as
the grading criteria:
- If the programming assignment cannot be compiled due to
compilation errors, the assignment will receive a grade F;
- If the programming assignment compiles with warnings, the
assignment may lose up to 100% of your grade depending on the nature
and the severity of the warnings;
- You program must adhere to proper documentation and
programming styles (e.g., comments);
- Your submission must include both the source code and
executables file(s);
- If the assignment is submitted by email, you need to
send your submission as attachments as follows:
- Include your name, assignment number, and class in the
subject heading (e.g.,
John-Smith.HW1.Csci565);
- If the assignment is submitted on a disk/CD, use a
label with your name, assignment number, and class on it.
Note 1: All non Programming
assignments must be typed and spell checked otherwise they won't
be graded.
I normally return assignments, exams, and quizzes to the class. If you
are absent, it is your responsibility to pick up your
work at my office.
Term Paper:
There is one term paper which counts 30% of the course grade. The main
objective will be to identify a killer idea to extent or
investigate in detail a specific issue related to the software testing
that attracts you. This may include all papers and technical
reports
on the subject as well as personal communications with the lead
investigators. The term paper consists of two parts: Survey Report and
Research Report.
Each team (two persons) will pick a research paper topic. You will
research
your topic, write a high quality paper on it (10-12) pages white paper
10
point font, single space, IEEE format.
The survey part must describe the problem domain, with proper problem
definition, and a survey of current work. The research part should be a
publishable paper (6-8 pages). It should describe
your own attempt to either solve a problem in this domain or go a long
way towards its solution.
Each paper MUST be fully cited in the
reference section at the end and number. Each paper should be referred
to in the context section by that number and there MUST be a brief
discussion/summaries of contribution of the paper and a comparison of
its results with the contribution of the other papers. The context
section should contain ALL fundamentally important papers in the topic
area right up to the present. This may include all technical
reports/papers recently published by the important contributors.
The term paper must be in by Tusedday,
May 10 at 11:00 AM. The recommendation is that you
start thinking or working on term paper ASAP.
Presentation:
Each Team will be assigned to make a 30-35 minute powerpoint
presentation to show their results. Allow 30 minutes for
presentation and 5 minutes for answering questions. Both team
members will give a report on their
part of the project in the designated 35 minutes for the team. The
report
will be scheduled alphabetically by the team leaders last name.
The
presentation will begin during the month of April before final
exam.
Course Grading Policy:
The course grade will be computed as a combination of the
following factors:
- Two Exams (45%)
- Assignments (10 %)
- Pop Quizzes (5 %)
- Term paper (30 %)
- Presentation (10%)
Grading Scale :
| 90 - 100% |
A |
| 80 - 89% |
B |
| 70 - 79% |
C |
| 60 - 69% |
D |
| below 59% |
F |
Participation & Attendance Policy:
Regular classroom attendance is required (this includes any team
meeting held class time and outside of class time), but does not
count as participation. Active participation in class involves
preparing ahead of time, asking intelligent questions that the book
does not answer, answering questions in class, and participating in
classroom discussions. If you know you will miss a class ahead of time,
email the instructor. Make friends with your classmates so they will be
willing to share notes, which problems were assigned, etc., for when
emergencies arise and you do miss class.
Civility in the Classroom:
Students are expected to assist in maintaining a classroom environment,
which is conducive to learning. Please do not bring food to
the classroom and always turn your cell phone (ringer) off if you have
to have it with you.
Disability Conditions:
If you have a disability condition that may effect your participation
in this course and wish to discuss academic accommodations, please
inform me as soon as possible.
Drops & Withdrawals:
Students should not assume that the instructor will administratively
drop the student for non-attendance. Withdrawal from the course is the
responsibility of the student. Should a student decide to withdraw from
the course, simply not attending class sessions, rather than formally
withdrawing from the course, may result in an 'F' on the student's
transcript.
PLAGIARISM, PROFESSIONAL ETHICS & PERSONAL
INTEGRITY
The UND academic policy clearly states an expectation that
each student submit his/her own work do otherwise, that is, to submit
anther's efforts as one's own, is at its least plagiarism, and at its
most unethical and without integrity. Indeed, it is a matter
of professional ethics and personal integrity to graciously accept
accolades for a job well done, as well as to publicly acknowledge those
to whom
partial credit is owed. Those found to be cheating on exams,
assignments, and Project will receive an "F " for the COURSE,
and the matter will be discussed with the appropriate Dean and/or
Chair.
I do not anticipate any problem here.
Disclaimer: This syllabus is
intended to suggest the outline of the course; it is not absolute.
Changes to the syllabus, should they occur, will be announced in
class.
|