Hands-onLesson 10

Interview Preparation

How to Use This Lesson

This lesson consolidates all ten lessons into interview-ready answers. Use the example responses as inspiration, not scripts — adapt them to your own experience.

SonarQube vs Veracode

This comparison comes up in almost every DevSecOps interview when code quality and security scanning are both in scope.
DimensionSonarQubeVeracode
Primary focusCode quality + SASTApplication security (SAST + DAST + SCA)
Language coverage30+ languages (OSS + commercial)~30 languages (commercial, enterprise)
DeploymentSelf-hosted or SonarCloud SaaSVendor-managed SaaS
Quality metricsBugs, smells, coverage, debt, duplications, ratingsNot primary — security findings only
Security depthOWASP/CWE rule-basedDeep taint analysis, binary scanning, SCA
ComplianceCode-level quality standardsPCI-DSS, HIPAA, SOC2, FedRAMP policy packs
Cost modelFree community edition; paid for advancedCommercial per-scan or subscription
Best forDeveloper-driven quality culture, fast feedback in PRsRegulated industries, compliance-driven security gates
Example answer: "SonarQube is my first choice for code quality enforcement and fast developer feedback in CI. Veracode adds depth in security testing — especially for compliance-driven environments needing binary SAST, DAST, or SCA. They complement each other rather than replace each other."

Code Quality vs Security

Top Conceptual Questions

Concepts

  • Q: What is a quality gate?
    A: A policy that must pass before code can be merged or deployed. It defines measurable conditions — like coverage ≥ 80% on new code — and fails the pipeline if any condition is not met.
  • Q: What is a quality profile?
    A: A collection of SAST rules applied to a language. Teams can inherit from Sonar Way and add or remove rules to match their standards.
  • Q: What is new code?
    A: Code added or changed since the last version tag or configured reference period. Quality gates focused on new code prevent "legacy pollution" from masking progress.
  • Q: What is technical debt?
    A: The estimated remediation time for all code smells. SonarQube expresses it as minutes/hours and as a debt ratio (effort vs estimated development time).
  • Q: What is the sqale debt ratio?
    A: Technical debt as a percentage of the total estimated build time. Below 5% is Rating A. Above 50% is Rating E.

Top Technical Questions

Technical

  • Q: How does SonarQube perform analysis without executing code?
    A: It parses source code into an AST, walks the tree to detect known patterns (e.g., null dereference paths, SQL concatenation), and applies configured rules to report matches.
  • Q: How do you exclude generated code from analysis?
    A: Use sonar.exclusions to exclude paths. Use sonar.coverage.exclusions to exclude paths from coverage metrics only while keeping them in issue analysis.
  • Q: How do you integrate SonarQube with GitHub?
    A: Use SonarSource/sonarqube-scan-action in a GitHub Actions workflow, pass SONAR_TOKEN and SONAR_HOST_URL as secrets, and configure ALM integration in SonarQube admin for PR decoration.
  • Q: What happens when a quality gate is in a WARNING state?
    A: Gate returns PASSED — warnings are informational thresholds. Only ERROR conditions cause failure.
  • Q: How do you manage SonarQube at scale with hundreds of projects?
    A: Use the web API to automate project creation and settings, provision tokens via CI secret management, enforce shared quality gates and profiles via inheritance, and use portfolio views to aggregate metrics.

Scenario-based Questions

Scenarios

  • Q: CTO wants to know if code quality is improving. What do you show?
    A: Trend charts for technical debt ratio, rating distribution per project, and new code gate pass rate over time. SonarQube API can export data for custom dashboards.
  • Q: A team complains every PR is blocked. How do you investigate?
    A: Pull the projects_status API for their last 10 PRs, identify which conditions fail repeatedly, determine if they are legitimate or mis-configured (wrong new code period, wrong coverage path), and adjust accordingly.
  • Q: SonarQube says coverage is 30% but developers say it's 85%. Why?
    A: The coverage report path is misconfigured or points to old data. Run find to confirm the report file exists, verify the report was generated after the latest test run, and correct sonar.coverage.jacoco.xmlReportPaths.
  • Q: How do you handle a security vulnerability detected 2 hours before release?
    A: Evaluate severity. If Blocker: escalate immediately, block release, and fix or accept with documented risk sign-off via the issue wontfix workflow. If Major or below: severity and exploitability guide the decision.
  • Q: How do you introduce SonarQube to a team that has never used code quality tooling?
    A: Start with SonarLint in IDEs (immediate local feedback), then add PR scanning with observe-only mode (no gate failures initially), then graduate to a lightweight gate covering only new Blocker bugs. Measure adoption and expand over 2–3 sprints.

Summary

You have completed the SonarQube course. You understand code quality fundamentals, how SonarQube analyses code, quality gates and profiles, CI/CD integration, real-world delivery scenarios, troubleshooting, and how to articulate SonarQube's role against other tools at interview depth.

Next step: run a real SonarQube scan on your own project, trigger a gate failure deliberately, and trace the fix end-to-end. Hands-on experience is the most convincing interview evidence.