2/4/2004 TESTING OOPLs - a suggested list of readings B. Structural Testing Techniques B.2. papers on DF testing criteria [RW1985] S. Rapps and E.J. Weyuker, "Selecting software test data using dataflow information". IEEE Transactions on Software Engineering, April 1985. A classical paper to propose a family of data flow based testing criteria. Major part of the paper is to prove the partial order (inclusion) in the family. [FW1988] P.G.Frankl, E.J. Weyuker, "An Applicable Family of Data Flow Testing Criteria", TSE Oct 1988. Extension to the work in [RW1985] [CPRZ1989] A Formal Evaluation of Data Flow Path Selection Criteria L. A. Clarke, A. Podgurski, D. J. Richardson, and S. J. Zeil citation information TSE, Nov 1989. This is one more paper on the general discussion and comparison in the terms of subsumption among the data flow testing strategies, and proposes some improvement o the existing test strategies because of their inability to subsume some basic criteria. [PC1990] A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance Andy Podgurski, and Lori.A.Clarke IEEE Trans. on Software Engineering Sept.1990. This paper presents a formal, general model of program dependences and their relationship with the semantic dependences. The paper presents a formal general model of program dependences. It proposes two generalizations of control and data dependencies, called weak and strong syntactic dependence and shows that the weak syntactic dependency is necessary for the semantic dependence. And the use of the dependencies is summarized and some new use is suggested in the paper. B.3. criteria comparison READ NEXT TWO TOGETHER, SAME WEEK: [Wey1986] Axiomatizing Software Test Data Adequacy Elaine J. Weyuker TSE Dec.1986. The paper proposed a general axiomatic theory of test data adequacy, and five previously proposed adequacy criteria (statement, branch, path, mutation test, modified size) are examined to see which of the axioms are satisfied. The axioms are consistent but only two of the criteria satisfy all axioms. [PK1990] Adequate testing and object-oriented programming. only hard copy D. Perry and G. Kaiser. B.4. class-based testing in OOPLs READ NEXT TWO TOGETHER [HR1994] Performing Data Flow Testing on Classes Mary Jean Harrold, Gregg Rothermel Proceedings of the ACM SIGSOFT '94 Symposium on the Foundations of Software Engineering ,1994 [SP2000] OMEN: A strategy for testing object-oriented software, Amie L. Souter,Lori L. Pollock, PASTE'00?, read previously in prolangs [BOP2000] Automated Testing of Classes Ugo Buy,Alessandro Orso, Mauro Pezze ISSTA 2000 B.5. polymorphism testing in OOPLs B.6 Aspects [Zha2002] "Data Flow Testing of Aspects" Jianjun Zhao Technical-Report SE-136-26, Information Processing Society of Japan (IPSJ) 2002. C. Structure-based Test Data Generation C.1. Symbolic execution CLARKE, L. A System to Generate Test Data and Symbolically Execute Programs. IEEE Transactions on Software Engineering SE-2, 3 (September 1976), 215-222. Only hard copy available. L. Clarke, "Automatic Test Data Selection Techniques", Infotech State of the Art Report, Sept 1979. R. Bodik and M.L. Soffa, "Infeasible Paths", ?? [GMS_FSE_1998] "Automated Test Data Generation Using An Iterative Relaxation Method", N. Gupta, N. Mathur, A.P. Soffa, M.L. Foundations of Software Engineering 1998. review The paper is to generate the test data to cover the given path, using iterative relaxation method to iteratively refine the input data.According to the current input data(the first one can be randomly generated),the linear arithmetic representation of the function is derived for each branch condition in terms of the input variables, and thus get the predicate residual for each branch.By solving the linear constraints made up of the predicate residuals, it can be solved how much each variable can be changed.Thus the test data can be refined. G. Snelting, "Combining Slicing and Constraint Solving for Validation of Measurement Software", SAS'96, pp 332-348. C.2. dynamic methods FERGUSON, R., AND KOREL, B. The Chaining Approach for Software Test Data Generation". ACM Transactions on Software Engineering and Methodology 5, 1 (January 1996), 63-86. Bogdan Korel, "Automated Software Test Data Generation" IEEE Trans on Software Engineering August 1990 [ECGN2001] Dynamically discovering likely program invariants to support program evolution Michael D. Ernst, Jake Cockrell, William G. Griswold, and David Notkin. IEEE Transactions on Software Engineering Feb. 2001 D. program slicing READ NEXT 2 PAPERS TOGETHER [LH_ICSM_1998] Slicing Objects Using System Dependence Graphs Donglin Liang, Mary Jean Harrold ICSM 1998. S. Horwitz, T. Reps, D. Binkley, "Interproceudral slicing using dependence graphs", ACM TOPLAS, January 1990. Jianjun Zhao, "Slicing Aspect-oriented Software", Proceedings of the IEEE workshop on program comprehension, June 2002. ONE OF THE NEXT 2: Jens Krinke. Evaluating context-sensitive slicing and chopping. In International Conference on Software Maintenance, pages 22-31, 2002. citeseer.nj.nec.com/krinke02evaluating.html RR95 Thomas Reps and Genevieve Rosay. Precise interprocedural chopping. In Proceedings of the 3rd ACM Symposium on the Foundations of Software Engineering, pages 41-52, 1995. citeseer.nj.nec.com/context/284439/0 chopping by Jens Krinke E. Regression Testing A Safe, Efficient Regression Test Selection Technique. Gregg Rothermel and Mary Jean Harrold. ACM Transactions on Software Engineering and Methodology, vol. 6, no. 2, pp. 173-210, April 1997. Landmark paper in selective regression testing. MJ Harrold, J. Jones, T. Li, D. Liang, A. Orso, M. Pennings, S. Sinha, S. Spoon, A. Gujarathi, "Regression Test Selection for Java Software", OOPSLA 2001. F. Dealing with concurrent programs B. Long and D. Hoffman, "Tool Support for testing concurrent Java components", IEEE TSE, vol 29, no 6, June 2003. Jianjun Zhao, Slicing concurrent Java programs, Proceedings of the 7th IEEE Intl Workhsp on Program Comprehension, 1999. Jens Krinke, "Static Slicing of threaded Programs",PASTE98 G. Model checking J. Corbett, M. Dwyer, J. Hatcliff, S. Laubach, C. Pasareanu, Robby, H. Zheng, "Bandera: Extracting finite-state Models from Java Source Code", ICSE 2000. J. Hatcliff and M. Dwyer, "Using the Bandera Tool Set to Model-check Properties of Concurrent Java Software", invited tutorial paper at Concur 2001.