Home - Courses - S - Content

Software Testing Foundations

ProgramTeacherCreditDuration

Computer Science

Zan Wang

3

48

Course Name: Software Testing Foundations

Course Code: S2293204

Semester: 5

Credit: 3

Program: Computer Science

Course Module: Specialized Compulsory

Responsible: Zan Wang

E-mail: wz@tju.edu.cn

Department: School of Computer Science & Technology, Tianjin University

Time Allocation (1 credit hour = 45 minutes)

Exercise

Lecture

Lab-study

Project

Internship

(days)

Personal

Work

10

14

24

15

Course Description

Software Testing Foundations is a required course designed for Engineering Mater of Computer Science in TIEI. This course will examine the fundamental software testing and related program analysis techniques. In particular, the important phases of testing and the significance of each phase when testing different types of software will be reviewed. The course will also include concepts such as test generation, test coverage, regression testing, mutation testing, program analysis, and test prioritization. By the end of this course, students should be familiar with the state-of-the-art in software testing.

Prerequisite

Software Engineering

Programming Language, such as Java

Web Programming

Database Foundation

Course Objectives

To develop essential skills of software testing and analysis.

To improve the cognition of software testing and analysis.

To illustrate testing technology for object-oriented, component-based, concurrent, distributed, graphical-user interface and web software.

To present related concepts closely related to software testing such as mutation testing and program analysis.

To demonstrate emerging concepts, such as test-case prioritization and their impact on testing.

To improve students’ hands-on testing/analysis experience.

Course Syllabus

Introduction to Software Testing: e.g., the need for testing; testing as an integral part of software Engineering; software engineering processes and testing

Test-case Generation: e.g., black-box testing; white-box testing; path-testing; branch and predicate testing, GUI testing.

Test coverage and adequacy.

Regression Testing: e.g., test maintenance.

Usability Testing: e.g., installation testing.

Software Testing Effectiveness.

Random Testing.

Database Testing.

Web Testing.

Defect Estimation.

Runtime Test Case Generation.

Fault Injection.

Automated Usability Testing/Evaluation.

Test Prioritization.

Software Compatibility Testing.

Mutation Testing.

Textbooks & References

  • Ammann P and Offutt J.Introduction to software testing. Cambridge University Press, 2008.

  • McMaster S and Memon A M.Call-stack coverage for GUI test suite reduction. Software Engineering, IEEE Transactions on, 2008, 34 (1): 99-115.

  • Shekhar J, Khurana K and Pandey M C.Software Testing. LAP LAMBERT Academic Publishing, 2014: 17-18.

  • Xiong J.The Basis of Software Testing. New Software Engineering Paradigm Based on Complexity Science, 2011: 371-385.

Capability Tasks

CT1: To know the concepts in fundamental software testing and program analysis techniques.

CT2: To understand the state of the art in testing technology.

CT3: To master how to use conventional testing techniques to test and analysis the multi-phase applications.

CS1: To master the basic theories of fundamental software testing and program analysis techniques.

CS2: To gain a comprehensive and solid foundation of conventional testing techniques to test and analysis the applications.

Achievements

To know the concepts in fundamental Software Testing and program analysis techniques. - Level: A

To understand the state of the art in testing technology. - Level: N

To understand the significance of each phase when testing different types of software. - Level: N

To master using conventional testing techniques. - Level: M

To understand how to test/analysis the multi-phase applications. - Level: N

Students: Computer science, Year2