CSC 481                                                 Spring 2002

02/21/02                                                                 Midterm Exam                                       Test Form A

 

Name:

 

Instructions:

    Answer all questions in the answer sheet provided. On Multiple Choice, choose the ONE BEST ANSWER.

    Remember to put the letter of your test form on the top of your answer sheet.

    Hand in Test, Answer Sheet, and Help Sheets, all with your name.

 

Multiple Choice (3 points each)

 

1. Which of the following is true about program testing:

A)     When tests are no longer finding errors, you can be confident that customers will not find errors.

B)      A test plan should include testing all possible combinations of paths that a program could follow.

C)      Only can reveal the presence of errors, cannot show their absence.

D)      All of the above

E)       None of the above

 

2. Which of the following is true about planning verification and validation?:

A)     It is generally a waste of effort to create detailed plans since the specification is likely to change

B)      Planning should start early in the development process

C)      A validation plan should not be changed after it is created, to discourage lobbying by developers for plan changes

D)      Only testing needs to be planned, not inspections

E)       All of the above

F)       None of the above

 

3. Which of the following is NOT and advantage of doing daily system “builds”?

A)     component interaction problems tend to be found sooner than otherwise

B)      encourages thorough unit testing by developers because problems are very visible

C)      easier version management

D)      All of the above

 

4. When using a version management tool, what happens if somebody attempts to check out something (such as a code module) that has already been checked out?

A)     the person who has checked it out is messaged with an indication that the file is needed

B)      access is granted to both people

C)      the second person cannot check out the file

D)      All of the above

E)       None of the above

 

 

True/False  - If false, explain why.  (3 points each)

 

5. The best way to validate non-functional requirements is via formal design inspections.

 

6. In a program (code) inspection, focus should be on the detection of errors, not on correcting them.

 

7. It is crucial for the success of program code inspections for participants to prepare in advance (by reading code).

 

8. When determining whether a proposed change should be made, the crucial factor in the decision is whether it is the best technical approach.

 

9. The decision to distribute a new release may be impacted by the quality of the competitions’ products

 

10. System building tools (among other things) keep track of which modules are dependent on which other modules, so only those modules that have to be recompiled are recompiled.

 

 

 

Completion (fill in the blank) (mostly key terms (not all of which are a single word))  (3 points each)

 

11. A(n) ________ test is a test done to ensure that changes have not created defects in previously working code. A set of test cases that have been previously found to be handled successfully are re-run to ensure that they still work.

 

12. The ________ software development process is a new approach in which inspections replace unit testing. A formal specification is developed, the specification is transformed into code using methods known to be correct, and mathematical arguments are made that the transformation from specification to code was correct.

 

13. ________ is an approach to testing in which the test cases are based on the system specification; no attempt is made to look at the code to see what it is doing.

 

14. A(n) ________ is a group of related values (say, prospective inputs) for which a program will behave the same way for each member of the group. Identifying these can aid in identifying test cases to do.

 

15. A(n) ________ is a tool that can be used to help determine how well your program has been tested – by reporting how many times each program statement has been executed during running of your test cases.

 

16. In ________, the load on a system (frequently simulated number of users) is gradually increased until it is beyond the system’s maximum design load handling capabilities, in order to determine at what level of load the system will fail, and whether the system will fail gracefully or not.

 

17.  A means for version management tools to save multiple versions of files without using excess disk space, ________ keeps the full copy of the latest version, and lists of revisions that were made in moving from version to version.

 

 

Short Answer

(5 points per question except where specified otherwise)

 

(4 points)

18. Why is check in / check out capabilities an important part of version management systems?

 

19. Why are code inspections a valuable part of software verification? What advantages are there to code inspections over dynamic program testing?

 

20. How can the problems localizing errors during integration testing be limited?

 

(4 points)

21. Why might code inspections aid in the elimination of errors in the interface between components?

 

(4 points)

22. Why does inheritance make planning and designing tests more challenging?

 

23. Why is it desirable to have software tools involved in the change management system for your project?

 

24. Why is it beneficial if comments in changed code identify the change # for which the modifications were done?

 

 

Problems  (points as specified)

 

(9 points)

26. A manager decides to use the reports of program inspections as an input to the staff appraisal process. These reports show who made and who discovered program errors. What difference might this make in the inspection process (at least 3 things that might happen)?

 

(8 points)

27. To calculate tuition due, students taking 1-11 credits are part time, and are charged $500 per credit. Students taking from 12-21 credits are full time, and are charged $5000 flat tuition regardless of credits. Other numbers of credits are invalid. What values for number of credits should be used to test the program? Explain.