CS 5314/7314 (Spring 2025) 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.25s

Contents Description

Software quality assurance (SQA or simply QA) includes testing and other activities aimed at ensuring that appropriate (required/needed/wanted/etc.) 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, which will influence the decisions on appropriate testing and QA activities to be performed and models/techniques to be employed. User requirements for new/updated systems and usage models of existing/competing/alternative systems systems will be the starting point and focus of our course. Quality metrics meaningful to the users, such as reliability/safety/usability/etc., 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, informal/ad-hoc testing/QA would be adequate, while exhaustive testing/QA would be infeasible or impractical, because of the "high" user expectations and increasing product size and complexity. We will focus on the "key" 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 about half of the class time to topics related to software testing, or executing/running the software in order to observe its behavior to ensure that it conforms to our/users' 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 formal 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 meaningful to users/customers.

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, 2025. Last update: Jan. 22, 2025.

Back to CS 7314 Webpage