Yazılım geliştirme sürecinde, test etme, son ürünün kalitesini ve güvenilirliğini sağlamak için kritik bir öneme sahiptir. Ancak, test planları ve spesifikasyonları oluşturmak, özellikle karmaşık sistemlerde birden fazla gereksinim ve çeşitli test türleri yönetilirken zaman alıcı ve iş gücü gerektiren bir yapıdadır. Geleneksel olarak, bu görevler genellikle test mühendisleri tarafından manuel olarak yerine getirilir.
NVIDIA Chat Labs serisi kapsamında, bu makalede Hephaestus (HEPH) adlı bir iç generatif AI çerçevesinin geliştirilmesinden bahsedilecektir. HEPH, otomatik test üretimi için tasarlanmış bir yapıdır. Bu çerçeve, entegrasyon ve birim testleri de dâhil olmak üzere çeşitli testlerin tasarımını ve uygulamasını otomatikleştirir. Girdi analizi ve kod üretimi için büyük dil modelleri (LLM’ler) kullanarak, test vakalarının oluşturulmasına harcanan süreyi önemli ölçüde azaltır. HEPH, girdi belgelerine, kod örneklerine ve geri bildirim döngülerine dayalı olarak bağlamdan haberdar testler üretir, bu da testlerin daha hızlı ve daha verimli olmasını sağlar.
HEPH Çerçevesinin Sağladığı Kolaylıklar
HEPH, yazılım geliştirme sürecindeki test durumlarının oluşturulmasında, kullanım kolaylığı ve zaman tasarrufu sağlıyor. Test mühendisliği, güvenlik ve kalite ekipleri, manuel test durumu yaratma süreciyle sıklıkla karşı karşıya kalmaktadır. Bu süreç, gereksinim bilgilerini toplamak, bu gereksinimleri ilgili belgelerle ilişkilendirmek ve nihayetinde bu bilgiye dayanarak testleri oluşturmayı içermektedir.
HEPH, bu akışı basitleştirmek için tasarlanmış bir çerçeve olarak, tüm test sürecini otomatikleştirerek test spesifikasyonları ve uygulamalarının oluşturulmasında harcanan süreyi önemli ölçüde azaltır. HEPH, girdi belgelerini ve kod örneklerini analiz ederek, sağlanan gereksinimlere özel testler üretmektedir.
Otomatik Test Üretimindeki Faydalar
HEPH, test üretim sürecinin her aşamasında LLM ajanlarından yararlanmaktadır. Bu yapı, test üretebilmek için gerekli olan tüm belgelerin izlenebilirliğini sağlar. Böylece mühendislik ekipleri, birçok saatin kurtarılmasını mümkün kılar.
- Zaman tasarrufu: HEPH, test oluşturma sürecini ciddi şekilde hızlandırmaktadır. NVIDIA’daki pilot ekiplerle yapılan denemelerde, ekipler 10 haftaya kadar geliştirme süresi tasarrufu bildirmiştir.
- Bağlamdan haberdar test üretimi: HEPH, proje belgeleri ve arayüz spesifikasyonlarını kullanarak test spesifikasyonları ve uygulamaları oluşturur. Her test derlenir, çalıştırılır ve doğruluğu için kontrol edilir. Test kapsamı verileri, test üretimini daha da geliştirmek için modele geri beslenir.
- Çeşitli format desteği ve modülerlik: HEPH, PDF, RST, RSTI ve HTML gibi çeşitli girdi formatlarını destekler ve Confluence ile JIRA gibi dahili araçlarla entegre olur.
HEPH Nasıl Çalışır?
HEPH, yazılım gereksinimlerini, yazılım mimarisi belgelerini (SWAD), arayüz kontrol belgelerini (ICD) ve test örneklerini girdi olarak alır. Çıktısı ise bu gereksinimlere dayalı bir dizi test spesifikasyonları ve uygulamalarıdır.
Test üretim süreci aşağıdaki ana adımları içerir:
- Veri hazırlığı: Girdi belgeleri, SWAD ve ICD’ler gibi ortamlar indekse alınır ve saklanır. Bu veriler, daha sonra ilgili bilgiyi sorgulamak için kullanılır.
- Gereksinimlerin çıkarılması: Gerekli detaylar, örneğin Jama gibi bir sistemden çekilir. Eğer girdi bilgileri yeterli bilgi içermiyorsa, HEPH otomatik olarak depo hizmetine bağlanır, gereksinimi bulur ve gerekli bilgileri indirir.
- Veri izlenebilirliği: HEPH, girdi gereksinimleriyle ilişkili bilgileri izlemek için gömme veritabanını sorgular. Çıktı, gereksinim ile ilgili SWAD ve ICD parçaları arasındaki bağlılığı haritalar.
- Test spesifikasyonlarının oluşturulması: Gereksinimlerin doğrulama adımlarına ve izlenebilirlik olarak belirlenen SWAD ve ICD parçalarına dayanarak, HEPH, gereksinimleri kapsamlı bir şekilde karşılamak için hem olumlu hem de olumsuz test spesifikasyonları üretir.
- Test uygulama üretimi: HEPH, ICD parçalarını ve üretilen test spesifikasyonlarını kullanarak C/C++ dilinde testler oluşturur. ICD, işlev adları, veri türleri, enumerasyonlar ve dönüş kodları gibi bağlamı sağlar. Bu aşama, çalıştırılabilir testler oluşturur.
- Test yürütme: Üretilen testler derlenir ve yürütülür; kapsama verileri toplanır. HEPH ajanı, test kapsama sonuçlarını analiz eder ve eksik durumlar için test spesifikasyonları ve uygulamaları yeniden üretir.
Gerçek Dünya Senaryosu
HEPH’nin nasıl çalıştığını anlamak için gerçek bir örnek üzerinden gidebiliriz. NVIDIA DriveOS, QNX işletim sistemini kullanmaktadır. HEPH’nin yeteneklerini göstermek için, bir QNX BSP sürücüsü ve QNX BSP’deki termal işlevselliği için bir gereksinim üzerinden örnek vereceğiz.
Verilen girdi gereksinimleri ve sürücü belgeleri ile HEPH, Jama’dan gereksinim bilgilerini çıkarır, ilgili belge parçalarına kadar izleme yapar ve test spesifikasyonları ve uygulamaları oluşturur.
- Gereksinim çıkarma
- SWAD veri izlenebilirliği
- ICD veri izlenebilirliği
- Test spesifikasyonları üretimi
- Test uygulama üretimi
Gelecekteki İyileştirmeler
Test üretim çerçevesi tasarlarken odaklanılacak bazı temel noktalar vardır:
- Farklı test iş akışlarını desteklemek
- Gerçek zamanlı insan geribildirimini entegre etmek
Bu iki alan HEPH’nin gelecekteki geliştirmelerinde önemli bir yere sahiptir. HEPH, modüler bir tasarım ile yazılım ekiplerinin özel modüller tanımlayıp, standart olmayan iş akışlarını desteklemesini sağlayabilir. Örneğin, ekipler belgelerden ziyade giriş kodundan doğrudan test üretme yeteneğinden faydalanabilirler.
HEPH, otomasyondan geçerek testleri daha kapsamlı ve bağlama uygun hale getirerek geliştirilmiş bir çözüm sunmaktadır. Bu, geliştirici ekiplerin işlerini kolaylaştırmakta ve yazılım kalitesini artırmaktadır.
Sonuç olarak, Hephaestus (HEPH), yazılım geliştirme sürecinde otomatik test üretimini, LLM’leri kullanarak kapsamlı ve bağlamdan haberdar testler oluşturma yeteneği ile kolaylaştırmaktadır. Bu otomasyon, manuel çabayı azaltmakta, geliştirmeyi hızlandırmakta ve son ürünün kalitesini artırmaktadır.