Configuration Management in Software Development

Jul 3, 2024

Session 4 of Module 5: Configuration Management

Overview

  • Focus on the configuration management
  • Discuss features of CM tools
  • CM’s role in test management activities

Configuration Management: Definition and Importance

  • Definition:
    • Systematically controls changes in software and supporting documents during SDLC (Software Development Life Cycle).
    • Includes software code, test cases, design documents, SRS, etc.
  • IEEE Definition:
    • Identifies and defines system items
    • Controls changes throughout the lifecycle
    • Records and reports status and changes
    • Verifies completeness and correctness

Key Features of Configuration Management Tools

  1. Concurrency Management
    • Manages concurrent operations (e.g., same file edited by multiple people)
    • Prevents issues like overwriting changes by merging updates
    • Ensures all changes are included in the final version
  2. Version Control
    • Archives previous versions of files
    • Enables rollback to previous versions in case of issues
    • Useful for tracking changes and preventing integration problems
  3. Synchronization
    • Users can check out multiple files or the entire repository
    • Update local repositories to stay current with team changes
    • Ensures development uses the latest version of central repository

Popular Software Configuration Management Tools

  • Git (latest version control tool)
  • IBM Rational Team Concert
  • IBM ClearCase
  • Open-source tools: CVS, Subversion

Concurrency Management: Example and Details

  • Central repository accessed by multiple developers
  • Ensures changes by multiple users are merged, not overwritten

Version Control: Importance

  • Snapshots taken of current and changed versions
  • Allows rollback in case of issues or incorrect changes
  • Archives previous versions enabling continuity

Synchronization: Working Mechanism

  • Includes entire repositories for consistent development
  • Updated periodically to match team changes
  • Synchronize local and central repositories for up-to-date progress

Other Functionalities

  • Build management
  • Auditing
  • Reporting systems

Implications for Testing

  • Test Management
    • Testers manage test code and documentation using CM tools
    • Test plans, strategies, test cases, automation code
  • Build Process
    • Reliable way to deliver builds and test environments
    • Versioned builds for consistent testing and issue tracking
    • Maps test cases and defects against specific builds (traceability)

Summary

  • Understanding of configuration management and its relevance
  • Detailed features: concurrency mgmt, version control, synchronization
  • CM tools’ application in testing for better test management