EE 5170/921 U9550
Professor: Farn Wang （王凡教授）
Office: BL 616
Semester: Fall 2015 Time: Every Friday, 9:10am-12:00noon.
Classroom: BL 103 Credits: 3
(2015/11/23) According to the presentations on Nov. 20, almost no students did source-code coverage analysis. Most students wrote a tiny program by her/himself as the SUT. We want to emphasize that the choice of a public and non-trivial SUT will certainly show your effort and ambition and will earn more credits in the projects. Also coverage analysis is a crucial ingredient of the course. Thus non-trivial analysis of the source-code coveraage will certainly earn you more credits in the projects. We encourage the students to take on the challenge of real-world public SUTs and serious coverage analysis.
(2015/11/23) Public source-code coverage analysis tools are also announced for the students to use in their projects.
(2015/10/10) Project 1 materials announced.
(2015/09/17) Project schedules: Project 1 will be announced on Oct. 16, 2015 and presented by the students on Nov. 20, 2015.
(2015/09/17) Project 2 will be announced on Nov. 20, 2015 and presented by the students on Dec. 18, 2015.
(2015/09/17) Project 3 will be announced on Dec. 18, 2015 and presented by the students on Jan. 22, 2016.
(2015/09/16) 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:
Room: BL 604