Yazılım kalite güvencesi; yazılım ürün ve süreçlerinin yazılım geliştirme projesi yaşam döngüsü boyunca tanımlı gereklere uygunluğuna dair güvence vermek amacıyla planlanan, uygulamaya konan ve uygulanan faaliyetler bütünüdür. Burada güvence vermenin anlamı, ürünün gelişimi bittikten sonra istenen gereklere uyguluğunun doğrulanmasıdır. Güvencenin tanımından yola çıkılırsa kalite güvencesi sadece varolan ürünün kalitesini kapsamaktadır, oysa bunun yerine gelecekteki performansa dair de fikir verebilmelidir.

Yazılım ile kastedilen anlam ve kullanım alanı, ilk kullanılmaya başladığı zamandan günümüze kadar çok fazla değişim göstermiştir. Yakın zamana kadar sadece zaman alan veri işleme operasyonlarında kullanılırken bugün çok daha gelişmiş teknik alt yapılar kullanan ve karmaşık işlemleri yerine getirmede kullanılmaktadır. Bu gelişmelerle beraber artan karmaşıklığı önlemek için ise bazı standartlar ve modeller getirilmiştir. Bunlar arasında, SEI CMMI modeli, ISO 9001 ve NATO AQOP-160 sayılabilir. Bunlar, karmalık ürün geliştirme faaliyetlerini etkin biçimde yönetmek için geliştirilmişlerdir ve bunu sağlamak için de kalite güvenceyi gerekli araçlardan biri olarak kabul etmektedirler.

Yazılım geliştirme faaliyetlerinin tamamlanmasının ardından, yapılan kontroller aracılığıyla bu faaliyetlerin gereksinimlere uygunluğunun değerlendirilmesi, yazılım ürününün testlere ve incelemelere tabi tutularak ürünün gereksinimlere uygunluğuna dair güvence sağlanması bu standart ve modellerin uygulama biçimlerindendir. Ancak başta da değinildiği gibi aynı şey söz konusudur. Bu değerlendirme ürün ortaya çıktıktan sonra yapılmaktadır ve uygunsuzluk saptandıktan sonra harcanan maliyetine önüne geçilme gibi bir durum söz konusu olamamaktadır. Bunun yerine kalite güvencenin alt yapısına uygun olmayan durumlar oluşmadan saptanabilmelidir. Bu önlemek için, daha önce uygulanan kalite güvence yaklaşımı ile firmaların kendi benimsedikleri modeller ve standartlardaki kalite güvence tanımlarını bir araya getirilmesi gerektiği fikri öne sürülmüştür. (MILSOFT)

Bir Düzeltme Aracı Olarak Kalite Güvence ve Sorunları : Kalite güvencenin bu şekilde kullanımı genelde yazılım geliştirme faaliyetlerinin tanımlanan şekilde yürütülüp yürütülemediğinin kontrol edilmesi ve bir uygunsuzluk saptandığında düzeltme amaçlı işlem başlatma şeklindedir.

Yazılım geliştirme faaliyetleri üretim ile hizmet arasında bir sınırda yer almaktadır. Bazı açılardan hizmet olarak görülmesi sebebiyle de kalite güvencenin bu farklılıklara cevap verecek şekilde olması gerekmektedir. Bu sebeple de yazılım kalite güvencesinde ürün odaklı yaklaşımlar kadar süreç odaklı yaklaşımlar da önem kazanmaktadır. Ürünün gereksinimlere uygunluğu güvence altına almak için tasarım ve üretim aşaması süreçlerinin tanımladıkları şekilde uygulanmaları öne çıkan bir durumdur. Yazılım kalite güvencesi yaygın olarak kullanılan bir uygulama bu süreçlere uygunluğun çeşitli denetimlerle bağımsız denetçiler tarafından kontrol edilmesidir.

Yazılım kalite güvencesinde benimsenen yaklaşım, ürün geliştiriminden sonra oluşan hataları saptayıp geri dönüş yapmaksa uygulanacak adımlar şu şekilde olacaktır:

1. Tanımlı gereksinimlerin analiz edilmesi,

2. Denetimin yapıldığı nokta itibariyle gereksinimlerin belirlenmesi,

3. Uygulama sonuçlarının (çıktılarının) incelenmesi,

4. Çıktılar ile beklenenin kıyaslanması,

5. Uygunsuzlukların (sapmaların) belirlenmesi.

Bu işleyiş tamamlandıktan sonra uygunsuzlukların düzeltilmesi için ayrı bir akış kullanılacaktır. Bunun için aşağıdaki adımların uygulanması gerekmektedir:

1. Uygunsuzlukların dokümante edilmesi,

2. Uygunsuzlukların düzeltilmesine yönelik işlem planı oluşturulması,

3. Düzeltme amaçlı işlem alınması,

4. İşlemin takibi ve başarısının değerlendirilmesi.

Bu yaklaşım uygulandığında harcanan iş gücü ve maliyet, gerçekleşmeden uygunsuzlukların saptanması ve önlenmesine göre çok daha fazladır. Bu durumda da kalite güvenceden yeterli verimin alınmadığı ifade edilir. Ancak uygunsuzluk saptandıktan sonra geri dönüş mümkün olmayadabilir. Bu sebeplerden dolayı ve ürünün pazara sunuşunda zaman göz ardı edilemeyecek bir kısıt olduğundan bu uygulanabilir bir yaklaşım olamamaktadır.

Milsoft’un bu yaklaşımı kullandığı dönemdeki kalite güvenceyi sağlamadaki işlem adımları:

1. Yasal, organizasyonel ve sözleşmesel gereksinimlerin analizi ile gereksinimlerin uygulanması gereken kapsamın belirlenmesi,

2. Denetimlerle gereksinimlere uygunsuzluğun belirlenmesi,

3. Uygunsuzlukların kritiklik açısından değerlendirilerek derecelendirilmesi,

4. Uygunsuzlukların raporlanması,

5. Düzeltme faaliyetinin planlanması ve takvimlendirilmesi,

6. Düzeltme faaliyetinin kontrol edilmesi

Önleme Aracı Olarak Kalite Güvence ve Bileşenleri : Uygunsuzlukların oluştuktan sonra düzeltilmesi yarattığı sorunlar ve belirtilen kısıtlardan dolayı düzeltme odaklı kalite güvencesi sağlama savunma sanayi açısında uygun değildir. Buna karşılık uygunlukların gerçekleşmeden düzeltilmesi yaklaşımı kullanılacaksa ise, iki faktör öne çıkmaktadır:

  • Uygunsuzlukları oluşmadan belirleyen metodolojini, düzeltici kalite güvence yaklaşımına benzer maliyet yapısına sahip, verimli tasarımlanması gerekmektedir.
  • Uygunsuzlukları oluşmadan önleme maliyetinin, düzeltme maliyetine kıyasla düşük olması gerekmektedir.

Bu yaklaşımda gereklerden biri, yazılım geliştirme faaliyetlerini kavramak ve akışta uygunsuzlukların ortaya çıkması müsait noktaları belirleyebilmektir. Bu sebeple de tamamlanmış yazılım geliştirme projesi uygulamaları ve uygunsuzlukları kaynak olarak kullanılır. Bunun için geçmişte karşılaşılan uygunsuzluklar ve bu uygunsuzlukların kaynağı, düzeltme yöntem ve maliyetleri araştırılmalıdır. Geçmişte yapılmış projeler incelenirken ise daha önce yapılan benzer projelerin incelenmesi daha güvenilir sonuçlar verecektir.

Önleme odaklı yaklaşımın, diğer yaklaşıma göre bir farkı da, denetim çıktılarında görülebilir. Bu yaklaşımda olası uygunsuzluklar da – uygunsuzluk riski olarak – elde edilir. Olası uygunsuzlukların iki şekilde kullanılması mümkündür:

1. Eğer elde edilen veriler uygunsuzluk gerçekleşmeden önce önlemek için işlem almaya yeterliyse, uygunsuzluğun önlenmesi sağlanabilir.

2. Elde edilen veriler önleme için yeterince temel oluşturmuyorsa, bu veriler ilerleyen aşamalardaki kalite güvence faaliyetlerinin planlamasında kullanılabilir.

Bu yaklaşımın bileşenleri:

• Temeli oluşturan denetim mekanizması

• Yazılıma yönelik gereksinimler

• Geçmiş projelerin uygunsuzluk verileri

• Yazılım geliştirme faaliyetlerinin çıktıları

• Ölçüm sonuçları ve risk analizleri

Bu yaklaşımın uygulamaya geçiş aşamaları ise şu şekildedir:

1. Mevcut kalite güvence süreçlerinin analizi ile önleme amaçlı yaklaşım uygun noktalara yerleştirilmelidir.

2. Kalite güvence personeli, olası uygunsuzlukların analizi için gerekli yetkinliğe ve bakış açısına kavuşturulmalıdır.

3. Yazılım geliştirme faaliyetleri ile ilgili tanımlı ölçümler ve risk analiz yaklaşımları incelenerek kalite güvencede kullanıma yönelik strateji oluşturulmalıdır.

4. Geçmiş yazılım geliştirme projelerindeki uygunsuzluklar analiz edilerek bir sonraki dönem kalite güvence planlamasına temel oluşturacak veriler belirlenmelidir.

5. Yazılım geliştirme ekipleri bilgilendirilerek yaklaşımın katkıları ve onlardan beklenenler anlatılmalıdır.

Kalite Güvence Etkinlik Başarı Kriteri:

Değer Sonuç
Başarılı Önleme Sayısı / Denetim Sayısı <Hedef Başarısız
>=Hedef Başarılı

Kalite Güvence Verimlilik Başarı Kriteri:

Değer Sonuç
Başarılı Önleme Sayısı / Denetim Eforu <Hedef Başarısız
>=Hedef Başarılı

Önleme odaklı kalite güvence yaklaşımının taşıdığı riskler:

  • Yaklaşımın anlaşılmasıyla ilgili riskler
  • Uygulamayla ilgili riskler
  • Yaklaşımın maliyetiyle ilgili riskler

Referanslar:

http://ftp.cs.hacettepe.edu.tr/pub/dersler/BIL4XX/BIL445_YMK/odevler/odev-4%20(teslim:%2023%20aralik)/odev-4_makale.pdf