CSC 410, Fall 2016
Reading List (updated throughout the term)
Books
- We will be using several chapters of the book
by Mario Pezze and Michal Young: "Software Testing and Analysis:
Process, Principles, and Techniques". [PY'07]
- (recommended) The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks Jr ; Addison-Wesley Pub Co
- (recommended)
Fundamentals of Software Engineering by Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli; Prentice Hall
Introduction
-
Chapter 1 of [PY'07] - posted on Piazza
Assertions
- D. S. Rosenblum, "A Practical Approach to Programming with Assertions", IEEE
Transactions on Software Engineering, 29 (4), January 1995,
pp. 19-31. [pdf]
JML and design by contract
- "Applying Design by Contract,"
B. Meyer, IEEE Computer, October 1992, pp. 40-51.
[pdf]
- Gary T. Leavens and Yoonsik Cheon. "Design by Contract with JML",
January 2006. [pdf]
- Lilian Burdy, Yoonsik Cheon, David R. Cok, Michael D. Ernst,
Joseph R. Kiniry, Gary T. Leavens, K. Rustan M. Leino and Eric Poll.
"An overview of JML tools and applications", in International Journal on Software Tools for Technology Transfer, volume 7, number 3, pages 212-232, June 2005.[pdf]
Weakest preconditions and ESC/Java
-
C.A.R. Hoare, "An axiomatic basis for computer programming", Communications
of the ACM 12(10:576-580.[pdf]
-
Edsger W. Dijkstra, "Guarded commands, nondeterminacy and formal derivation
of programs", Communications of the ACM 18(8):453-457.
[pdf]
- Edsger W. Dijkstra, "A discipline of programming" Prentice-Hall, c1976. link
- [Recommended] [PY07] 7.3, 7.4 [pdf]
- `Extended Static Checking: a Ten-Year Perspective.'' K.R.M. Leino (In proceedings of the Schloss Dagstuhl tenth-anniversary conference, edited by Reinhard Wilhelm, volume 2000 of Springer LNCS, 2001.) [pdf]
Dafny
Symbolic execution
- [Required] [PY07] 7.1, 7.2 [pdf]
- [Required] L. A. Clarke and D. J. Richardson, "Applications of Symbolic Evaluation," Journal of Systems and Software, 5 (1), January 1985, pp.15-35. [pdf]
- [Recommended] Cadar, Cristian, and Koushik Sen. "Symbolic execution for software testing: three decades later." Communications of the ACM 56.2 (2013): 82-90. [pdf]
- [Recommended] Cadar, Cristian, Daniel Dunbar, and Dawson R. Engler. "KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs." [pdf] OSDI. Vol. 8. 2008.
Dataflow analysis
[Required] [PY07] Chapter 6 [pdf]
Automated Debugging
-
[Required] Simplifying and Isolating Failure-Inducing Input.
Andreas Zeller and Ralf Hildebrandt;
IEEE Transactions on Software Engineering 28(2), February 2002, pp. 183-200.
Available
here
-
[Recommended] Yesterday, my program worked. Today, it does not. Why? Andreas Zeller;
Proc. ESEC/FSE 99, Toulouse, France, September 1999,
Vol. 1687 of LNCS, pp. 253-267.
Available
here
-
[Recommended]``Tracking Down Software Bugs Using Automatic Anomaly Detection,''
S. Hangal and M. S. Lam
Proceedings of the International Conference on Software Engineering,
May 2002.
here
Testing
- [Recommended] H. Zhu, P. A. V. Hall, and J. H. R. May, "Software Unit Test Coverage
and Adequacy, ACM Computing Surveys, 29 (4), December
1997, pp. 366-427. [pdf]
- [Required] Chapters 9-10, 12-13, 16, 22 (RegressionTesting) of [PY'07]
- [Required] TestPlan (p. 463 of [PY'07])
- [Recommended] G. Rothermel and M. J. Harrold, "Analyzing Regression Test Selection Techniques," IEEE Transactions on Software Engineering, 22 (8), August 1996, pp. 529-551.[pdf]
Concolic Testing
-
[Required] P. Godefroid, N. Klarlund, K. Sen. "DART: Directed
Automated Random Testing", Proceedings of SIGPLAN 2005 Conference on
Programming Language Design and Implementation
(PLDI'05), June 2005. [pdf]
-
[Required] K. Sen, D. Marinov, G. Agha.
"CUTE: A Concolic Unit Testing Engine for C",
Proceedings of ACM SIGSOFT Symposium on the Foundations of
Software Engineering (ESEC/FSE 2005), Lisbon, Portugal, September 2005.
[pdf]
-
[Recommended] R. Majumdar and K. Sen. "Hybrid Concolic Testing". In Proceedings
of International Conference on Software Engienering (ICSE'07),
May 2007.
[pdf]
Invariant generation
-
[Required] ``Dynamically discovering likely program invariants to support program evolution''
by Michael D. Ernst, Jake Cockrell, William G. Griswold, and David Notkin.
IEEE Transactions on Software Engineering, vol. 27, no. 2, Feb. 2001, pp. 1-25.
Available
here
-
[Recommended] ``Automatic generation of program specifications''
by Jeremy W. Nimmer and Michael D. Ernst.
In ISSTA 2002, Proceedings of the 2002 International Symposium on Software Testing and Analysis, (Rome, Italy), July 22-24, 2002, pp.
232-242.
Available
here
Marsha Chechik
Last modified on November 9, 2016.