CSC 410, Fall 2018
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] [pdf]
Assertions
- D. S. Rosenblum, "A Practical Approach to Programming with Assertions", IEEE
Transactions on Software Engineering, 29 (4), January 1995,
pp. 19-31. [pdf]
Logic review
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]
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.
- [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]
SAT/SMT and Z3
[Recommended] SAT/SMT tutorial
[Recommended] S. Malik and L. Zhang. "Boolean Satisfiability: From Theoretical Hardness to Practical Success"
[Recommended] D. Kroening and O. Strichman. Decision Procedures (Chapter 2)
Z3 tutorial
L. De Moura and N. Bjorner. "Satisfiability Modulo Theories: Introduction and Applications"
Weakest preconditions
-
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]
Dafny
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.
-
[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.
-
[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.
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.
-
[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.
Marsha Chechik
Last modified on September 5, 2018.