Quiz 3 content/topics and preparation
Quiz 3 will focus on design and on the theory portion of testing (everything prior to bash), including
the material discussed in lectures up to and including Wed. Oct. 22nd.
The quiz will be a 50-minute paper-and-pencil quiz, closed book and closed notes, no electronics permitted,
but you are permitted one double-sided 8.5x11" 'cheat sheet'.
(This does not have to be hand-written.)
There will be two equally weighted questions, one on design and one on testing.
Since the questions can be somewhat open-ended, be sure not to spend more than about half your time on either question on your first pass through the quiz.
(Then if you have time left at the end you can go back and continue/expand either answer as desired.)
- Design
- Be sure you understand:
- the key decomposition criteria discussed (different ways to
approach decomposing a problem) and some of the criteria for comparing them (load balancing,
coupling, cohesion)
- the information we would wish to capture in design documents, including supporting diagram
types like DFDs, ERDs, sequence diagrams, state diagrams, algorithms/pseudo-code, etc.
- some of the different design goals discussed (design for re-use, design for testability)
- Common question styles related to design include things like:
- Given a system description, suggest a preliminary high level design/decomposition
and outline the strengths and weaknesses you see in your design/decomposition.
- For the system description below, provide a context diagram (top level DFD) and
the next layer DFD showing it decomposed into key subsystems/modules.
- Either of the two previous questions, but specifically for your particular team's project this semester.
- Testing
- Be sure you understand:
- the "Big-V" planning approach for testing,
- the idea of heirarchical layers of testing (unit testing, module testing, system testing, acceptance testing),
- the concepts of controllability and observability as they relate to software testing,
- the idea of 'closed box' vs 'glass box' tests,
- the uses of stress testing and back-to-back testing,
- the use of stubs and drivers to test components in isolation,
- approaches to developing test suites for a specific set of requirements,
- the reasons for automating testing and the issues associated with attempting automation.
- Common questions related to testing theory include things like:
- Given the following set of requirements, outline a specific set of test cases you would
recommend to apply to the final product and justify your choice of cases.
- Given the following set of requirements and test cases, critique the test cases:
how thoroughly/correctly do they test against the requirements provided?
- Given a product or component description, discuss the testing challenges that are unique
to that item (i.e. beyond just the 'normal' complexities of testing) and suggest potential
solutions or approaches to address them.
- The same as the previous question, but specifically targetting your team's project this semester.