Yazılım geliştirme sürecinde kod kalitesini ve güvenliğini artırmak için kullanılan yöntemlerden biri statik kod analizidir. Statik kod analizi, kodun çalıştırılmadan incelenmesi ve hataların, güvenlik açıklarının veya performans sorunlarının tespit edilmesidir. Bu makalede, statik kod analizinin ne olduğu, nasıl yapıldığı ve sağladığı faydalar ele alınacaktır.
Statik Kod Analizinin Avantajları
- Erken Hata Tespiti: Hatalar, yazılım geliştirme sürecinin erken aşamalarında tespit edilerek düzeltilir, bu da hata düzeltme maliyetlerini azaltır.
- Kod Kalitesinin Artırılması: Kodun daha okunabilir, bakım yapılabilir ve genişletilebilir olmasını sağlar.
- Güvenlik Açıklarının Tespiti: Potansiyel güvenlik açıkları erken tespit edilerek, saldırılara karşı daha güvenli yazılımlar geliştirilir.
- Standartlara Uygunluk: Kodun belirli standartlara ve en iyi uygulamalara uygun olmasını sağlar.
Statik Kod Analizi Nasıl Yapılır?
Statik kod analizi, manuel veya otomatik araçlar kullanılarak gerçekleştirilebilir. İşte bu süreçte izlenen temel adımlar:
- Araç Seçimi: Öncelikle, kullanılacak statik analiz aracı seçilir. Popüler araçlar arasında SonarQube, ESLint, Pylint, FindBugs ve Coverity yer alır. Hangi aracın kullanılacağı, projenin diline ve ihtiyaçlarına göre belirlenir.
- Kurulum ve Entegrasyon: Seçilen aracın, geliştirme ortamına kurulumu yapılır ve projeye entegre edilir. Bu entegrasyon, sürekli entegrasyon/teslimat (CI/CD) süreçlerine dahil edilebilir.
- Kod Analizi: Araç, kaynak kodu tarayarak belirli kurallara ve standartlara göre analiz eder. Analiz sırasında hatalar, uyarılar ve öneriler raporlanır.
- Raporlama: Analiz sonuçları, hatalar, uyarılar ve iyileştirme önerileri şeklinde raporlanır. Bu raporlar, genellikle web tabanlı arayüzler veya IDE eklentileri aracılığıyla sunulur.
- Hata Giderme: Raporlanan hatalar ve uyarılar, geliştiriciler tarafından düzeltilir. Bu süreçte, kodun iyileştirilmesi ve standartlara uygun hale getirilmesi hedeflenir.
- Tekrar Analiz: Hatalar giderildikten sonra, kod tekrar analiz edilir. Bu döngü, yazılım geliştirme sürecinin bir parçası olarak sürekli tekrarlanır.
Statik Kod Analizi Araç Kullanımı | SonarQube
Örneğin, Java, C#, Python, JavaScript, PHP, Ruby, C++ gibi birçok programlama dilini destekleyen Statik kod analizi aracı olan SonarQube aracını inceleyelim.
SonarQube Nedir?
SonarQube, statik kod analizi yapmak için kullanılan açık kaynaklı bir platformdur. Yazılım geliştirme süreçlerinde kod kalitesini artırmak, hataları ve güvenlik açıklarını tespit etmek için kullanılır.
SonarQube Aracı Nasıl Kullanılır.
Öncelikle Sonarqube aracını kurabilmek için java yüklü olması gerekmektedir. buradan en son sürümü indirebilirsiniz.
https://www.java.com/download/ie_manual.jsp
Şimdi gelelim SonarQube Aracımızı kurmaya
https://www.sonarsource.com/products/sonarqube/downloads/
kendi resmi web adresinden sonarqube aracını indirebilirsiniz. Kurulumu çok basittir ve “9000” portunda çalışmaktadır. Yani siz kurulumu bitirdikten sonra tarayıcınıza gelip https://localhost:9000
web arayüzüne girebiliriz. Fakat kaynak kod analizi için bu yeterli değildir. Kod üzerinde statik kod analizi için “Sonar Scanner” aracınıda indirmemiz gerekmektedir. Sonar Scanner aracını indirmek için
https://docs.sonarsource.com/sonarqube/9.9/analyzing-source-code/scanners/sonarscanner/
kendi resmi sayfasından indirebilirsiniz..
Sonarqube üzerinden kaynak kod analizi başlatmak için tarayıcımızda https://localhost:9000
adresine gidiyoruz. Default kullanıcı adı “admin” default parolası “admin” dir.
Projenizi SonarQube’e Ekleme
SonarQube ile kod analizi yapmak için projenizi SonarQube’e eklemeniz gerekmektedir.
1. SonarQube web arayüzünde, sağ üst köşede yer alan “Create Project” düğmesine tıklayın. Farklı ekleme şekilleri için “More” kısmına tıklayabilirsiniz.
2. “Create new project” seçeneği ile yeni bir proje oluşturun ve bir proje anahtarı (project key) belirleyin
3. Proje dilini seçin ve devam edin. Local proje için “Locally” seçeneğini seçmelisiniz.
4. Gelen ekranda, projeniz için bir bitiş süresi belirtebiliyor veya süresiz olarak ayarlayabiliyorsunuz. Seçimi yaptıktan sonra “Generate” diyerek işleme devam ediyoruz.
5. Sona doğru “Continue” diyerek işleme devam edin.
6. SonarQube’yi hangi platformda çalıştırmak istiyorsanız onu seçmelisiniz. Ben bu projede .NET’te yapacağım için onu seçiyorum. Hemen sonraki seçimimiz ise derleme türü yani .NET Core mu yoksa .NET Framework mü olduğuna karar veriyoruz. .NET Framework için farklı adımlar takip etmelisiniz. .Net Core’da ise işlem daha kolay devam etmektedir. Tabi bu seçimler sizin projenin türüne göre değişkenlik gösterecektir.
7. SonarQube’nin tarama işleminin yapabilmesi için son bir adım kaldı. .Net Core’da projenizde console ekranında sırası ile komutları çalıştırmanız yeterlidir. Sırasıyla kodları çalıştırdıktan sonra küçük bir beklemeden sonra sonuca ulaşacağız.
8. Tarama işlemi bittikten sonra “Sonarqube” aracının web arayüzüne geldiğinizde projedeki zafiyetleri, bu zafiyetler nasıl kapatılabilir gibi size bilgi verecektir.
9. Bugs kısmına girip bugları detaylıca inceleyip ne gibi hatalar olduğunu görebilirsiniz. Ayrıca hatanı nerede olduğunu hangi dizinde olduğunu da görebilirsiniz. SonarQube’nin bu analizleri sonucunda kodunuz daha da kullanışlı hale getirebilirsiniz.
faydalı olması dileğiyle.