ScholarGate
Asistan

Yazılım İnşası ve Kalitesi

Yazılım inşası ve kalitesi, çalışan kodun disiplinli bir şekilde oluşturulması ile yazılımın gereksinimlerini ve kalite hedeflerini karşıladığını belirleyen ve güvence altına alan test, doğrulama, inceleme ve ölçüm gibi tekniklerle ilgilenmektedir.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

Yazılım inşası, kodlama, doğrulama, birim testi ve hata ayıklama yoluyla çalışan yazılımın detaylı olarak oluşturulmasıdır; yazılım kalitesi ise, yazılımın belirtilen ve ima edilen gereksinimlerini ne ölçüde karşıladığı olup, doğrulama, geçerlilik ve kalite yönetimi faaliyetleri ile güvence altına alınmaktadır.

Kapsam

Bu alan, kodlama standartları, savunmacı programlama ve birim testi dahil olmak üzere yazılım inşası uygulamalarını; yazılım test seviyelerini ve tekniklerini; doğrulama ve geçerliliği; statik ve dinamik analizi; kod incelemesini ve yeniden düzenlemeyi (refactoring); yazılım kalite niteliklerini ve metriklerini; ve doğruluğu kanıtlamak için resmi yöntemleri kapsamaktadır. Güvenilir yazılım üreten ve güvence altına alan faaliyetleri bir araya getirmektedir.

Alt konular

Temel sorular

  • Hangi uygulamalar doğru, okunabilir ve sürdürülebilir kod üretmektedir?
  • Kusurlar test, inceleme ve analiz yoluyla nasıl tespit edilmektedir?
  • Yazılım kalitesi nasıl tanımlanmakta, ölçülmekte ve güvence altına alınmaktadır?
  • Doğruluk, yalnızca test yerine resmi kanıtla ne zaman sağlanabilmektedir?

Temel kuramlar

Test, kusurların yokluğunu değil, varlığını ortaya koyar
Test, kusurların var olduğunu gösterebilmekte ancak yokluğunu kanıtlayamamaktadır; bu nedenle etkili test, kapsamlı yürütme yerine sistematik vaka seçimi yoluyla hata bulma olasılığını en üst düzeye çıkarmayı hedeflemektedir.
Doğrulama ve geçerlilik
Doğrulama, yazılımın kendi spesifikasyonuna göre doğru bir şekilde inşa edildiğini kontrol ederken, geçerlilik ise kullanıcı ihtiyaçlarını karşılamak üzere doğru yazılımın inşa edildiğini kontrol etmektedir; birlikte yaşam döngüsü boyunca incelemeleri, analizi ve testi kapsamaktadırlar.
Kalite test edilerek değil, inşa edilerek sağlanır
Kalite, son aşamadaki denetimden ziyade inşa uygulamaları, tasarım ve süreç disiplininden kaynaklanmaktadır; kusur önleme ve erken tespit, geç düzeltmeden çok daha ekonomiktir.

Klinik önem

İnşa ve kalite faaliyetleri, bir sistemin güvenilirliğini, güvenliğini ve sürdürülebilirliğini belirlemekte ve kusurların maliyetine hakim olmaktadır; erken ve sistematik doğrulama, saha arızalarını ve yeniden işleme ihtiyacını azaltmakta olup, bu da güvenilir yazılım sunmanın merkezinde yer almaktadır.

Kanıt ve kılavuzlar

ISO/IEC 25010 bir yazılım ürün kalite modelini tanımlamakta olup, SWEBOK'un Yazılım İnşası, Test ve Kalite bilgi alanları, uzlaşmaya dayalı referans rehberlik sağlamaktadır.

Tarihçe

Sistematik test, 1970'lerde Myers tarafından ifade edilmiş, yapısal programlama ve doğrulama aynı dönemde Dijkstra ve Hoare tarafından geliştirilmiş, inşa ustalığı ise 1990'larda McConnell tarafından ele alınmıştır; ISO/IEC 25010 gibi kalite modelleri ve standartları, kalite niteliklerini ve ölçümünü birleştirmiştir.

Tartışmalar

Test etme ve resmi doğrulama
Doğruluğa olan güvenin kapsamlı testlere mi yoksa resmi kanıta mı dayanması gerektiği tartışılmaktadır; test büyük sistemlere ölçeklenebilmekte ancak doğruluğu garanti edememektedir, oysa resmi yöntemler daha yüksek maliyetle güçlü garantiler sunmakta ve kritik bileşenler için ayrılmaktadır.

Öne çıkan isimler

  • Glenford Myers
  • Steve McConnell
  • C. A. R. Hoare
  • Edsger Dijkstra

İlgili konular

Temel eserler

  • myers2011
  • mcconnell2004
  • swebok2014

Sıkça sorulan sorular

Test, bir programın doğru olduğunu kanıtlayabilir mi?
Hayır. Test, sonlu bir girdi kümesini kullanır ve kusurları ortaya çıkarabilmekte ancak yokluklarını gösterememektedir; tüm girdiler için doğruluğu kanıtlamak, yalnızca bir sistemin kısıtlı veya kritik kısımları için uygulanabilir olan resmi doğrulama gerektirmektedir.
Kalite, hataların yokluğu ile aynı mıdır?
Hayır. Yazılım kalitesi çok boyutludur; işlevsel doğruluğun yanı sıra güvenilirlik, performans, güvenlik, kullanılabilirlik ve sürdürülebilirlik gibi nitelikleri de kapsamaktadır; az sayıda hatası olan bir program, sürdürülemez veya güvensiz ise yine de düşük kalitede olabilmektedir.

Bu kavram için yöntemler

İlgili kavramlar