NEOCODE

Software Configuration Management (SCM) MCQs

1. Basics of SCM

Q1. Software Configuration Management (SCM) is the process of:

Correct Answer: A) Managing changes to software systems

Explanation:
SCM is a systematic process for managing changes throughout the software lifecycle, including version control but also encompassing change management, configuration identification, and configuration audits to maintain software integrity.

Q2. Which of the following is NOT a part of SCM?

Correct Answer: D) Compiling code

Explanation:
Compiling code is a development activity, not part of configuration management. SCM focuses on controlling changes through version control, change management processes, and configuration audits to verify compliance.

Q3. The main goal of SCM is to:

Correct Answer: A) Ensure software integrity and traceability

Explanation:
The primary objectives of SCM are to maintain software integrity (correctness and completeness) and provide traceability of changes throughout the software lifecycle, not to accelerate development or reduce testing.

2. Version Control & Change Management

Q4. Which tool is used for version control in SCM?

Correct Answer: A) Git

Explanation:
Git is a distributed version control system. Jenkins is a CI/CD tool, and JIRA is an issue tracking system. While these tools integrate with version control, only Git is specifically a version control system.

Q5. A "baseline" in SCM refers to:

Correct Answer: A) A stable version of the software

Explanation:
A baseline is an approved and controlled version of a configuration item (e.g., software component) that serves as a reference point for further development. It's formally designated at specific points in the project lifecycle.

Q6. Change Control in SCM involves:

Correct Answer: C) Both A and B

Explanation:
Change control is a formal process that includes evaluating change requests (approving/rejecting), implementing approved changes, and maintaining records of all changes to ensure traceability and accountability.

Q7. Which of the following is a version control system?

Correct Answer: D) All of the above

Explanation:
SVN and Mercurial are version control systems like Git. GitHub is a hosting service for Git repositories (which itself uses Git for version control), so all options represent version control systems/services.

3. Advanced SCM Concepts

Q8. A "check-in" in version control means:

Correct Answer: A) Uploading changes to the repository

Explanation:
Check-in (or commit) is the process of submitting modified files to the version control repository, creating a new version that others can access. It typically includes a descriptive message about the changes.

Q9. Branching in version control is used for:

Correct Answer: C) Both A and B

Explanation:
Branching allows teams to work on different features simultaneously (parallel development) and isolate risky changes (experimental features) without affecting the main codebase until they're ready to be merged.

Q10. Which SCM activity ensures compliance with standards?

Correct Answer: A) Configuration Audits

Explanation:
Configuration audits verify that the software product conforms to its requirements and standards. They check that all configuration items are properly identified, documented, and that changes are properly controlled.

4. Comparison & Applications

Q11. PERT is better than GANTT for:

Correct Answer: A) Complex projects with uncertain timelines

Explanation:
PERT's probabilistic approach with three-time estimates makes it particularly suitable for complex projects where task durations are uncertain. It helps identify the critical path and calculate probability of meeting deadlines.

Q12. GANTT is better than PERT for:

Correct Answer: A) Visualizing task timelines

Explanation:
GANTT charts excel at providing a clear visual representation of task schedules, durations, and progress over time. Their bar chart format makes them intuitive for understanding project timelines at a glance.

Q13. Which SCM practice prevents "merge conflicts"?

Correct Answer: C) Both A and B

Explanation:
Merge conflicts occur when multiple developers modify the same code simultaneously. Frequent commits reduce the scope of changes between merges, while a good branching strategy (like feature branches) isolates changes until they're ready to be merged.