Case Study:
Software Inspection Checklist
Code Review
Checklist:-
Data Faults
|
Are all variables properly defined
with meaningful, consistent, and clear names?
Do all assigned variables have proper type
consistency or casting?
Have all constants been named?
Is there any chance for buffer
overflow?
|
Control Faults
|
Are all loops, branches, and logic constructs
complete, correct, and properly nested?
Are the most common cases tested first in IF-
-ELSEIF chains?
Are all cases covered in an IF- -ELSEIF or CASE block,
including ELSE or DEFAULT clauses?
Does
every case statement have a default?
Are loop termination conditions obvious and
invariably achievable?
Are
indexes or subscripts properly initialized, just prior to the loop?
Can any statements that are enclosed within loops be
placed outside the loops?
Does the code in the loop avoid manipulating the
index variable or using it upon exit from the loop?
|
Input/ Output Faults
|
Are there any redundant or unused
variables?
Are all output variables assigned a
value before they are output?
Can unexpected inputs cause abnormal
termination of the function?
|
Interface Faults
|
Do all functions and method calls have
correct number of parameters and in a right order?
Do formal and actual parameter types
match?
Are the parameters in right order?
|
Storage Management Faults
|
Are indexes, pointers, and subscripts tested against
array, record, or file bounds?
Are imported data and input arguments tested for
validity and completeness?
Are the correct data operated on in each statement?
Is every memory allocated deallocated?
|
Exception Management Faults
|
Have all possible error conditions
been taken into account?
|
Code Structure
|
Does the code completely and correctly implement the
design?
Does the code conform to any pertinent coding standards?
Is the code well-structured, consistent in style,
and consistently formatted?
Are there any uncalled or unneeded procedures or any
unreachable code?
Are
there any leftover stubs or test routines in the code?
Can any code be replaced by calls to external
reusable components or library functions?
Are
there any blocks of repeated code that could be condensed into a single
procedure?
|
Requirement
Specification Checklist:-
1. Do requirements
exhibit a clear distinction between functions and data?
2. Do requirements
define all the information to be displayed to users?
3. Do requirements
address system and user response to error conditions?
4. Is each
requirement stated clearly, concisely, and unambiguously?
5. Is each
requirement testable?
6. Are there
ambiguous requirements?
7. Are there
conflicting requirements?
8. Are there areas
not addressed in the SRS that need to be?
9. Are performance
requirements (such as response time, data storage
requirements) stated?
10. If the
requirements involve complex decision chains, are they expressed in
a form that
facilitates comprehension (i.e., decision tables, decision trees,
etc.)?
11. Have requirements
for performing software upgrades been specified?
12. Are there
requirements that contain an unnecessary level of design detail?
13. Have the
real-time constraints been specified in sufficient detail?
14. Has the precision
and accuracy of calculations been specified?
15. Is it possible to
develop a thorough set of tests based on the information
contained in the SRS?
If not, what information is missing?
16. Have Assumptions
and Dependencies been clearly stated?
17. Does the document
contain all the information called out in the outline for
the
SRS?
|
No comments:
Post a Comment