Yenilikçi yaklaşım daha hızlı hata düzeltmeleri vaat ediyor


Modern yazılım uygulamaları genellikle çok sayıda dosyadan ve birkaç milyon satır koddan oluşur. Çok miktarda olması nedeniyle, hataları bulmak ve düzeltmek, yani hata ayıklamak zordur. Birçok yazılım şirketinde, geliştiriciler hala hataları manuel olarak ararlar ve bu da çalışma zamanlarının büyük bir bölümünü alır. Çalışmalar, bunun toplam geliştirme süresinin %30 ila %90’ını oluşturduğunu göstermektedir.

hata ayıklama

Graz Teknoloji Üniversitesi (TU Graz) Yazılım Teknolojisi Enstitüsü’nden Birgit Hofer ve Thomas Hirsch, hatalı kodu bulma ve dolayısıyla hata ayıklama sürecini büyük ölçüde hızlandırabilecek mevcut doğal dil işleme yöntemleri ve ölçümlerine dayalı bir çözüm geliştirdiler.

Hata lokalizasyonu en çok zamanı tüketir

“İlk adım olarak, hata ayıklama sırasında en çok zaman kaybettiren şeyleri belirlemek için geliştiriciler arasında anketler yaptık. Hata düzeltmenin büyük bir sorun olmadığı, ancak programcıların çoğunlukla hataları bulmakla, yani aramayı program kodunda doğru alana daraltmakla uğraştığı ortaya çıktı,” diye açıklıyor Birgit Hofer.

Bu farkındalığa dayanarak araştırmacılar, çok fazla kod içeren uygulamalara da ölçeklenebilir olan bu soruna bir çözüm bulmaya koyuldular. Bir programın mantıksal bir gösterime (model olarak adlandırılır) dönüştürüldüğü verimli model tabanlı yaklaşımlar olmasına rağmen, bu yalnızca küçük programlar için işe yarar. Bunun nedeni, hesaplama çabasının kodun boyutuyla üssel olarak artmasıdır. Hofer ve Hirsch tarafından benimsenen yaklaşım, belirli yazılım özelliklerini sayılarla temsil eder – örneğin, kodun okunabilirliği veya karmaşıklığı – ve ayrıca hesaplama çabası yalnızca doğrusal olarak arttığı için büyük miktarda kod için de kullanılabilir.

Hata açıklaması ve kodun karşılaştırılması

Hata lokalizasyonunun başlangıç ​​noktası, test edenlerin veya kullanıcıların gözlemlenen hatayı açıklayan bir formu doldurduğu ve yazılım sürümü, işletim sistemi, hata oluşmadan önce attıkları adımlar ve diğer ilgili bilgilerle ilgili bilgileri girdiği hata raporudur.

Bu hata raporuna dayanarak, doğal dil işleme ve ölçümlerin birleşimi, sınıflar, değişkenlerin adları, dosyalar, yöntemler veya işlevler ve yöntemlere ve işlevlere yapılan çağrılar hakkında tüm kodu analiz eder. Uygulama, hata raporuna en iyi şekilde karşılık gelen kod bölümlerini belirler.

Sonuç olarak, geliştiriciler gözlemlenen arızadan sorumlu olma olasılıklarına göre sıralanmış beş ila on dosyadan oluşan bir liste alırlar. Geliştiriciler ayrıca, dahil olma olasılığı en yüksek olan arıza türü hakkında da bilgi alırlar. Bu veriler, hatayı daha hızlı bulmak ve düzeltmek için kullanılabilir.

“Yazılım geliştiricilerinin çalışma zamanı pahalıdır, ancak genellikle bu pahalı zamanın çoğunu yeni özellikler geliştirmekten çok hataları bulup düzeltmekle geçirirler,” diyor Birgit Hofer. “Bu sorunu ortadan kaldırmak için halihazırda bir dizi yaklaşım olduğu için, bunları ticari uygulama için bir temel oluşturacak şekilde nasıl birleştirebileceğimizi ve iyileştirebileceğimizi araştırdık. Artık temelleri attık ve sistem çalışıyor. Ancak, bunu bir şirkete entegre etmek için yine de şirketin ilgili ihtiyaçlarına göre uyarlanması gerekecektir.”

Hata ayıklama sistemi GitHub’da mevcuttur. Proje web sitesi bu araştırmayla ilişkili makaleler ve depolar içerir.

güvenli yazılım geliştirme e-kitabı

Bu e-Kitapta, dünyanın dört bir yanından katılımcılar, CSSLP’yi kazanmanın çabalarında başarılı olmalarına ve maliyetli hatalardan kaçınmalarına nasıl yardımcı olduğunu paylaşıyorlar.




Source link