comp 354
Terms
undefined, object
copy deck
- Integration testing
- testing the entire system once the subsystems have been integrated
- Waht are the 4 stages of testing during development?
-
1- unit testing
2- Mudule Testing
3- Subsystem testing
4- Integration testing - Bottom up testing (dis)
-
- delays detection of high-level errors
- more costly to fix
-additional cost of writing drivers -
R-W-I
general rules -
1. teams prepare in advance
2. meetings are short
3. a moderator there to keep on topic
4. author only answers the questions asked otherwise does not talk -
What is security and stress testing?
aka overload testing -
-testing the system for different type of abnormal situations, try to penetrate the system (hacking)
-check the capability of the system to perform, done after integration testing under "overloaded" conditions
ex. full tables, memory, -
What is the critieria for the modifies path testing?
McCabe complexity -
1. every brach must be executed at least once
2. at least v distinct paths must be executed - What is Dynamic Verification?
- Experimenting with the behaviour of a product to see whether it performs as expected (ex. testing)
- What is statistics driven testing?
- These tests are run to convince the client that the software is working by running typical applications. Results are often statistical.
- validation
-
Does the product satisfy the users needs?
"building the right product" - Testing: def, aim
-
def: verifying the quality of correctness
Aim: to discover the presence of errors
Main problem: Testing can never be complete - Whatis regression testing?
-
testing old features again when new features are added or changes are made; to make sure you fully understood the changes to be made and did not impact parts of the system supposedly isolated from the changes
regression is degredation in level of correctness - What is Testing for Robustness?
- testing the system with unexpected situations like wrong commands
- What must be verified?
- Everything: correctness, performance, reliability, portability, maintainability
- When do you stop testing?
-
- stop when all tests succeed
-stop when the cost of testing exceeds the cost of shipping with errors
- What is structure driven testing?
- Construct tests to cover as much of the logical structure of the program as possible. A test coverage analyzer is a tool that helps to ensure full coverage.
- Top down testing- def'n
-
test subsystems, then modules, then units
- need a stub (prototype) for each non-completed module or unit
- What are the major components of a test plan?
-
1. description of major pahses of testing
2. objectives
3. testing schedule
4. a description of the relationship between the test plan and other project plans
5. description of how test cases were designed -
R-W-I
Common features -
1. a small group of people
2. the person responsible for the document
3. one person records the discussion
4. NO manager/boss present (inhibit discussion)
5. errors are recorded nut not corrected - Unit testing
-
testing an individual unit or basic component
ex. testing a function SQRT - whatis v=e-n+2?
-
v= McCabe's complexity number
e= Number of edges
n= number of nodes - What is requirement driven testing?
- Develop a test case matrix (requirements vs. tests) to insure that each requirement undergoes at least one test.
- What is a stub?
- a stub simulates the behaviour of teh module/unit; it may do nothing/ may always exhibit the same default behaviour; may only handle those cases needed for tests
- What is acceptance testing?
- testing the real data for the customer to satisfy the customer that the system meets the requirements in customer environments
- What is static verification
-
Analyzing the product to deduce its correct operation asa logical consequance of the definition (document)
eg. reviews, walkthroughs, inspections - top-down testing (dis)
-
- not so easy to devise tests at this level
-additional costs of implemeting stubs - Bottom-up testing (adv)
-
- every component is tested before integration into a larger component
- makes location of errors easier since we first assume it is in the integration/interaction of subcomponents rather than within the subcomponents - Bottom-up testing (def)
-
test units, then modules then subsystems
-need a driver to supply necessary input, output, data structures to test the unit, module subsystem - Reviews, Walkthroughs, Inspections
-
Aim: discovery of errors, NOT fixing errors
Basic Idea: team examines a software document during a meeting
Why: a group of people are more effective - Subsystem Testing
-
testing a susbsystem consisting of several modules, to check module interaction and module interfaces are ok
ex. an output subsystem writing to a database and keeping an audit trail and providing rollback services - What is a black box (aka functional testing)?
- choose tests without knowledge of how the program works
- top down testing (adv)
-
- catches high level design errors early
- saves cost -
How do you ensure coverage of every componenent?
(white box testing) -
1. all statements- every statement in the program must be exercised during testing
2. all edges- all edges of teh control graph ,ust be exercised
3. all branches- each possibility at a brach point (if or case statemetn) should be exercised
4. all paths - Waht is risk driven testing?
- These tests check "worst case" scenario and boundary conditions. They ensure robustness.
- alpha testing (dis)
-
- number of customers is small
expensice to invite the users onsite - Verification
- builing the product right
- What does the test case consists of?
-
1. the purpose of the test interms of system requirements
2. an input specification
3. a specification of teh expected output - What happends in a review?
-
- the author of the document presents the main themes
- others criticize, discuss, look for omissions, inconsistencies
- faults and potential faulsts are recorded - What happends in a walkthrough?
-
- need the team
- each statement or sentence is read by the author
- others ask for explanation or justification if necessary - What is white box based on?
-
based on the structure of the code
-the control flow graph
-the conditions controlling if-statements and loops - What is McCabe complexity?
-
it is how to measure the complexitybased on the control graph of a program
v=e-n+2
- Beta testing (def)
-
-testing is performed on the customer site
- customers are supposed to record all problems - Beta testing (adv)
-
- cheaper
- a large number of tests can be conducted
-test cases are performed using different environmetns and setting - Beta testing (dis)
-
- many reported problems might not be real problems- related with the software system
- large number of system tests/errors might have to be processed
-not always easy to duplicate - Waht is recovery testing?
-
- enforce different types of failures in the system and check the recovery
ex. rebooting, killing processes, disconnect the network - Alpha testing (adv)
-
- controlled environment- errors and tests can be repeated
- test cases/erros are recorded by staff - Waht is alpha testing? (def)
-
-testing is conducted on the developer's site by a set of customers
-done is a controlled environment - Black Box testing- problem specification
-
1. Range
2. Enumerate the values
3. condition
4. boundary values - What happends during an inspection?
- code is carefully examined with everyone looking for common errors
- Module Testing
-
testing a module consisting of several units, to sheck that their interaction and interfaces are ok.
ex testing that pop and push in a stack module provide a last-in-first-out behaviour -
Varietes of Testing
Goal-driven testing (4)
Phase driven testing -
1- requirements-driven testing
2- Structure-driven testing
3- Statistics-driven testing
4- Risk-driven testing -
What is a white box?
aka structural testing or glass box testing - choose tests based on our knowledge of how the program works
- What are the steps in debugging?
-
1. locate the error
2. ascertain hot to correct error (is it a mistake in coding, desgn, requirements?)
3. fix it
4. re-run all tests