Yazılım kalite yönetimi

**Yazılım kalite yönetimi** (**SQM**), ürünün müşterinin beklediği kalite standartlarını karşılamasını ve varsa gerekli düzenleyici ve geliştirici gereksinimlerini karşılamasını en iyi şekilde sağlayacak şekilde yazılım kalitesini geliştirmeyi ve yönetmeyi amaçlayan bir yönetim sürecidir. Yazılım kalite yöneticileri, yazılımların piyasaya sürülmeden önce test edilmesini isterler ve bunu, hataları piyasaya sürülmeden önce ortaya çıkarmak ve düzeltmek için döngüsel, süreç tabanlı bir kalite değerlendirmesi kullanarak yaparlar. Görevleri yalnızca yazılımlarının tüketici için iyi durumda olmasını sağlamak değil, aynı zamanda kuruluş genelinde bir kalite kültürü teşvik etmektir.

## Kalite yönetim faaliyetleri
Yazılım kalite yönetimi faaliyetleri genellikle üç temel bileşene ayrılır: kalite güvencesi, kalite planlaması ve kalite kontrolü. Yazılım mühendisi ve yazar Ian Sommerville gibi bazıları "kalite kontrol" terimini kullanmazlar (kalite kontrol genellikle bir yazılım geliştirme terimi olmaktan çok bir üretim terimi olarak görülür), bunun yerine ilişkili kavramları kalite güvencesi kavramıyla ilişkilendirirler. Ancak üç temel bileşenin geri kalanı aynıdır.

## Kalite güvencesi
Yazılım kalite güvencesi, örgütsel süreçlerin düzenli ve mantıksal bir kümesini oluşturur ve bu örgütsel süreçlerle eşleştirilmesi gereken, sektörün en iyi uygulamalarına dayalı yazılım geliştirme standartlarına karar verildiğinde, yazılım geliştiricilerin daha yüksek kalitede yazılım üretme şansı artar. Ancak, "bakım kolaylığı" ve "güvenilirlik" gibi kalite niteliklerini süreçlere bağlamak, yaratıcı tasarım unsurları nedeniyle üretimdeki mekanik süreçlere kıyasla yazılım geliştirmede daha zordur. Ek olarak, "süreç standardizasyonu bazen yaratıcılığı engelleyebilir ve bu da daha iyi kalitede yazılım yerine daha düşük kalitede yazılıma yol açabilir." 

Bu aşama şunları içerebilir:

* standart şablonlar kullanılarak iyi tanımlanmış mühendislik belgelerinin oluşturulması gibi belgeleme süreci standartlarının teşvik edilmesi
* kalite incelemeleri gibi standart süreçlerin nasıl yürütüleceğine dair rehberlik
* işlem içi test verisi kayıt prosedürlerinin gerçekleştirilmesi
* Yazılım geliştirme süreçlerinde kullanılması gereken standartların varsa belirlenmesi

## Kaliteli planlama
Kalite planlaması, daha ayrıntılı, proje tabanlı bir düzeyde çalışır; projenin çıktısıyla ilişkilendirilecek kalite niteliklerini ve bu niteliklerin nasıl değerlendirilmesi gerektiğini tanımlar. Ayrıca, mevcut organizasyonel standartlar da bu aşamada projeye atanabilir. "Sağlamlık", "erişilebilirlik" ve "modülerlik" gibi nitelikler yazılım geliştirme projesine atanabilir. Bu daha resmi, bütünsel bir süreç olsa da, daha çevik bir kalite yönetimi yöntemi kullananlar, katı planlama yapılarına daha az önem verebilirler. Kalite planı ayrıca hedeflenen pazarı, kritik yayın tarihlerini, kalite hedeflerini, beklenen riskleri ve risk yönetimi politikasını da ele alabilir.

## Kalite kontrol
Kalite kontrol ekibi, hem organizasyonel hem de proje düzeyinde kalite güvence süreçlerinin ve standartlarının takip edilmesini sağlamak için yazılımı çeşitli aşamalarda test eder ve inceler. (Sommerville gibi bazıları bu sorumlulukları kalite kontrolü olarak adlandırmak yerine kalite güvencesine bağlar. ) Bu kontroller, test edilecek ürüne ilişkin daha nesnel bir görüş sağlamak için geliştirme ekibinden ayrı olarak yapılır. Ancak, geliştirme tarafındaki proje yöneticileri de yardımcı olmalı ve bu aşamanın bir parçası olarak "hatalar keşfedildiğinde suçlamadan destek sağlayan bir kültür"ün teşvik edilmesine yardımcı olmalıdır. Daha çevik bir kalite yaklaşımı uygulayan yazılım geliştirme firmalarında, bu faaliyetler daha az resmi olabilir; ancak, daha resmi bir kalite yönetim yapısından çevik yöntemlere geçiş, yönetim prosedürleri uygun şekilde uyarlanmazsa sorunlara yol açabilir.

Faaliyetler şunları içerir:

* Yazılımın test sürecinin uygun şekilde belgelendirilmesi de dahil olmak üzere test sürümünün yayınlanması
* Yazılımın ve ilgili belgelerin standartlara uygun olmaması açısından incelenmesi
* Önceki testlerde ayrıntılı olarak açıklanan gerekli değişikliklerin ele alındığından emin olmak için yazılımın takip incelemesi
* Değerlendirme için yazılım ölçümü ve ölçümlerinin uygulanması

## Yazılım kalitesi ve yazılım yaşam döngüsü
Yazılım kalitesinin ölçülmesi, üretimden farklıdır; toleranslar uygulanabilir değildir (en azından aynı şekilde) ve yazılımın özelliklere uyup uymadığına ilişkin nesnel sonuçlara varmak zor, hatta imkansızdır. Ancak yazılımın kalitesi ve amaca uygunluk durumu, gerçekleştirilen projenin organizasyonuna ve türüne bağlı olarak çeşitli şekillerde gerçekleştirilebilir. Bu, yazılım geliştirme yaşam döngüsünün tamamının desteklenmesiyle gerçekleştirilir; yani:

* gereksinimlerin toplanması ve bir BT projesinin kapsamının tanımlanması, tanımlanan gereksinimlerin test edilebilir olup olmayacağının doğrulanmasına odaklanılması;
* Çözümün tasarlanması, bir test sürecinin planlanmasına odaklanmıştır, örneğin, ne tür testler gerçekleştirilecek ve bunlar test ortamları ve test verileri bağlamında nasıl gerçekleştirilecek? ;
* test durumları ve senaryolarla desteklenen bir çözümün uygulanması, bunların yürütülmesi ve hataların kaydedilmesi, hataların çözülmesinin koordinasyonu dahil;
* Planlanan değişikliklerin oluşturulan bir çözümün kalitesini ve nihai olarak bir test planının değişimini nasıl etkileyebileceğinin doğrulanmasıyla desteklenen değişiklik yönetiminin uygulanması; ve
* Oluşturulan çözümün genel kalitesinin karmaşık bir şekilde doğrulanmasına odaklanan testlerin gerçekleştirilmesiyle desteklenen projenin kapatılması.

### BT yöntemlerine bağlantılar
Yazılım kalite yönetimi, aşağıdakiler de dahil olmak üzere çeşitli proje yönetimi, geliştirme ve BT operasyon yöntemleriyle güçlü bir şekilde bağlantılı bir konudur:

* Oluşturulan ürünlerin çift kontrollü ve objektif kontrolünün gerekliliğini anlatan "Proje ortamında kalite" bileşeni. Kalite yönetim sistemi, kalite kontrol fonksiyonu, kalite planlaması ve kalite kontrolleri olmak üzere 4 unsurun kullanılmasını önermektedir.
* Oluşturulan ürünlerin tanımlanmış kalite kriterlerini karşılayıp karşılamadığının doğrulanmasına odaklanan "Kalite İnceleme Tekniği".

Proje yönetim yöntemi PMBOK 4. baskı  Proje Kalite Yönetimi bilgi alanını ve aşağıdaki süreçleri tanımlar:

* 3.4.12 Plan Kalitesi,
* 3.5.2. Kalite Güvencesini Gerçekleştirin,
* 3.6.7. Kalite Kontrolünü Gerçekleştirin
* Gelişim metodu RUP, başlangıçtan başlayıp geçiş aşamasına kadar tüm aşamalarda uygulanan disiplin testini tanımlar.
* MSF geliştirme yöntemi, esas olarak bir çözümü test etmeye odaklanan test rolünü ve stabilizasyon aşamasını tanımlar.
* Çevik yöntemler, test uzmanının rolünü veya yazılım kalite yönetimiyle ilgili mekanizmaları kesin olarak tanımlamaz. Yöntemler yalnızca sürekli entegrasyon ve test odaklı geliştirme gibi teknikleri tanımlamaktadır. Ancak son olarak çevik test hakkında bir yayın ortaya çıktı.
* Operasyonel yöntem CMMI, diğerlerinin yanı sıra CMMI seviye 2'de zorunlu olan PPQA "Süreç ve Ürün Kalite Güvencesi" süreç alanını tanımlar.
* Operasyonel yöntem COBIT, diğerlerinin yanı sıra P08 Kaliteyi Yönet sürecini tanımlar.
* Operasyonel yöntem ITIL, diğerlerinin yanı sıra Sürekli Hizmet İyileştirme adlı yayında tanımlanmıştır.
* V-Model – Yazılım geliştirme yaşam döngüsünü ve test sürecini tanımlayan model.
* ISO 9000 – standartlar ailesi kalite yönetim sistemleriyle ilgilidir ve kuruluşların ürünle ilgili yasal ve düzenleyici gereklilikleri yerine getirirken müşterilerin ve diğer paydaşların ihtiyaçlarını karşılamalarına yardımcı olmak için tasarlanmıştır.[1]

## Dernekler ve kuruluşlar

* Amerikan Kalite Derneği (ASQ), üyelerine kalite yönetimi, sürekli iyileştirme ve ürün güvenliği ile ilgili sertifikasyon, eğitim, yayınlar, konferanslar ve diğer hizmetler sağlayan profesyonel bir kuruluştur.
* Uluslararası Yazılım Test Yeterlilik Kurulu (ISTQBP), Belçika'da kayıtlı, kâr amacı gütmeyen uluslararası bir dernektir. Yazılım test uzmanları için sertifikasyon sürecini yönetiyor ve 120'den fazla ülkede 535.000'den fazla sertifika yayınına sahip.

## Ayrıca bakınız
* Kalite güvencesi

## Kaynakça

### Genel kaynaklar
# l
# 
#