Home|Contents|Prev|Chat


CSC 715 Answers 5 - L9 Testing + L10 Evolution

SE-L9Q1 Validation vs defect testing

Validation: demonstrate the software meets requirements ("right product?"). Defect testing: find incorrect behaviour ("product right?"). Different goals: confidence vs bug-hunting.

SE-L9Q2 Three stages of development testing

  1. Unit - individual units/classes, method functionality.
  2. Component - composites of interacting objects; interfaces (misuse, timing).
  3. System - the integrated system; component interactions, use-case tests.

SE-L9Q3 Test-driven development (TDD)

Identify increment -> write an automated test -> run (fails) -> implement and refactor -> rerun (passes). Benefits: better understanding, high coverage, regression suite, easier debugging, tests as documentation.

SE-L9Q4 Alpha, beta, acceptance testing

Alpha: users test at the developer's site. Beta: selected users test at their own sites. Acceptance: formal customer testing to decide acceptance (contractual). Alpha/beta are user testing during development; acceptance is the final check.

SE-L9Q5 Acceptance testing process

  1. Define acceptance criteria.
  2. Plan the testing.
  3. Derive the tests.
  4. Run them (in the real environment).
  5. Negotiate results.
  6. Accept or reject.

SE-L10Q1 Software maintenance and its types

Changing a system after delivery; the most expensive phase (most cost is evolution). Three types: fault repairs, environmental adaptation, functionality addition.

SE-L10Q2 Lehman's laws

Continuing change (must change or lose usefulness), increasing complexity (degrades without work), continuing growth (functionality must increase), declining quality (declines without adaptation). Most relevant today: continuing change, growth and complexity.

SE-L10Q3 Reengineering vs replacement

Restructuring/redesigning software to improve maintainability without changing functionality. Benefits over replacement: lower risk and cost, retained knowledge, business keeps running while improved.

SE-L10Q4 Legacy system options

  1. Scrap - no longer effective.
  2. Leave unchanged - stable, few change requests.
  3. Reengineer - quality degraded but change still needed.
  4. Replace all or part - new hardware/technology makes it unusable.

SE-L10Q5 Assessing legacy systems

Business value: usage, processes supported, dependability, output quality. Technical quality: code understandability, documentation, data quality, performance, language, configuration management, test data, maintainer skills.


Home|Contents|Prev|Top|Chat