*******************
* on Tuesday, December 5, during class, we'll do a random draw
for presentation/demonstration order in Wednesday, December 6th's
labs
* IF you have a client who would like attend, and they have time
constraints, you need to let me know that by classtime on
Tuesday December 5!
*******************
* ASIDE/REMINDER:
verification - "the process of evaluating software to determine whether
the products of a given development phase satisfy the conditions
imposed at the start of that phase"
validation - "the process of evaluating software during or at the
end of the development process to determine whether it satisfies
specified requirements"
...or, if you prefer: [I THINK THIS GETS THE DISTINCTION
ACROSS BETTER...]
verification ensures "you built it right", it meets the specification;
validation ensures "you built the right thing", it actually meets
the user's needs, it meets the requirements (and that the
specification were correct in the first place)
* which of these better characterizes:
* unit testing?
* Jalote, Ch. 8, 8.1.4, p. 229: VERIFICATION
* acceptance testing?
* Jalote, Ch. 8, 8.1.4., p. 230: VALIDATION
* requirements review?
* Jalote, Ch. 3, 3.6, p. 65: VALIDATION
* code inspection?
* Jalote, Ch. 7, 7.5, p. 210: VERIFICATION
* let's also poke at
black box testing
white box testing
* let's say you design your test cases trying to obtain
complete statement coverage.
...is that more accurately considered black box or
white box testing?
* it is considered to be WHITE BOX testing --
you are using the structure of the code to
determine test cases
* ...trying to obtain complete branch coverage?
...is that more accurately considered black box or
white box testing?
* it is considered to be WHITE BOX testing --
you are using the structure of the code to
determine test cases
* ...trying to determine what the different categories of
input data are, and making sure you include test cases
with data from each such category?
...is that more accurately considered black box or
white box testing?
* it is considered to be BLACK BOX testing --
when you can devise test cases without
considering the actual structure of the
software under test
* there's also STATE-based testing --
when the behavior of a system depends
on its state, you might want to consider test
cases built considering that state;
...sometimes considered to be GRAY-box testing!
* examples of state-based testing criteria:
* all-transitions coverage - every edge in the
state diagram is exercised
* all transition pair - test cases must execute
all pairs o ADJACENT transitions
(incoming and outcoming transitions in a state)
* transition tree coverage - test cases must execute
all simple paths
* pair-wise testing - trying to uncover multi-modal faults,
when a COMBINATION of inputs has an issue;
* consider a few METRICS, then:
* note that defects are often LOGGED in software
development;
* since high reliability is desired,
MTTF - mean-time to failure - is often tracked, also
* also measured, as a measure of efficiency rather thsn
reliability...
DRE - defect removal efficiency
* measured over time, even after software delivered
* CAN use to help determine/suggest which quality control
activities are effective