> RESEARCH
My research focuses on software testing of concurrent programs.

Publication

•  Gwan-Hwan Hwang, Che-Sheng Lin, Li-Te Tsao, Kuei-Huan Chen, and Yan-You Li,
"A Framework and Language Support for Automatic Dynamic Testing of Workflow Management Systems,"
The 3rd IEEE International Symposium on Theoretical Aspects of Software Engineering (TASE 2009), July 29-31, 2009, Tianjin, China. (The overall paper acceptance rate for regular papers was 27%.) CPCI-S, EI
•  Che-Sheng Lin and Gwan-Hwan Hwang,
"Spontaneous Detection of Infinite Loops and Livelocks in Dynamic Testing of Concurrent Programs,"
The 3rd IEEE International Symposium on Theoretical Aspects of Software Engineering (TASE 2009), July 29-31, 2009, Tianjin, China. CPCI-S, EI
•  Che-Sheng Lin and Gwan-Hwan Hwang,
"Distributed Dynamic Testing for Embedded Concurrent Software,"
Communications of IICM, Vol.11, No.3, pages 27-40, September 2008.
•  Che-Sheng Lin and Gwan-Hwan Hwang,
"Concurrent Testing and Simulation for Embedded Multi-Core System,"
Proceedings of Workshop on Compiler Techniques for High-Perforamnce Computing (CTHPC 2008), May 26-27, 2008.
•  Che-Sheng Lin,
"Reachability Testing for Concurrent Programs with Busy-Waiting Loops,"
Master Thesis (advised by Gwan-Hwan Hwang), Dept. of Information and Computer Education, National Taiwan Normal University, 2005.

Award

•  Wan-Shu Lai, Che-Sheng Lin, and Teng-Shuo Lee,
"Concurrency Testing for Heterogeneous Embedded Multi-core Programming Models".
Received ES2009the 2nd award in the Embedded System Design Contest 2009.

Software Testing

◊  The life cycle of a program includes a testing and debugging phase. Testing is the process of executing the program with selected tests in order to detect faults. Debugging is the process of locating and correcting the faults detected during testing. ("Parallel and Distributed Computing Handbook", by Albert Y. Zomaya, 1995.)

◊  相較於 static analysis,testing 的重要性在於:
Some program debugging can only be performed (or are more efficient or accurate) when performed at runtime. Logical errors and array bounds checking are examples. For this reason, some programming bugs are not discovered until the program is tested in a "live" environment with real data, despite sophisticated compile-time checking and pre-release testing. In this case, the end user may encounter a runtime error message. (see also: wikipedia)


Google Scholar

Conferences

♦  AADEBUG: Intl. Workshop on Automated and Analysis-Driven Debugging
•  Proc.(ACM DL): 2005
◊  Ada-Europe: Intl. Conf. on Reliable Software Technologies - Ada-Europe
•  Ada-Europe 2011: June 20-24 - Edinburgh, UK
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991
◊  AOSD: Aspect-Oriented Software Development Conference
•  AOSD.11: Mar.21-25 - Porto de Galinhas, Pernambuco, Brazil
•  Proc.(ACM DL): 2002-2010
◊  APSEC: Asia-Pacific Software Engineering Conference
•  Proc.(IEL): 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994
◊  ASE: IEEE/ACM Intl. Conf. on Automated Software Engineering
•  ASE 2011: Nov.6-10 - Oread, Lawrence, Kansas, USA
•  Proc.(ACM DL): 2002-2010
•  Proc.(IEL): 2010, 2009, 2008, 2006, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997
◊  ATS: Asian Test Symposium
•  ATS 2011: Nov.21-23 - New Delhi, India
•  Proc.(IEL): 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992
◊  ATVA: Intl. Symp. on Automated Technology for Verification and Analysis
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004
◊  CAV: Intl. Conf. on Computer Aided Verification
•  CAV 2011: Jul.14-21 - Cliff Lodge, Snowbird, Utah
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990
◊  CBSE: Intl. Symposium on Component-Based Software Engineering
•  CBSE 2011 (part of CompArch 2011): June 21-23 - Boulder, Colorado, USA
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004
◊  COMPSAC: IEEE Intl. Computer Software and Applications Conference
•  COMPSAC 2011: July 18-22 - Munich, Germany
•  Proc.(IEL): 2010, 2009, 2008, 2007 (Vol.1, Vol.2), 2006 (Supplement), 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1979, 1978
◊  CONCUR: Intl. Conf. on Concurrency Theory
•  CONCUR 2011 (co-located with QEST 2011 and TGC 2011): Sep.5-10 - Aachen, Germany
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990
◊  ECBS: IEEE Intl. Conf. and Workshops on the Engineering of Computer Based Systems
•  ECBS 2011 (co-located with ICECCS 2011 and EASe 2011): Aug.27-29 - Las Vegas, NV, USA
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1997, 1996, 1988
◊  ESEM: Intl. Symp. on Empirical Software Engineering and Measurement
•  ESEM 2011: Sep.22-23 - Banff, Alberta, Canada
•  Proc.(ACM DL): 2007-2010
◊  ESOP: European Symposium on Programming
•  ESOP 2011 (ETAPS 2011 main conferences): Mar.26 - Apr.3 - Saarbrucken, Germany
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1996, 1994, 1992, 1990, 1988, 1986,
◊  FASE: Fundamental Approaches to Software Engineering
•  FASE 2011 (ETAPS 2011 main conferences): Mar.26 - Apr.3 - Saarbrucken, Germany
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998
♦  FATES: Intl. Workshop on Formal Approaches to Testing of Software
•  Proc.(LNCS): 2009 (w/ TestCom), 2008 (w/ TestCom), 2007 (w/ TestCom), 2006 (w/ RV), 2005, 2003,
◊  FoSSaCS: Foundations of Software Science and Computation Structures
•  FoSSaCS 2011 (ETAPS 2011 main conferences): Mar.26 - Apr.3 - Saarbrucken, Germany
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998
◊  FSE: ACM SIGSOFT Symp. on Foundations of Software Engineering
•  ESEC/FSE 2011: Sep.5-9 - Szeged, Hungary
•  Proc.(ACM DL): 1982-2010
◊  HASE: IEEE High Assurance Systems Engineering Symposium
•  Proc.(IEL): 2010, 2008, 2007, 2005, 2004, 2002, 2001, 2000, 1999, 1998, 1997, 1996
◊  ICECCS: IEEE Intl. Conf. on Engineering of Complex Computer Systems
•  ICECCS 2011 (co-located with ECBS 2011 and EASe 2011): Aug.27-29 - Las Vegas, NV, USA
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995
◊  ICFEM: Intl. Conf. on Formal Engineering Methods
•  ICFEM 2011: Oct.26-28 - Durham, UK
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002
◊  ICGSE: IEEE Intl. Conf. on Global Software Engineering
•  ICGSE 2011: Aug.15-18 - Marina Congress Center, Helsinki, Finland
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006
◊  ICONS: IARIA International Conference on System
•  ICONS 2011 : January 23-28 - St. Maarten, The Netherlands Antilles
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006 (w/ ICN & MCL)
◊  ICPC: IEEE Intl. Conf. on Program Comprehension
•  ICPC 2011 : June - Kingston, Ontario, Canada
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1994, 1993
◊  ICPE: ACM Intl. Conf. on Performance Engineering
•  WOSP/SIPEW 2011: Mar.14-16 - Karlsruhe, Germany
•  Proc.(ACM DL): WOSP/SIPEW 2010, WOSP 1998-2008
◊  ICSE: Intl. Conf. on Software Engineering
•  ICSE 2011: May 21-28 - Honolulu, Hawaii, USA
•  ICSE 2012: Jun.2-9 - Zurich, Switzerland
•  ICSE 2013: May 17-27 - San Francisco, USA
•  Proc.(ACM DL): 1976-2010
•  Proc.(IEL): 2009, 2008, 2007 (Companion), 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1994, 1993, 1992, 1991, 1990, 1989, 1988
◊  ICSEA: IARIA Intl. Conf. on Software Engineering Advances
•  ICSEA 2011: Oct.23-28 - Barcelona, Spain
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006
◊  ICSM: IEEE Intl. Conf. on Software Maintenance
•  ICSM 2012: TBD - Riva del Garda, Italy
•  ICSM 2011 (co-located with SCAM'11, WSE'11, and VISSOFT'11): Sep.25 - Oct.1 - Williamsburg, VA, USA
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988
◊  ICSOFT: Intl. Conf. on Software and Data Technologies
•  ICSOFT 2011: July 18-21 - Seville, Spain
•  Proc.(LNCS): 2008, 2007, 2006
◊  ICST: Intl. Conf. on Software Testing, Verification, and Validation
•  ICST 2011 (co-located with TAIC PART 2011): Mar.21-25 - Berlin, Germany
•  ICST 2012: (TBA) - Montreal, Canada
•  Proc.(IEL): 2010, 2009, 2008
◊  ISEC: India Software Engineering Conference
•  ISEC 2011: Feb.23-27 - Thiruvananthapuram, India
•  Proc.(ACM DL): 2008-2010
◊  ISSRE: Intl. Symp. on Software Reliability Engineering
•  ISSRE 2011: Nov.14-17 - Tokyo, Japan
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997 (Case Study), 1996, 1995, 1994, 1993, 1992, 1991
◊  ISSTA: Intl. Symp. on Software Testing and Analysis
•  ISSTA 2011: July 17-21 - Toronto, ON, Canada
•  Proc.(ACM DL): 1989-2010
◊  PODC: ACM SIGACT-SIGOPS Symp. on Principles of Distributed Computing
•  PODC 2011 (FCRC 2011 main conferences): June 4-11 - San Jose, CA, USA
•  Proc.(ACM DL): 1982-2010
◊  PPoPP: ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming
•  PPoPP 2011: Feb.12-16 - San Antonio, TX, USA
•  Proc.(ACM DL): 1990-2010
◊  PPPJ: Intl. Conf. on the Principles and Practice of Programming in Java
•  PPPJ 2011: Aug.24-26 - Kongens Lyngby, Denmark
•  Proc.(ACM DL): 2006-2010
◊  PRDC: IEEE Pacific Rim Intl. Symposium on Dependable Computing
•  PRDC 2011: Dec.12-14 - Pasadena, California, USA
•  Proc.(IEL): 2009, 2008, 2007, 2006, 2005, 2004, 2002, 2001, 2000, 1999
◊  QoSA: Intl. Conf. on the Quality of Software-Architectures
•  QoSA 2011 (part of CompArch 2011): June 20-24 - Boulder, Colorado, USA
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005
◊  QSIC: Intl. Conf. on Software Quality
•  QSIC 2011: July 13-14 - Madrid, Spain
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003,
♦  RISE: Intl. Workshop on Rapid Integration of Software Engineering
•  Proc.(LNCS): 2006, 2005, 2004
◊  SEFM: IEEE Intl. Conf. on Software Engineering and Formal Methods
•  SEFM 2011 : (end of November) - Montevideo, Uruguay
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003
◊  SERA: ACIS Intl. Conf. on Software Engineering Research, Management and Application
•  SERA 2011: (TBD)
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005
◊  SPLASH: ACM Intl. Conf. on Systems, Programming, Languages and Applications: Software for Humanity
•  SPLASH 2011: Oct.22-27 - Portland Oregon, USA
•  Proc.(ACM DL): OOPSLA 1986-2010
◊  SSIRI: IEEE Intl. Conf. on Secure Software Integration and Reliability Improvement
•  SSIRI 2011: June 27-29 - Jeju Island, South Korea
•  Proc.(IEL): 2010, 2009, 2008
◊  TACAS: Tools and Algorithms for the Construction and Analysis of Systems
•  TACAS 2011 (ETAPS 2011 main conferences): Mar.26 - Apr.3 - Saarbrucken, Germany
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995
◊  TAIC PART: Testing: Academic & Industrial Conf., Practice and Research Techniques
•  TAIC PART 2011 (co-located with ICST 2011): Mar.25 - Berlin, Germany
•  Proc.(IEL): 2009, 2008, 2007, 2006
◊  TAP: Intl. Conf. on Tests and Proofs
•  TAP 2011: Jun.30 - Jul.1 - Zurich
•  Proc.(LNCS): 2010, 2009, 2008, 2007
◊  TASE: IEEE & IFIP Intl. Symp. on Theoretical Aspects of Software Engineering
•  TASE 2011: Aug.29-31 - Xi'an, China
•  Proc.(IEL): 2010, 2009, 2008, 2007
♦  TESTCOM: IFIP Intl. Conf. on Testing of Communicating Systems
•  Proc.(LNCS): 2009 (w/ FATES), 2008 (w/ FATES), 2007 (w/ FATES), 2006 (w/ TC 6/WG 6.1), 2005 (w/ TC 6/WG 6.1), 2004, 2003
◊  VMCAI: Intl. Conf. on Verification, Model Checking, and Abstract Interpretation
•  VMCAI 2011: Jan.23-25 - Austin, Texas, USA
•  Proc.(LNCS): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002
◊  WCRE: Working Conf. on Reverse Engineering
•  WCRE 2011: Oct.17-21 - Isreal
•  Proc.(IEL): 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1993
Upcoming Event:
VMCAI 2011 (1/23-25)
ICONS 2011 (1/23-28)
PPoPP 2011 (2/12-16)
ISEC 2011 (2/23-27)
WOSP/SIPEW 2011 (3/14-16)
AOSD.11 (3/21-25)
ICST 2011 (3/21-25)
TAIC PART 2011 (3/25)
* TACAS 2011 (3/26-4/3)
ESOP 2011 (3/26-4/3)
FoSSaCS 2011 (3/26-4/3)
FASE 2011 (3/26-4/3)
EuroSys 2011 (4/10-13)
ECBS 2011 (4/27-29)
ICECCS 2011 (4/27-29)
* ICSE 2011 (5/21-28)
PODC 2011 (6/6-8)
Ada-Europe 2011 (6/20-14)
SSIRI 2011 (6/27-29)
QSIC 2011 (7/13-14)

Submission Deadline:
* CAV 2011(Jan.14,24)
CBSE 2011 (Jan.21)
COMPSAC 2011 (Jan.16,30)
ICSOFT 2011 (Feb.1)
* ISSTA 2011 (Feb.4)
ICPC 2011 (Jan.31,Feb.7)
TAP 2011 (Feb.4,11)
QoSA 2011 (Feb.18)
ICGSE 2011 (Feb.14,28)
* FSE 2011 (Mar.11)
ESEM 2011 (Mar.15)
TASE 2011(Mar.21,28)
ICFEM 2011 (Mar.31,Apr.7)
CONCUR 2011 (Apr.1,8)
SPLASH 2011 (Apr.8)
ICSM 2011 (Apr.8,15)
ATVA (?, middle April)
PPPJ 2011 (Apr.15,20)
SERA 2011 (May 1)
* ASE 2011 (Apr.25,May 9)
ISSRE 2011 (May 1,10)
ICSEA 2011 (May 20)
ATS 2011 (May 27)
PRDC 2011 (May 31)
SEFM 2011 (late May)
WCRE 2011 (June 20,27)
HASE (?, early July)
APSEC (?, early September)

Organization:
ACM SIGPLAN
IEEE: TCSE, TCDP, TCI, TCSC


Conference Proceedings Citation Index
Compendex Ei

Course

Advanced Topics in Software Engineering (Spring 2006) by Jeff (Yu) Lei, UTA
Software Testing and Analysis (Fall 2005) by Alessandro (Alex) Orso, Georgia Tech
Software Testing and Maintenance (Spring 2004) by Lori L. Pollock, UDEL
Advanced Topics in Software Testing (Fall 2001) by Atif M. Memon, UMD

Reseachers and Groups

•  MIT CSAIL: Michael D. Ernst (static/dynamic analysis, verification, testing), Amy Williams
•  Stanford U.: Dawson Engler (system-specific static analysis; implementation-level model checking)
•  UIUC:
•  Open System Laboratory: Gul Agha (simultaneous concrete and symbolic execution → concolic testing),

Chandrasekhar Boyapati (U. Michigan), Richard Carver(GMU), Colin Fidge (timestamp; Queensland University of Tech.), Cormac Flanagan(type checking; UCSC), Aarti Gupta(NEC Lab), Leonardo Mariani(U. Paderborn), Doron A. Peled(U. Warwick), Koushik Sen(concolic testing; UC. Berkeley), Scott Stoller (SUNYSB), Chao Wang (NEC Lab), Liqiang Wang (U. Wyoming), Tao Xie(NCSU),


Recent Readings

•  R. Agarwal, and S. D. Stoller,
"Run-Time Detection of Potential Deadlocks for Programs with Locks, Semaphores, and Condition Variables,"
in Proc. of PADTAD-IV, pp. 51-59, 2006.

•  J. Chen and S. MacDonald,
"Testing Concurrent Programs using Value Schedules,"
in Proc. of ASE'07, pp. 313-322, 2007.

•  J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pasareanu, Robby, H. Zheng,
"Bandera: Extracting Finite-state Models from Java Source Code,"
in Proc. of ICSE 2000, pp. 439-448, 2000.

•  N. Walkinshaw, K. Bogdanov, S. Ali, and M. Holcombe,
"Automated Discovery of State Transitions and Their Functions in Source Code,"
in Software Testing, Verification and Reliability (STVR), Volume 18, Issue 2, pp. 99-121, June 2008.

•  A. Ho, S. Smith, and S. Hand,
"On Deadlock, Livelock, and Forward Progress,"
in Technical Report, Computer Laboratory, University of Cambridge, U.K, May 2005.

•  M. Musuvathi, S. Qadeer, and T. Ball,
"CHESS: A Systematic Testing Tool for Concurrent Software,"
in Technical Report, Microsoft Research, November 2007.



Advice Collection


Copyright © 2006-11 Che-Sheng Lin       All rights reserved.       Last Updated: 2011/1/20