中正大學課程大綱
課程名稱(中文): 軟體測試 開課單位: 資訊工程研究所(Graduate Institute of Computer Science and Information Engineering)
課程名稱(英文) Software Testing 課程代碼 4105812_01
授課教師: 林迺衛 學分數 3
必/選修 選修 開課年級 研究所
先修科目或先備能力:
Java, C++ or C programming.
課程概述:
This course introduces the principles, techniques, and tools of software testing. This course will mainly use the Java development environment Eclipse and the testing tool Junit to exercise various testing techniques.
學習目標:
1. Understand the test-driven development and the unit testing tool JUnit
2. Understand and exercise the domain testing technique
3. Understand and exercise the method-level functional unit testing technique
4. Understand and exercise the method-level structural unit testing technique
5. Understandand exercise the class-level unit testing technique
6. Understand the mutation testing technique
7. Understand the system testing technique
教科書:

課程大綱 分配時數 核心能力 備註
單元主題 內容綱要 講授 示範 隨堂作業 其他
Introduction to software testing
1. What is software testing
2. Why is software testing needed
3. How is software testing performed
3 12345678
Assignment 1
Introduction to Java, Eclipse, and JUnit
1. Introduction to Java
2. Introduction to Eclipse
3. Introduction to JUnit
4. Test-driven development
3 6 12345678
Assignment 2
Introduction to test case generation
1. Equivalence class partitioning
2. Boundary value analysis
3. Constraint-based test case generation
3 3 12345678
Assignment 3
Method-level functional unit testing
1. Universal Modeling Language
2. Object Constraint Language
3. Constraint satisfaction problem
4. Constraint logic programming
6 3 12345678
Assignment 4, Assignment 5
Method-level structural unit testing
1. Control flow testing
2. Data flow testing
3. Test coverage criteria
6 3 12345678
Assignment 5
Class-level unit testing
1. UML state diagrams
2. Test coverage criteria
3 3 12345678
Assignment 6
Mutation testing
1. Mutants and mutation score
2. Purpose of mutation testing
3. Optimizations of mutation testing
3 12345678
System testing
1. Performance testing
2. Load testing
3. Stress testing
4. Usability testing
3 12345678

教育目標
1.具獨立從事學術研究或產品創新研發之人才
2.具團隊合作精神及科技整合能力,並在團隊中扮演領導、規劃、管理之角色
3.具自我挑戰與終身學習能力之人才
4.具有學術倫理、工程倫理、國際觀之人才

核心能力
1.具有資訊工程與科學領域之專業知識(Competence in computer science and computer engineering.)
2.具有創新思考、問題解決、獨立研究之能力(Be creative and be able to solve problems and to perform independent research.)
3.具有撰寫中英文專業論文及簡報之能力(Demonstrate good written, oral, and communication skills, in both Chinese and English.)
4.具策劃及執行專題研究之能力(Be able to plan and execute projects.)
5.具有溝通、協調、整合及進行跨領域團隊合作之能力(Have communication, coordination, integration skills and teamwork in multi-disciplinary settings.)
6.具有終身學習與因應資訊科技快速變遷之能力(Recognize the need for, and have the ability to engage in independent and life-long learning.)
7.認識並遵循學術與工程倫理(Understand and commit to academic and professional ethics.)
8.具國際觀及科技前瞻視野(Have international view and vision of future technology.)

請尊重智慧財產權,不得非法影印教師指定之教科書籍

教學要點概述:
1. 教材編選(可複選):自編簡報(ppt)教科書作者提供
2. 教學方法(可複選):講述板書講述
3. 評量工具(可複選):上課點名 0%, 隨堂測驗0%, 隨堂作業0%, 程式實作40.00%, 實習報告0.00%,
                       專案報告0%, 期中考30.00%, 期末考30.00%, 期末報告0%, 其他0%,
4. 教學資源:課程網站 教材電子檔供下載 實習網站
5. 教學相關配合事項:

課程目標與教育核心能力相關性        
請勾選:12345678
1 具有資訊工程與科學領域之專業知識(Competence in computer science and computer engineering.)
為何有關:
軟體開發知識是資訊工程領域最核心的專業知識之一,軟體測試知識又是軟體開發最核心的專業知識之一。本課程教授軟體測試的理論、技術、及工具,透過課程的講說及作業的練習可以幫助學生具備基本的軟體測試專業知識。
達成指標:
對本課程所傳授的專業知識能夠了解與吸收。
評量工具(可複選):
等級5:繳交100%的作業且學期成績可達到80分以上。等級4:繳交100%的作業且學期成績可達到70分以上。等級3:有繳交100%的作業且學期成績可達到60分以上。等級2:未繳交100%的作業或學期成績未達到60分以上。等級1:未繳交100%的作業且學期成績未達到60分以上。
2 具有創新思考、問題解決、獨立研究之能力(Be creative and be able to solve problems and to perform independent research.)
為何有關:
本課程透過數個需獨立完成的程式作業幫助學生瞭解及熟悉軟體測試的理論、技術、及工具,在獨立完成這些程式作業的過程中,可以幫助學生具備基本的獨立思考及解決問題的能力。
達成指標:
能完成具有創新思考、問題解決之課程作業及考試。
評量工具(可複選):
等級5:繳交100%的作業且學期成績可達到80分以上。等級4:繳交100%的作業且學期成績可達到70分以上。等級3:有繳交100%的作業且學期成績可達到60分以上。等級2:未繳交100%的作業或學期成績未達到60分以上。等級1:未繳交100%的作業且學期成績未達到60分以上。