SonarQube เป็นแพลตฟอร์มแบบ Open Source ที่ใช้สำหรับ Static Application Security Testing หรือการตรวจสอบคุณภาพ Code โดยไม่ต้องรันโปรแกรม เพื่อช่วยให้ทีมพัฒนาสามารถรักษามาตรฐานของ Code ให้มีคุณภาพสูงและมีความปลอดภัยอยู่เสมอ
คุณสมบัติหลักของ SonarQube
การตรวจจับ Code Quality
SonarQube จะวิเคราะห์ Code เพื่อหาจุดบกพร่องใน 3 ด้านหลัก
- Bugs: ตรวจพบข้อผิดพลาดที่อาจทำให้โปรแกรมทำงานผิดเพี้ยนหรือล่มได้
- Code Smells: ตรวจสอบความซับซ้อนของ Code หรือจุดที่เขียนไม่ดี ซึ่งอาจส่งผลต่อการบำรุงรักษาในระยะยาว
- Vulnerabilities: ค้นหาช่องโหว่ด้านความปลอดภัยที่อาจถูกโจมตีได้
มาตรฐานความปลอดภัย
ช่วยตรวจสอบ Code ตามมาตรฐานสากล เช่น OWASP Top 10 และ SANS Top 25 เพื่อให้มั่นใจว่าแอปพลิเคชันไม่มีช่องโหว่พื้นฐานที่อันตราย เช่น SQL Injection หรือ Cross-Site Scripting
การวัดผล Unit Test และ Code Coverage
SonarQube สามารถนำผลการรัน Test จากภายนอกมาแสดงผลร่วมกัน เพื่อดูว่า Code ที่เขียนขึ้นมานั้นมีการเขียน Unit Test ครอบคลุมไปกี่เปอร์เซ็นต์ ช่วยลดความเสี่ยงในการเกิด Regression Bugs
Quality Gate
นี่คือฟีเจอร์ “ด่านตรวจ” ที่สำคัญมาก เราสามารถตั้งเงื่อนไขได้ว่า “ถ้า Code ไม่ผ่านเกณฑ์ ห้าม Merge เข้าสายหลัก” เช่น
- ต้องไม่มี New Bugs แม้แต่จุดเดียว
- Code Coverage ต้องมากกว่า 80%
- Security Rating ต้องเป็น A เท่านั้น
รองรับหลายภาษา
รองรับการวิเคราะห์ภาษาโปรแกรมมากกว่า 30 ภาษา เช่น C#, Java, PHP, JavaScript, TypeScript, Python, Go และรวมถึงภาษาที่ใช้จัดการ Infrastructure อย่าง Terraform หรือ CloudFormation ด้วย
การเชื่อมต่อกับ CI/CD
SonarQube ทำงานร่วมกับเครื่องมือ CI/CD ได้อย่างไร้รอยต่อ เช่น
- GitHub / GitLab / Bitbucket: แจ้งผลการตรวจเข้าไปใน Pull Request โดยตรง
- Jenkins / Azure DevOps: สั่งให้วิเคราะห์อัตโนมัติทุกครั้งที่มีการ Build
สรุปข้อดี
การใช้ SonarQube ช่วยให้เราลด Technical Debt ได้อย่างมีประสิทธิภาพ เพราะระบบจะช่วยเตือนตั้งแต่ตอนที่เขียน Code ว่าจุดไหนมีปัญหา ทำให้การทำ Code Review ง่ายขึ้นและแม่นยำกว่าการใช้สายตาคนตรวจเพียงอย่างเดียวครับ
อ่านเพิ่มเติม