CS 7314 (Spring 2020) Syllabus
Software Testing and Quality Assurance
Prof. Jeff Tian, CS Dept., SMU, Dallas, TX 75275
Phone: (214)768-2861
E-mail: tian@smu.edu
Webpage: lyle.smu.edu/~tian/class/7314.20s
General Description
Software quality assurance (SQA or simply QA)
includes testing and various other activities aimed at
ensuring that appropriate functionalities have been
implemented correctly and efficiently in the software systems
or software-related products or services
to satisfy the requirements, needs and wants, and expectations
of its target customers and users.
We will devote slightly more than half of the class
time to topics related to software testing,
with an emphasis on formal/systematic testing techniques
and their applications, including:
- black-box or functional testing,
with a focus on covering (or thoroughly testing) external functions
or services required or expected by target customers and users;
- clear/transparent/white-box or structural testing;
with a focus on covering implementation details,
including internal components and structures;
- usage-based statistical testing,
with a focus on adequately testing operations or services
important to and commonly used by target customers and users
to ensure overall product or system reliability
(a quality view most meaningful to customers and users)
after product delivery or system deployment.
These testing techniques are organized by their underlying models,
including 1) "flat" structures such as lists,
partitions and equivalent classes,
and 2) finite-state machines and related variations.
These models will help us prepare, perform,
and perfect (manage/improve) testing to achieve functional
or structural coverage or to mimic realistic usage scenarios
in a systematic way to ensure overall product/system reliability.
Specific testing techniques to be covered include:
checklists, equivalent class/partition testing,
input domain boundary testing,
finite state machine testing,
control flow testing,
data dependency analysis and data flow testing,
basic operational profiles (or Musa OP)
and Markov chains (or Markov OP) for usage-based statistical testing,
fault injection and mutation testing,
as well as
specialized testing techniques for specific purposes
and/or applicable to different application domains,
such as Web testing, Cloud testing, usability testing, etc.
Test activities, management, automation, and related issues,
such as team organization,
testing process,
people's roles and responsibilities,
test automation tools,
test integration, etc.,
will be briefly discussed.
Applicability and effectiveness of specific testing techniques
in different sub-phases and for different purposes will
also be briefly discussed.
The rest of the class time,
beyond various testing-related topics mentioned above,
will be devoted to the following topics:
-
General concepts about quality,
quality assurance (QA),
and software quality engineering (SQE).
Concepts related to quality will be covered,
including reliability, safety, maintainability, security,
usability, dependability, availability, etc.
QA activities and SQE process will also be discussed,
in the context of overall software development and maintenance processes.
-
Other QA alternatives beyond testing,
including, activities and related techniques for
defect prevention and process improvement,
inspection/review/walkthrough,
formal verification (and formal specification, briefly),
fault tolerance and safety assurance.
A good understanding of each alternative's relative strength
and weakness will help us construct and carry out
a comprehensive QA strategy that more often than not will
include and integrate several such alternatives.
-
Quality assessment and improvement, including,
overall strategy for quantifiable quality improvement,
measurement and feedback mechanisms,
quality models and measurements,
defect classification and analysis,
risk identification and analysis,
and software reliability engineering.
These activities will help us monitor, assess, improve
the overall SQE process to achieve our quality goals
effectively and efficiently.
Workload, Grading, and Notices
The course grade each student receives will reflect the weighted
average of exams, homework assignments, and course project.
The approximate weight assignment is as follows:
Homework and participation
Midterm Exam
Final Exam
Project
|
15%
25%
25%
35%
|
Notices and relevant SMU policies:
-
Plagiarism of any kind is strictly
prohibited by the SMU Student Honor Code.
-
If you need to make alternative arrangements for turning-in
material or taking exams,
you must contact the instructor ahead of time,
unless it is truly an emergency.
(Otherwise you'll receive 0 for the specific item.)
-
Disability Accommodations:
Students needing academic accommodations for a disability must first
register with Disability Accommodations & Success Strategies (DASS).
Students can call 214-768-1470 or visit
http://www.smu.edu/Provost/SASP/DASS to begin the process.
Once approved and registered,
students will submit a DASS Accommodation Letter to faculty
through the electronic portal DASS Link and then communicate
directly with each instructor to make appropriate arrangements.
Please note that accommodations are not retroactive
and require advance notice to implement.
-
Religious Observance:
Religiously observant students wishing to be absent on holidays
that require missing class should notify their professors in
writing at the beginning of the semester,
and should discuss with them, in advance,
acceptable ways of making up any work missed because of the absence
(https://www.smu.edu/StudentAffairs/Chaplain/ReligiousHolidays).
-
Excused Absences for University Extracurricular Activities:
Students participating in an officially sanctioned,
scheduled University extracurricular activity should be given
the opportunity to make up class assignments or other graded
assignments missed as a result of their participation.
It is the responsibility of the student to make arrangements
with the instructor prior to any missed scheduled examination
or other missed assignment for making up the work.
(See 2019-2020 University Undergraduate Catalogue under Excused Absences)
Textbook and Other Information
-
Jeff Tian,
"Software Quality Engineering:
Testing, Quality Assurance, and Quantifiable Improvement"
John Wiley and Sons, Inc., and IEEE Computer Society Press, 2005.
ISBN: 0-471-71345-7
Available at SMU bookstore,
official Wiley website for the book,
or your favorite local/online booksellers.
-
List of topics and tentative schedule.
-
Other references, reading material,
and selected class material will be listed or posted online.
Prepared by Jeff Tian
(tian@smu.edu).
Posted: March 18, 2020.
Last update: March 18, 2020.