CS4472 Q1 Readings and Questions for Fall 2015

These are the readings from the first semester quarter, that led to the first quiz.

  1. For Tuesday 15 Sept 2015: Read Google's Innovation Factory: Testing, Culture, and Infrastructure, Copeland, P., Software Testing, Verification and Validation (ICST), 2010 Third International Conference on, 6-10 April 2010, Page(s): 11 - 14. [[05477104.pdf]] and answer the following reaction questions:
    1. Why did they want to improve the testing process at Google?
    2. What approaches did they take to improve the testing process (list all)?
    3. Which appoach sounds most interesting to you? Why?
    Note: this reading is available to Western students through the campus IEEE subscription. To access it from a machine that does not have a Western IP address, you need to connect to it via the library proxy server -- see Off-Campus Access feature at www.lib.uwo.ca web page. If this does not work for you, consult Login Help's FAQ and online chat or drop by the information desk of an actual campus library.
  2. For Thursday 17 Sept 2015: Read Introducing Combinatorial Testing in a Large Organization, Hagar, J.D. ; Wissink, T.L. ; Kuhn, D.R. ; Kacker, R.N., Computer (Volume:48 , Issue: 4 ), Page(s): 64 - 72, Apr. 2015 and answer the following reaction questions: Be sure and note the three page explanation of combinatorial testing embedded in the larger article.
  3. For Tuesday 22 Sept 2015: Read Software Debugging, Testing, and Verification, Brent Hailpern and Padmanabhan Santhanam, RC22220 (W0110-083) October 31, 2001, IBM Research Report (unlike the previous articles, this one comes from CiteseerX which doesn't require a special subscription to access) and answer the following reaction questions:
    1. Everyone likes to automate software development. The authors of this paper look at the related fields of software debugging, testing, and verification. What do they see as the problems in further automating these activities? What would they most like to have to make futher progress, but don't currently have in typical software development organizations?
    2. While some aspects of automation have run into significant difficulties, some have been successful. Which aspects discussed in this paper have been most successful? Why?
    Notice the difference between IBM and Google on these matters.
  4. For Thursday 24 Sept 2015, read Hints on Test Data Selection: Help for the Practicing Programmer, DeMillo, R.A., Lipton, R.J., and Sayward, F.G., Computer (Volume:11 , Issue: 4 ), April 1978, Page(s): 34 - 41. [[01646911.pdf]]. While this 1978 paper looks a bit dated, it is still a nice introduction to why people are interested in mutation testing as a way to evaluate how good a job a test suite does. Answer the following reaction questions: Note, the coding examples in this paper are written in Fortran (I don't expect you to know Fortran, although it is still very popular as indicated in this yahoo answers `Why fortran is still much popular in scientific computing?'). It is rather similar to assembly code as it was one of the first programming languages people designed that was widely used. The first thing to know is that when it was developed, lower case character keyboards was advanced input technology, so it is written in all caps. The second thing to know is that there is no call stack (no recursion -- return address was stored in a hidden global variable associated with the subroutine called, if it called itself it overwrote the return and would cycle in an infinite loop when it returned). A(R) is the array A being indexed by the value of the variable R (parenthesis were used for this rather than square brackets). Similarly comparison operators were .GT. for greater than, .GE. for greater than or equal, etc (again, limited character set). DO is the keyword for a for loop, so DO 3 I = 2, N, 1 is the same as for (I=2, I <= N, I+=1) where 3 indicates the label of the statement that is at the end of the loop. Unlike modern assemblers, in Fortran, labels were always numbers (like in C). The DO statement is the only one that has anything like block structure, so people didn't bother with indentation. IF is always a one liner. GOTO, STOP, =, READ, and PRINT do much what you would expect. The FORMAT lines are not executed, but instead explain how the READ and PRINTs work. The format 4I10 is reading four integers of length max 10. *RIGHT ANGLED TRIANGLE* is just printing the string (I think 1H was a page feed). Oh, and all the parameters are pass by reference (functions returning values were also something yet to be invented). The character C introduced a line that was a comment. Arrays were indexed from 1 rather than 0.