Final course grades looked a lot like the final exam marks. Overall average: 79.6%. CS447: 72.6%; CS647: 72.6%; ECE453: 73.8%; SE465: 84.8%. I reweighted an assignment to 5% and divided the resulting grade by 95% if the anomaly was much lower than anything else, unless your adjusted grade would be greater than 80%.
The average mark on the final exam was 81.2%. The lowest mark was 50%, and there were a couple of perfect exams. Here are per-class averages: CS447, 78.4%; CS647, 72.7%; ECE453, 73.8%; SE465, 88.1%. I don't anticipate any total grades below 50%, but there may be some below 60%.
Here are Zarrin's slides from the review tutorial.
Here are my solutions to A2 questions 2, 3 and 5. [pdf]. I intend to add solutions for Q6 eventually (and perhaps Q4, if anyone wants). Please let me know of any errors.
I've posted the course project. I will post clarifications as necessary. You may do the project in groups of up to 4. Part 2: I mean that you pick methods A and B from the classes I listed, plus classes C and D (your choice). Also, you only need one case where each of CACC and AUC improve coverage; you can pick this case from any of A, B, C or D. You may ignore exceptions. Edge coverage is on a intra-method level: it's hard to get all edges in the presence of virtual dispatch. Cover inner classes. Use coupling-AUC across methods and CACC within a method. If your tests become trivial because you don't test private methods with JUnit, use reflection to test them. Find 3 mutants total (not 3 per method).
I am allowing one more grace day for you to submit Assignment 2. Here is the deal: if you use 0 or 1 grace days, I will add 5% to your assignment 2 mark. If you use 2 grace days, then you get no extra marks on assignment 2. I compute grace days using both A1 and A2 submission times.
Question 6 is now a bonus question. Here is Assignment 2 [pdf]. It is due on March 9. Amendment: for question 5, there don't appear to be any "don't care" values. Use the
TestPat program from Chapter 2 instead. You may consider just
pat() for reachability purposes. Source for TestPat.
Assignment 1 is now available [pdf]. Some notes.
build.xml. The main class you want is
The second tutorial is on Monday, February 2 or on Friday, February 6, depending on whether you're in SE465 or not. This tutorial will discuss JUnit and review material for the midterm. In general, I will announce tutorials ahead of time in class and on this web page.
Patrick's office hours will be Thursdays 2:00-3:00, not Wednesdays.
Here is the syllabus for this class. The notes will follow shortly.
The textbook for the class will be:
Paul Ammann and Jeff Offutt. Introduction to Software Testing. Cambridge University Press, 2008.
This book is available on amazon.ca for $62. I also strongly recommend the following book:
Andreas Zeller. Why Programs Fail: a Guide to Systematic Debugging. Morgan Kaufmann, 2005.
The Zeller book is quite practical and I expect that it will be useful to you in the future as well.
Several students have asked me if the tutorials and labs are mandatory. They are not mandatory for this course.