software testing and assurance Flashcards
Software Testing - Definition and Scope
finds defects against quality
Software Testing - Objectives
find bugs fast
match req spec
validate
make damn good test cases
White-Box / Structural Testing
dev who knows structure tests it
e.g.
control flow testing
cyclomatic complexity
data flow testing
Black-Box / Behavioral Testing
test around func. reqs
edge-case testing
test w diff input combines
finite state machine based (what)
Finite State Machine
A finite state machine is a model to describe the dynamic behaviors of an object over time
each object is treated as an isolated entity that communicates with the rest of the world by detecting events and responding to them
Usage-Based Testing
test as close to ops environ as possible
inputs are assigned a prob distribution
System Testing types
AP FAP Sys Test
Functional Testing ,
Performance Testing ,
Pilot Testing,
Acceptance Testing,
Installation Testing
Types of Performance Testing
stress
volume
config
compatibility
security,
timing
environmental
quality,
recovery,
human factors
Software testing
assert(expected == actual)
Terminology
*Error: human
*Fault: software due to human error
*Failure: pure software fuckup
*Verification: find fault w reqspec
*Validation: find fault w users
*Acceptance Testing: Validation w user environ
Testing vs Debugging
Testing:
Main goal – Cause failures
Process – Predefined, controlled
Outcome – Predictable
Debugging:
Main goal – Locate, correct faults
Process – Iterative
Outcome – Not predictable
Goals of testing
main goal is to fuckup
do what to do
not do what not do do
there’s always a fuckup
Principles of testing
complete testing is a pipe dream
it’s hard, preventative, risk based, planned
Each level of testing is:
*Baselined for the next level
*Dependent on the lower level
*Ineffective for lower level fault detection
System test plan
describes testing acts
identifies
stuff to test
how to test
who to tests
risks
costbudgetschedulecost
deliverables
environ needs
staff/training needs
approvals