CS 5314/7314 (Fall 2021) 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.21f
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 their target customers and users.
We will devote slightly more than half of the class
time to topics related to software testing,
or executing the software in order to observe its behavior to ensure
that it conforms to our expectations or
to identify behavior deviations and possible
underlying problems for correction.
We will emphasis 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 (or verifying/testing) implementation details,
including internal components and structures;
- usage-based statistical testing (UBST),
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:
-
Testing techniques based on
"flat" structures, such as lists,
partitions and equivalent classes,
include
t1) basic partition testing (PT),
t2) input domain boundary testing (BT),
and
t3) Musa's operational profiles (Musa OP) or usage model for UBST.
-
Testing techniques based on
finite-state machines (FSM) and related variations
include
t4) basic FSM testing,
t5) control flow testing (CFT),
t6) data dependency analysis and data flow testing (DFT),
and
t7) Markov operational profiles (Markov OP) for UBST.
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
quality and reliability.
Specific testing techniques to be covered:
Besides the
formal/systematic ones mentioned above
(t1-t7: PT, BT, Musa-OP/UBST, FSM, CFT, DFT, Markov-OP/UBST),
we will also briefly cover
various forms of informal or ad-hoc testing,
checklists, fault injection and mutation testing.
Specialized testing techniques for specific purposes
and/or applicable to different application domains,
such as usability testing, Web testing,
Cloud testing, embedded system testing,
performance and stress testing, etc.
will also be briefly covered.
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, security,
usability, dependability, maintainability, 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 its prerequisite, formal specification, briefly),
fault tolerance and safety assurance.
A good understanding of each alternative's relative strengths
and weaknesses 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 and reliability 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.)
-
Relevant SMU policies
regarding
disability accommodations,
religious observance,
excused absences for university extracurricular activities, etc.,
and
how to access the services and accommodations available
(linked here too).
.
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
or in Canvas.
Prepared by Jeff Tian
(tian@smu.edu).
Posted: Aug. 23, 2021.
Last update: Aug. 23, 2021.