Uygunluk testi – diğer adıyla conformance ya da compliance testi – yazılım ürünlerinin hem iç politikalarla hem de dış düzenlemelerle uyumlu şekilde çalışıp çalışmadığını değerlendirmek amacıyla yapılan bir test türüdür. Yazılım sistemlerinin belirli standartlara uygunluğunu doğrulamak, sadece yasal zorunlulukları yerine getirmekle kalmaz, aynı zamanda güvenlik açıklarını önlemeye, müşteri güveni kazanmaya ve ürünün pazardaki rekabet gücünü artırmaya da katkı sağlar.
Uygunluk testi, bir yazılımın ya da sistemin belirli standartlara, düzenlemelere, politikalara veya spesifikasyonlara ne derece uyduğunu değerlendiren test sürecidir. Bu testler iki ana kategori altında incelenebilir:
- İç Standartlar: Kurum içinde geliştirilen kalite kuralları, güvenlik politikaları veya kodlama yönergeleri.
- Dış Standartlar: ISO, GDPR, HIPAA, PCI-DSS, W3C gibi endüstri ve regülasyon kurumlarının belirlediği genel geçer standartlar.
Uygunluk Testinin Amaçları
Uygunluk testi, yazılımın yalnızca teknik açıdan çalışırlığını değil; aynı zamanda yasal, kurumsal ve sektörel yükümlülüklere uyup uymadığını da değerlendirerek çok boyutlu bir kalite kontrol aracı olarak işlev görür. Bu testin amaçları hem yazılım geliştirme sürecinde hem de ürün piyasaya sunulmadan önce birçok hayati hedefi yerine getirmeyi kapsar. Aşağıda bu amaçlar detaylandırılmıştır:
Standartlara Bağlılığın Doğrulanması
Yazılımın belirli bir teknik standarda, endüstri spesifikasyonuna veya regülasyona uygun geliştirilip geliştirilmediğini değerlendirmek en temel amaçlardan biridir. Bu test sayesinde yazılımın başka sistemlerle çalışabilirliği (interoperability) sağlanır.
Yasal Uyumun Sağlanması (Compliance)
Yazılımın, ülke veya sektör bazlı yasal yükümlülüklere uygun olup olmadığı test edilir. Amaç, ihlal durumlarında oluşabilecek para cezaları, itibar kaybı ve dava risklerinin önüne geçmektir. GDPR (Avrupa), HIPAA (ABD), PCI-DSS (finans sektörü), FDA (ilaç sektörü) regülasyonları örnek olarak verilebilir.
Veri Güvenliği ve Mahremiyetin Korunması
Özellikle kullanıcı verisi işleyen sistemlerde, testlerin birincil hedeflerinden biri veri güvenliği standartlarına uyumu sağlamaktır. Amaç, yetkisiz erişimlerin, veri sızıntılarının ve kullanıcı mahremiyeti ihlallerinin önüne geçmektir. Temel ölçütü ise şifreleme yöntemleri, erişim denetimi ve log kayıtlarının bütünlüğüdür.
Kurumsal Politikaların Yerine Getirilmesi
Birçok şirket, kendi iç kalite politikalarını oluşturur. Uygunluk testi, yazılımın bu iç standartlara uyup uymadığını da değerlendirir. Sonuç olarak iç denetim süreçleri kolaylaşır ve kurumsal güvenlik kültürü gelişir.
Riskin Azaltılması ve Süreç Güvencesi Sağlanması
Uygunluk testi, yazılımın standart dışı davranışlarını erken tespit ederek operasyonel ve yasal risklerin önüne geçer. Geri çağırma, güncelleme, yasal cezalar ve müşteri memnuniyetsizliği gibi olumsuz durumlar minimize edilir.
Şeffaflık ve Denetlenebilirlik Sağlamak
Belgelendirilmiş test sonuçları ve raporlar sayesinde yazılım geliştirme süreci dış denetim ve otoriteler tarafından kolayca değerlendirilebilir hale gelir. Uyumluluk testleri sayesinde şirketler, “gereğini yaptı” belgelerini sunabilir.
Pazar Erişiminin ve Sertifikasyonun Sağlanması
Sertifikalı yazılımlar, birçok sektörde bir ön koşuldur. Uygunluk testi, bu tür sertifikasyonlara (ISO 9001, ISO/IEC 27001, SOC 2) hazırlık niteliği taşır. Amaç, ürünlerin hem yerel hem de uluslararası pazarlarda satışa sunulabilmesidir. Genel olarak rekabet avantajı ve markalaşma fırsatı sağlamaktadır.
Uygunluk Testi ile İlgili Temel Terimler
Uygunluk testi (conformance/compliance testing) alanı, farklı disiplinlerin kesişiminde yer aldığı için içerisinde hem yazılım mühendisliği hem de regülasyon temelli bazı terimleri barındırır. Bu terimlerin doğru anlaşılması, test sürecinin amacına uygun yürütülmesini ve sonuçların doğru yorumlanmasını sağlar. Aşağıda uygunluk testlerine ilişkin en sık kullanılan temel kavramlar açıklanmıştır:
Uygunluk (Conformance)
Bir yazılım sisteminin belirli bir teknik standarda, format tanımına veya endüstriyel spesifikasyona uygun şekilde çalışıp çalışmadığını ifade eder. Bu uygunluk genellikle standartlaştırılmış bir referans dokümana (örneğin: XML 1.0, ISO 26262, IEEE 802.3) dayanarak ölçülür. Ana amaç yazılımın diğer sistemlerler birlikte çalışabilirliğini garanti altına almaktır.
Uyumluluk (Compliance)
Bir sistemin dışsal yasal düzenlemelere, mevzuatlara veya endüstri protokollerine uygunluğunu ifade eder. Uygulama yalnızca çalışır durumda değil; aynı zamanda hukuka ve sektörel regülasyonlara da uygun olmalıdır. Sağlık yazılımlarının HIPAA, finansal yazılımların PCI-DSS standartlarına uyumlu olması örnek olarak verilebilir.
Uygunluk içe dönük bir teknik uygunluk iken; uyumluluk dışa dönük hukuki ve regülasyonel uyumluluğu temsil etmektedir.
Standart
Bir ürünün veya sistemin belirli bir davranış, yapı veya formatta olması gerektiğini tanımlayan belgelenmiş gereklilikler bütünüdür. Uygunluk testlerinin temelini oluşturmaktadır. ISO/IEC 27001 (bilgi güvenliği), WCAG (erişilebilirlik), XML 1.1 (veri formatı) yaygın olarak kullanılan standartlardır.
Spesifikasyon (Specification)
Bir sistemin nasıl çalışması gerektiğine dair ayrıntılı teknik tanımlamaları içerir. Spesifikasyon, çoğunlukla bir standardın alt kümesi olarak ya da organizasyonun kendi iç kurallarına göre oluşturulur. Bir API spesifikasyonu, giriş/çıkış veri yapıları, HTTP metodları ve hata kodlarını içerebilir.
Black-Box Testing (Kara Kutu Testi)
Yazılımın iç yapısına bakılmaksızın yalnızca girdi ve çıktılar üzerinden yapılan test yöntemidir. Conformance testleri genellikle bu test türüne dayanır. Spesifikasyon tabanlı doğrulama sağlar. XML, JSON, REST API, Web form validasyonlarında kullanılır.
Test Takımı / Dizisi (Test Suite)
Belirli bir standarda karşı yazılımın uygunluğunu değerlendirmek amacıyla oluşturulmuş test senaryoları koleksiyonudur. Geçerli/verimli senaryolar, hatalı örnekler, çıktı doğrulama noktalarını içerir. W3C XML Conformance Test Suite — XML parser’ların doğruluğunu sınanması örnek olarak verilebilir.
Test Durumu (Test Case)
Bir sistemin belirli bir özelliğini ya da koşulunu test etmek için tanımlanmış bağımsız birimdir. Uygunluk testlerinde her test durumu, genellikle belirli bir standardın maddesine referans verir. Temel bileşenleri Test ID, amaç, giriş verisi, beklenen çıktı, geçme/kalma kriteridir. Örnek olarak XML belgesinde yasaklı karakterin kullanımı — parser’ın hata döndürmesinin beklenmesi verilebilir.
Doğrulama (Validation)
Bir sistemin, belirli kurallara veya spesifikasyonlara uygun şekilde davrandığını gösterme sürecidir. Validation, uygunluk testlerinin sonucudur.
Çürütme Testi (Falsification Testing)
Bir sistemin belirli bir standarda uymadığını kanıtlamak için yapılan test yaklaşımıdır. Uygunluk testleri çoğu zaman “kanıtlamak” değil “yanlışlayarak dışlamak” prensibiyle çalışır
Denetim İzi (Audit Trail)
Uygunluk testlerinin belgelenmesi ve geriye dönük izlenebilirliğin sağlanması için oluşturulan kayıtlar bütünüdür. Test planları, test sonuçları, düzeltici işlemler, tarih/zaman damgalarını içerir. Kurum içi ve dışı denetimlerde yasal dayanak sağlar.
Uygunluk Testi Türleri
Uygunluk testleri, bir yazılımın çeşitli yönlerden belirli standartlara, normlara, yasal düzenlemelere veya teknik protokollere ne ölçüde uyduğunu değerlendirmek için uygulanır. Bu testler, hem işlevsel hem de işlevsel olmayan alanlarda uygulanabilir ve her biri belirli bir uygunluk hedefini yerine getirmek üzere tasarlanmıştır. Aşağıda uygunluk testi kapsamında kullanılan başlıca test türleri yer almaktadır:
Yasal ve Regülasyonel Uyumluluk Testi
Yazılımın, yasal zorunluluklar, sektör düzenlemeleri ve resmi protokoller gibi dış kaynaklı yükümlülüklere uygunluğunu kontrol eden test türüdür.
Amaç:
- GDPR, HIPAA, PCI-DSS, ISO/IEC 27001 gibi standartlara uyumu sağlamak
- Regülasyona aykırı durumlarda para cezası ve yasal yaptırımların önüne geçmek
Uygulama Alanları:
- Sağlık, finans, kamu sektörü
- Bulut bilişim, SaaS, e-ticaret sistemleri
Teknik Standartlara Uygunluk Testi
Bir yazılım sisteminin, belirli teknik standartlara, veri formatlarına veya protokol tanımlarına uygun şekilde çalışıp çalışmadığını kontrol eder.
Örnek:
- XML 1.1 Conformance Test Suite kullanılarak XML parse eden uygulamaların geçerli yapılandırmalara göre davranıp davranmadığının test edilmesi
Kazanımlar:
- Sistemler arası interoperability (birlikte çalışabilirlik)
- Değiştirilebilirlik (substitutability) sağlanır
Sistemler Arası Uyum Testi
Yazılımın başka sistemlerle, uygulamalarla veya cihazlarla sorunsuz ve standartlara uygun biçimde iletişim kurup kuramadığını test eder.
Amaç:
- Veri alışverişinde format, zamanlama, protokol uyumsuzluklarını engellemek
- API'ler, entegrasyon katmanları ve haberleşme protokollerinin doğrulanması
Güvenlik Uygunluğu Testi
Yazılımın, güvenlik standartlarına (örneğin ISO/IEC 27001, OWASP, PCI-DSS) ve veri koruma yasalarına (örneğin GDPR, CCPA) uygun olarak geliştirildiğini test eder.
Kapsam:
- Giriş kontrol mekanizmaları
- Şifreleme
- Loglama ve iz kayıtları
- Yetkilendirme ve erişim kısıtlamaları
Erişilebilirlik Uygunluğu Testi
Yazılım engelli bireyler tarafından kullanılabilirliğini sağlayacak şekilde tasarlanıp tasarlanmadığını ve WCAG (Web Content Accessibility Guidelines) gibi erişilebilirlik standartlarına uyumlu olup olmadığını test eder.
Kontrol Edilen Unsurlar:
- Klavye ile gezinilebilirlik
- Ekran okuyucu desteği
- Renk kontrastı ve font seçimi
- Alternatif metin kullanımı
Yük Testi
Yazılımın, belirlenen kullanıcı yükü altında performansını ve kaynak kullanımını ölçer.
Amaç:
- Belirli bir eşzamanlı kullanıcı sayısı altında sistemin yanıt süresi ve kararlılığını test etmek
- Kullanıcı deneyiminin düşmesini önlemek
Uyumluluk Açısından Önemi: Performans gerekliliklerini belirleyen endüstri standartlarına (örneğin SLA’lara) uyum sağlar.
Aşırı Yük Testi
Sistemin normal çalışma sınırlarının üzerinde nasıl davrandığını görmek amacıyla yapılan testtir.
Amaç:
- Sistem çökmeye ne kadar dayanıklı?
- Kritik durumlarda hata yönetimi nasıl yapılır?
Uygulama: Finansal işlemler, yoğun trafik altında çalışan web servisleri, veri merkezi yönetim sistemleri
Hacimsel Uygunluk Testi
Yazılımın büyük veri hacimlerini (örneğin büyük veritabanları, yüksek boyutlu dosyalar) işleyebilme kabiliyetini test eder.
Kapsam:
- Veri depolama
- Giriş/çıkış performansı
- Bellek yönetimi
Uyumluluk Bağlantısı: Büyük veri işleyen sistemlerin ISO/IEC 25010 gibi kalite modelleri doğrultusunda test edilmesi gereklidir.
Belge Uygunluğu Testi
Yazılıma ait dokümantasyonun standartlara uygun, eksiksiz, anlaşılabilir ve güncel olup olmadığını test eder.
Kapsam:
- Kullanıcı kılavuzu
- API dokümanları
- Sürüm notları
- Kurulum rehberleri
Sürekli Uygunluk Testi
Yazılım yaşam döngüsü boyunca, sürekli entegrasyon (CI) süreçlerine entegre edilen otomatik testlerle sürdürülen uygunluk kontrolüdür.
Araçlar:
- Jenkins, GitLab CI, Azure DevOps
- Otomatik test senaryoları ve raporlama sistemleri
Yarar:
- Değişikliklerden doğan regresyonları erken aşamada fark etme
- Standart uyumluluğunun sürekli korunması
Sektör Temelli Uygunluk Testi
Örnek Sektörler ve Uygulama Alanları:
Sektör | Regülasyon/Standart | Uygunluk Testi Gerekliliği |
Sağlık | HIPAA, FDA 21 CFR Part 11 | Hasta verilerinin güvenliği ve kayıt kontrolü |
Finans | PCI-DSS, AML, KYC | Ödeme güvenliği ve müşteri kimlik doğrulama |
Ulaştırma | DO-178C (havacılık), ISO 26262 | Kritik yazılımın güvenli çalışması |
Kamu | ISO 14001, Section 508 | Çevresel sürdürülebilirlik, dijital erişilebilirlik |
Uygunluk Test Süreci
Uygunluk test süreci (Conformance / Compliance Testing Process), yazılım sistemlerinin belirli standartlara, spesifikasyonlara ve yasal düzenlemelere uygunluklarını sistematik şekilde doğrulamak amacıyla yapılandırılmış bir test yaklaşımıdır. Bu süreç yalnızca test aşamasını değil; aynı zamanda planlama, analiz, raporlama ve yeniden değerlendirme aşamalarını da kapsar. Süreç hem manuel hem de otomasyon teknikleriyle yürütülebilir. Aşağıda adım adım açıklanmıştır:
Standart ve Gereksinimlerin Belirlenmesi
Test sürecinin en kritik aşaması, yazılımın uyması gereken standartların, regülasyonların ve iç politikaların açık biçimde tanımlanmasıdır.
Eylemler:
- Endüstri standartlarının (ISO, IEEE, W3C vb.) taranması
- Hukuki ve sektörel regülasyonların (GDPR, HIPAA, PCI-DSS vb.) belirlenmesi
- Kurumsal politika, güvenlik kılavuzları, kullanıcı sözleşmeleri gibi iç belgelerin incelenmesi
Test Planının Hazırlanması
Belirlenen gereksinimlere uygun şekilde bir test stratejisi ve yol haritası oluşturulur.
İçerik:
- Hangi tür uygunluk testlerinin yapılacağı (güvenlik, erişilebilirlik, performans vb.)
- Testin kapsamı, öncelikleri ve başarı kriterleri
- Kullanılacak test araçları ve teknolojiler (örneğin: Selenium, SonarQube, Postman)
- Zaman çizelgesi ve kaynak atamaları
Test Senaryolarının ve Test Durumlarının Tasarımı
Tanımlanan standartlara göre her bir gereksinim için özel test durumları (test cases) oluşturulur.
Yapı:
- Girdi (input) verileri
- Beklenen çıktı
- Uygulama içi davranış/reaksiyon
- Uyulması gereken spesifik referans maddesi
Test Ortamının Hazırlanması
Gerçekçi bir test ortamı kurulmalıdır. Bu ortamda gerekli konfigürasyonlar, veri setleri ve test araçları yer almalıdır.
- Test verileri (örnek kullanıcılar, giriş formları, veri tabanları)
- Bağımlı sistemlerin mock edilmesi veya izole edilmesi
- Otomasyon framework’lerinin entegrasyonu
Testlerin Uygulanması (Test Execution)
Hazırlanan senaryolar çalıştırılır ve sistemin davranışı izlenir. Uygulama standartlara uygun davranıyorsa test "başarılı", değilse "başarısız" olarak işaretlenir.
Yöntem:
- Manuel testler: Özellikle belge ve erişilebilirlik testleri için tercih edilir
- Otomatik testler: API, yük, güvenlik ve sürekli testler için uygundur
Sonuçların Analizi ve Uygunsuzlukların Belirlenmesi
Test sonuçları analiz edilerek, standarda uymayan davranışlar tespit edilir ve sınıflandırılır.
Sınıflandırma:
- Kritik uyumsuzluklar (örneğin: şifrelenmemiş kullanıcı verisi)
- Orta düzey eksiklikler (örneğin: ekran okuyucuyla okunamayan form alanı)
- Bilgilendirme düzeyinde öneriler (örneğin: daha iyi kullanıcı rehberi)
Düzeltici Faaliyetlerin Planlanması ve Uygulanması
Tespit edilen uygunsuzlukların nedenleri belirlenir, düzeltici işlemler planlanır ve geliştirme ekiplerine iletilir.
Süreç:
- Uygunsuz alanın düzeltilmesi
- İlgili test senaryosunun yeniden yürütülmesi (re-test)
- Gerekiyorsa regresyon testleri uygulanması
Test Raporlarının ve Belgelerin Oluşturulması
Test sürecine dair tüm bulgular detaylı şekilde belge haline getirilir.
Rapor İçeriği:
- Test planı ve kapsam
- Çalıştırılan test sayısı ve geçme/kalma oranı
- Tespit edilen uygunsuzluklar ve alınan önlemler
- Kullanılan test araçları ve sürümleri
- Uyulan/uyulmayan standartlar listesi
Sürekli İzleme ve Periyodik Uygunluk Kontrolleri
Test süreci yalnızca bir defaya mahsus değil, ürün yaşam döngüsü boyunca tekrarlanması gereken bir faaliyettir.
Eylemler:
- Yazılımda yapılan değişikliklerden sonra yeniden test
- Güncellenen standartlara göre test senaryolarının revize edilmesi
- CI/CD süreçlerine otomatik testlerin entegrasyonu (sürekli uygunluk testi)
Diyagramatik Özet (Sözlü Açıklama):
[1. Gereksinim Analizi] ↓ [2. Test Planı] ↓ [3. Senaryo Tasarımı] ↓ [4. Ortam Kurulumu] ↓ [5. Test Uygulama] ↓ [6. Analiz ve Hata Belirleme] ↓ [7. Düzeltici Faaliyetler] ↓ [8. Raporlama ve Belgeleme] ↓ [9. Sürekli İzleme ve Güncelleme]
Uygunluk Testinde Kullanılan Araçlar
Araç Adı | Amacı |
JUnit | Java projelerinde fonksiyonel uygunluk testleri |
Selenium | Web uygulamaları için tarayıcı uyumluluğu testleri |
Postman | API uygunluk ve doğrulama testleri |
SonarQube | Kod kalitesi ve güvenlik standartlarına uyum |
OpenSCAP | Güvenlik politikalarına uygunluk analizi |
Jenkins | CI/CD süreçlerinde sürekli test otomasyonu |
Uygunluk Testi: Zorluklar ve Riskler
- Sürekli Değişen Standartlar: Regülasyonlar ve endüstri standartları zamanla değişir. Bu nedenle güncel kalmak için sürekli takip ve eğitim gereklidir.
- Karmaşık Regülasyonlar: Birçok sektörde (örneğin sağlık, finans) uyulması gereken kurallar teknik ve hukuki açıdan oldukça karmaşıktır.
- Maliyet ve Kaynak Kullanımı: Uzman ekip, test araçları ve tekrar test süreçleri nedeniyle uygunluk testleri maliyetli olabilir.
- Belirsizlik ve Yorum Farklılıkları: Bazı standartlar yoruma açıktır. Bu durum test sürecinde farklılık yaratabilir ve denetimlerde sorun oluşturabilir.
Uygunluk Testinin Avantajları
- Hukuki Güvence: Yasal yaptırımlardan korunma
- Gelişmiş Kalite: Sistem güvenliği ve kullanıcı memnuniyeti
- Pazarlama Gücü: Sertifikalı ürünlerin tercih edilme oranı yüksek
- Müşteri Güveni: Kullanıcıların güvenini kazanma
- Sürdürülebilirlik: Sürekli gözden geçirilerek güncel kalma
Uygunluk Testinin Dezavantajları
- Yüksek zaman ve maliyet gerektirir
- Esneklik sınırlı olabilir
- Karmaşık entegrasyonlarda uygulanması zordur
- Uzmanlık gerektirir; hata payı tolere edilmez