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.