CIS 375 SOFTWARE ENGINEERING

University Of Michigan-Dearborn

Dr. Bruce Maxim, Instructor

Test Life Cycle:

    1. Establish test objectives.
    2. Design criteria (review criteria).
    1. Correct.
    2. Feasible.
    3. Coverage.
    4. Demonstrate functionality .
    1. Writing test cases.
    2. Testing test cases.
    3. Execute test cases.
    4. Evaluate test results.

Test Plan:

Testing system:

    1. Function testing.
    2. Performance testing.
    3. Acceptance testing.
    4. Installation testing.

Phased System Testing:

Regression Testing:

Performance Testing:

    1. Stress test.
    2. Volume test.
    3. Configuration test (hardware & software).
    4. Compatibility.
    5. Regression tests.
    6. Security tests.
    7. Timing tests.
    8. Environmental tests.
    9. Quality tests.
    10. Recovery tests.
    11. Maintenance tests.
    12. Documentation tests.
    13. Human factors tests.

Acceptance:

    1. Benchmark test.
    2. Pilot testing.
    3. Parallel testing.

Installation Testing:

    1. System completeness.
    2. Verification of functional & non0functional requirements at customer site.

Test Tools (Software):

    1. Simulators.
    2. Monitors.
    3. Analyzers.
    4. Test data generators.

Test Team:

    1. Professional testers.
    2. Analysts.
    3. System designers.
    4. Configuration management specialists.
    5. Users.

Test Documentation:

    1. Facet / feature / path tested.
    2. Person & date.
    3. Tools & code needed.
    4. Test data & instructions.
    5. Expected results.
    6. Actual test results & analysis:
    1. Correction, schedule, and signoff.

Debugging (Debugging ¹ Testing):

    1. Brute force.
    2. Backtracking.
    3. Cause elimination.

Object-Oriented Testing:

Testing OOA / OOD models:

    1. Correctness of OOA / OOD model.
    2. Consistency of OOA / OOD model.

CRC model (class-responsibility-collaboration).

E-R diagram (relationships among entities).

OO Testing Strategies:

    1. Unit testing (class is focus).
    2. Integration testing:
    1. Thread-based testing (single input or event).
    2. Use-based testing.
    3. Independent classes.

      Dependent classes (client/server).

    4. validation testing (black box -> use cases).

OO Test Case Design:

    1. Each test case associated class to be tested.
    2. Purpose of test stated.
    3. Test steps:
    1. List object attributes tested.
    2. List object methods tested.
    3. List possible exceptions.
    4. External condition (hardware & software).
    5. Any additional information.

Test Case Design Methodologies:

    1. Fault-based testing (OOP – inheritance).

Will not:

    1. Scenario-based test design (focus on user behavior, not product).
    2. Surface structure vs. deep structure.

Class Testing Methods:

    1. Random testing.
    2. Partition testing.
    1. Attribute-based partitioning.
    2. Category-based partitioning.

Interclass Test Cases:

    1. Multiple class testing.
    2. Test cases derived from behavior models (breadth-first search).