CS 5314/7314 (Spring 2024) Contents Description

Software Testing and Quality Assurance


Prof. Jeff Tian, CS Dept., SMU, Dallas, TX 75275
Phone: (214)768-2861
E-mail: tian@smu.edu
Webpage: s2.smu.edu/~tian/class/7314.24s

Contents 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.

One important feature of this course is the user-centered perspective of software quality, testing, and QA. User requirements for new systems and usage models of existing systems or alternative systems will be the starting point and focus of our course. Quality metrics meaningful to the users will be used throughout the QA and SQE (Software Quality Engineering) process.

Another important feature of this course is the focus on the "prioritized" (or "risk-based") approach to testing and quality assurance. For any realistic system today, exhaustive testing and similar quality assurance approaches would be infeasible because of the increasing size and complexity. We will focus on the "kay" areas/goals/components/etc., related to importance/criticality (externally defined priority), likely defects (defect-based), usage frequencies (usage-based), etc., for our testing and QA effort.

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:

These testing techniques are organized by their underlying models: 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 (and API) 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, user involvement (user-centered testing/QA), 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:


Prepared by Jeff Tian (tian@smu.edu).
Posted: Jan. 22, 2024. Last update: Jan. 22, 2024.

Back to CS 7314 Webpage