A0L249Q Software Testing Technology and Practice

(2 Credits, 32 Hours; Course Category: Elective Course; Specialty: Software Engineering; Prerequisites: Object-Oriented Programming and Design, Software Process)
Software testing is an investigation conducted to provide the information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. In large software enterprises, the number and specialities of testers are larger than the developers, and the technical requirements of the testers are more diverse.
The purpose of this course is not only to cultivate qualified testing personnel for the software development team, but also to build up students’ quality senses so as to let them adapt to different roles in future careers. The curriculum of the course is to let the students understand the concepts and definitions of software quality assurance and software testing first. Then, according to the typical test activities in the life cycle of software development, the course helps the students to master the testing skills, quality assurance workflows, and grasp all kinds of testing technologies based on the different testing types.
The contents of the course include different testing types and testing technologies (static testing, dynamic testing, unit testing, integration testing, system testing, regression testing, performance testing, security testing and localization testing, etc.), testing case design methodology (black box and white box), testing management (defect management, test case management), testing and project management, test driven development approach, and test automation development, etc.