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)
| ||||||||||||||
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
| ||||||||||||||
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 |