Professor: Farn Wang （王凡教授）
Office: BL 616
Semester: Fall 2014 Time: Every Friday, 9:10am-12:00noon.
Classroom: BL 103 Credits: 3
(2014/12/12) Specific project evaluation criteria have been announced.
(2014/12/12) Materials for project 3 is now available.
(2014/12/05) Presentation expected on 2014/12/12 by 呂宗翰(determining predicates, ch.3/p.18)、吳家賢(active clause coverage, ch.3/p.19)、and 郭宗霆(Resolving the ambiguity, ch.7/p.20)。
(2014/12/05) Please be reminded of the project presentations by students on GUI testing.
(2014/11/14) On Friday 28 Nov. 2014, we will have class in BL 216 to collocate with the 6th WAVAS (Workshop on Automated Verification, Analysis, and Synthesis) with speakers from Mainland China and Taiwan. Our special guest is Professor Huimin Lin from the Institute of Software, Chinese Academy of Science. Lunch boxes, coffee, and snacks will be served.
(2014/11/14) At 11am on 14 Nov. 2014, we will have Professor Tevfik Bultan from UCSB speak in the class. The topic is Data Model Analysis and Verification.
(2014/10/17) Announcement of student presentations on 2014/10/24:
Tests & test paths, page 9&10 of chapter 2 by 張智。
Testing & covering graphs, page 11, chapter 2, by 張至潔。
Node and Edge Coverage, page 12, chapter 2 by 林修博
(2014/09/26) Announcement of student presentations on 2014/10/03:
Observability and Controllability (page 52) by 呂威廷
Inputs to Affect Controllability and Observability (page 53) by 張安邦
Stress Testing (page 54) by Thanh
(2014/09/26) Slides of the chapters uploaded.
(2014/09/23) Announcement of the 1st project on: 2014年10月17日
(2014/09/23) Announcement of the 2nd project on: 2014年11月7日
(2014/09/23) Announcement of the 3rd project on: 2014年12月12日
(2014/09/19) Project presentation requirement announced.
(2014/09/19) Please send, via emails to me and the TA, your selection of the SUTs for the three projects by Oct. 17, 2014.
(2014/09/18) Webpage of the course updated.
(2013/12/18) Materials for project 2 announced.
(2013/09/27) 2nd project on GUI testing with Selenium announced.
As the sizes and functionalities of software keep on growing, non-trivial software projects have spent more than half of their budget in testing and debugging. For Taiwan's high-tech industry, the situtaion is even worse since most software team managers and engineers do not think that they should spend money in software testing. Such a mentality rooted from Taiwan's industrial strength in OEM and ODM business but is now hurting Taiwan's effort in brand business. With the know-how in requirement engineering and system testing, Taiwan has no hope in making a successful international brand in the high-tech industry.
The course aims at teaching the students the background theory of software testing and letting them play with advanced testing tools from academia and industry. In the long-term, we anticipate to produce skillful professionals in software testing business for Taiwan's high-tech industry that can do the following.
Knowing the fundamentals and resources in software testing;
Utilizing the research results from academia;
Deploying software testing technology to various companies.
This course will focus on the theoretical aspects of software testing. Basic plan is listed as follows.
1. first module: foundations (slides)
2. second module: Testing criteria
2.1 Graph testing (slides)
2.2 Logic testing (slides)
2.3 Input space testing (slides)
2.4 Syntax testing (slides)
3. third module: practical consideration. (slides)
4. Criterias for new app types (slides)
Basic Computer Concepts,
C/C++ or Java programming,
Section 2.1, exercise 2, 4 (page 32).
Section 2.2.1, exercise 2, 3 (page 42), 5, 7 (page 43).
Section 2.2.3, exercise 1 (page 51).
Section 2.3, exercise 1 (page 60), 5 (page 61), 6 (page 62).
Section 2.4, exercise 3 (page 74).
Section 2.5, exercise 1 (page 85).
Section 2.6, exercise 1 (page 91).
Section 2.7, exercise 6, 7 (page 100).
Section 3.1, exercise 2 (page 105).
Section 3.2, exercise 6(a)-(h), 8(a)-(h) (page 119).
Section 3.3, exercise 2 (page 130).
Section 3.4, exercise 1 (page 134).
Section 3.5, exercise 1 (page 137), 3 (page 138).
Section 3.6, exercise 2(a)-(e), 4(a)-(e) (page 146).
Section 4.1, exercise 2 (page 159).
Section 4.2, exercise 3, 4 (page 163), 5 (page 164).
Section 5.1.1, exercise 2 (page 173).
Section 5.1.2, exercise 2, 3 (page 175).
Section 5.2, exercise 2 (page 189), 6 (page 190).
Section 5.5, exercise 3 (page 208), 4, 5 (page 209).
Introduction to Software Testing
Paul Ammann and Jeff Offutt
With related course materials in
Teaching Assistant Information: