Software Testing and Maintenance Essentials

Classified in Computers

Written on in English with a size of 3.5 KB

Software Validation and Verification Fundamentals

Objectives of Validation and Verification

  • Detect and correct defects as soon as possible.
  • Reduce risks of budget and timetable deviations.
  • Improve software quality and reliability.
  • Improve development process management visibility.
  • Quickly assess proposed changes.

Philosophy of Software Testing

Recommendations by G.J. Myers:

  • Each test case should define the expected output.
  • Programmers must avoid testing their own programs.
  • Thoroughly inspect test results to identify possible symptoms of defects.
  • Test case generation should include valid, invalid, and unexpected inputs.
  • Prove that the software performs as intended and avoids unintended actions.
  • Test plans should always assume the presence of defects to avoid wasting resources.
  • Testing is as creative, or more creative, than software development.

Software Testing Approaches

Black Box vs. White Box Testing

  • Black Box approach: Studies functions and tests all possible program inputs and outputs.
  • White Box testing: Focuses on the program's internal structure to select test cases, aiming to test all possible execution paths and identify potential breakage points.

White Box Structural Testing Criteria

  • Statement Coverage: Each statement is executed at least once.
  • Decision Coverage: Every decision must yield both true and false results.
  • Condition Coverage: Every condition within a decision takes both true and false values at least once.
  • Decision/Condition Coverage: Combines condition coverage with decision coverage.
  • Multiple Condition Coverage.

Software Development Lifecycle Phases

The V-Model Testing Phases

  • Unit Testing: Focuses on the module's logic and its functions.
  • Integration Testing: Considers module grouping mechanisms within the program structure.
  • System Testing: Focuses on meeting overall system objectives.
  • Acceptance Testing: Allows the user to verify the final product.

Software Audit Principles

Objective: Objectively confirm that products and/or development processes meet project standards, specifications, and procedures. Typically performed by external personnel.

Product Walkthroughs

Objective: Evaluate a product for defects, improve compliance with standards, and consider solutions to identified problems.

Software Maintenance and Review

Types of Software Maintenance

The process of modifying a software system or component post-delivery to correct faults, improve performance or other attributes, or adapt to a changing environment.

  • Perfective Maintenance (60%): Improves or adds new functionality as required by the user.
  • Adaptive Maintenance (18%): Adapts the system to changes in its technological environment.
  • Corrective Maintenance (17%): Corrects hardware or software defects detected by users.
  • Preventive Maintenance (5%): Aims to prevent future system issues.

Software Product Revision

Consists of a meeting where a group of people review a product to identify any issues.

Related entries: