Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Tanıl Ergin
Tanıl Ergin
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
21 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  Yazılım Müh. Tanıl Ergin
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : Yazılım Müh.
Yayınlanma Tarihi : 18.2.2004
Okunma Sayısı : 35881
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 20.4.2024
Turhal Temizer
Mac OS/X Removing CUDA 20.4.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 20.4.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 20.4.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Yazılım Kalite Güvencesi
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Her yazılım geliştirme veya yazılım bakım projesi kalite güvence aktivitesi içerir. Programcı farkında olmasa da, tek kişilik yaızlım geliştirme projeleri bile kalite güvence aktiviteleri içerir. Her programcının, kodun nasıl yazılması gerektiği hakkında bir düşüncesi vardır ve bu düşünce tarzı o pprogramcı için bir kodlama standardı olarak iş görür.

1. YAZILIM KALİTE GÜVENCESİ  

1.1 Giriş

Benzer olarak, herkesin bir belgenin nasıl yazılması gerektiği hakkında fikirleri vardır. Bu, kişiserl bir standarddır. Insanlar, sahip oldukalrı bu standardlara göre belgeleri gözden geçirirler. Aynı şekilde, programcılar da programlarının kendi standardlarına uygun olup olmadığını anlamak için gözden geçirirler. Bu çalışmalara KG (Kalite Güvence) incelemeleri denir.

Bir projenin resmi KG programı, her takım üyesinin yaptığı KG aktivitewlerini içerir. Fakat bu aktiviteleri kişi bazında değil de, proje azında KG planları olarak ele alır. KG planlarının uzunluğu, detaylılığı projeye ve projenin risklerine göre değişir.

   

1.2 KG Kavramları ve Tanımları

Kalite Güvence, yazılım yordamlarının ve ürünlerinin “gereksinimlere, standardlara” uygunluğunu belirleyen planlı ve sistematik çalışmalardır.

Yazılım Kalite Güvencesi, ;  yazılım geliştirme süresince her adımda uygulanan bir şemsiye etkinliktir. Gereksinimlerin düzgün olarak saptandığını ve ürünlerin, servislerin belirli standardlarda olduğunu kanıtlayan planlı ve sistematik bir dizi aktivitelerdir.
Süreç, Tasarım, geliştirme, genişletme, yazılım bakımı aktivitelerini kapsar.

Ürün, yazılımı, ilgiyi veriyi, belgeleri ve tüm raporları kapsar. KG, yazılım geliştirme süreci yaşam döngüsü boyunca standardların ve yordamların uygulandığını ölçen süreci de kapsar. 

Standardlar, yazılım ürünlerinin karşılaştırıldığı kriterlerdir.

Yordamlar, geliştirme ve kontrol süreçlerinin karşılaştırıldığı kriterlerdir. Gereksinimlere, standardlara, yordamlara uygunluk, izleme, test yapma, inceleme, değerlendirme ile ölçümlenir. Yazılım geliştirme yaşam döngüsündeki üç destekleyici aktivite yönetim, mühendislik, kalite güvencesidir.

Yazılım Yönetimi , planlama, kontrol yazılım projesini yönlendirme aktivitelerini kapsar.

Yazılım Mühendisliği , gereksinimlerin analizi, tasarım geliştirme, kodlama, veritabanlarını yaratma aktivitelerini kapsar.

, yönetim ve mühendislik aktivitelerinin tüm gereksinimleri karşıladığını garanti eder. 

1.3 Kalite Güvence Hedefleri

Yazılım geliştirme, diğer tüm karmaşık geliştirme aktiviteleri gibi risklerle doludur. Bu riskler, teknik veya program ile ilgili olabilir. Bu da, yazılımın beklenildiği gibi olmasını engelleyebilir.

KG’nin hedefi, bu riskleri azaltmaktır. Örneğin, kodlama standardları yazılan kod kalitesini belirli bir seviyede tutmak için gereklidir. Eğer herhangi bir standard yoksa, oluşan kodun, yeniden kullanılabilirlik ile ilgili gereksinimlere uygun olmaması riski vardır ve bu da kodun üstnde tekrar çalışma yapmayı gerektirir.

KG süreci, riskleri azaltmak ve ürünün kalitesinin garantilenmesi için   yapılması zorunlu bir süreçtir. Hiç bir KG sürecinin olmaması, kabul edilemez bir kodun oluşma riskini arttırır. 

1.4 Kalite Güvence Takımı 

KG’nin, ayrı, bağımsız bir takım tarafından ele alınması gerekir. KG fonksiyonları en iyi, mühendislik ve yönetimden ayrı bir KG test ortamında yapılabilir. Yönetimsel olarak, KG üst müdürlere ve proje yöneticisine raporlar verir.

Ayrı bir takım gerekmesinin nedeni, geliştirme sürecinde standardlara uyulduğunu garantileyen, yönetimin sağ kolu olmasındandır. Eğer KG ayrı olmazsa, gerçekçi bir sonuç elde edilemez. Ayrıca, testlerin tasarım veya kodlama detayları tarafından etkilenmediğini, geresinimlere göre yapıldığını garanti eder. 

Sadece KG aktiviteleri ile ilgilenen takım geliştirme takımına göre daha küçüktür ama sadece KG sorumluluğuna sahip bir takımın bulundurulmasının çok faydası vardır. 

 
Şekil 2 - Yazılım Kalite Güvence Takımının Yeri

1.5 Özet 

KG yazılım geliştirme ve bakımının olmazsa olmaz bir parçasıdır. Yazılım yönetimi ve mühendisliğini tamalayan üçüncü parçadır. Yazılım projesinin başarısını direkt olarak etkiler.

2. KALİTE GÜVENCE AKTİVİTELERİ

2.1 Planlama 

2.1.1 Kalite Güvencesini Projeye Uygun Hale Getirmek

Projenin karakteristikleri ve riskleri KG ihtiyaçlarını etkiler ve bu yüzden her KG planı projeye özgü olarak değiştirilmelidir. Ele alınması gereken karakteristikler projenin görevlerinin tehlikesi, zaman çizelgesi, bütçesi, büyüklüğü, karmaşıklığı ile ilgilidir.   

Normal olarak, proje ne kadar kritikse, KG o kadar önemli ve biçimsel olmalı diye düşünülür. Ayrıca bütçe ve zaman çizelgesi ilişkisi segisel değildir. Daha sıkı bir bütçe ve zaman çizelgesi, iyi planlanmış bir KG’nin önemini arttırır. Ama bu, kaynakları bol olan bir projede KG gevşek olacak demek değildir. Bu, kaynakları bol olmayan bir projenin riskli daha fazla olacağı için KG daha güçlü olmalıdır demektir.

Gerekli olan KG seviyesini projenin büyüklüğü ve son ürün belirler. Büyük bir proje detaylı bir plan gerektirir. 

Bunlara ek olarak, büyük bir proje test ve doğrulama aşamalarında ekstra çaba gerektirir. Böyle bir proje için düşük kaliteyi önlemek için biçimsel bir KG planı kabul edilmelidir. Diğer yandan küçük bir projede, KG ço az çaba gerektirir. Hatta KG aktiviteleri programcıya bırakılabilir.  

2.1.2 Kalite Güvence Planını Yaratmak 

KG planı yaratmaktaki amaç, belirli bir proje için gerekli olan tüm KG aktivitelerini belgelemek ve belirtmektir. Proje hakkındaki bilgiye ve varolan KG kaynaklarına dayanılarak, projeye uygun bir KG planı yapılır. Etkin bir plan, planlamayı ve izlemeyi gerektirir. 

KG planı yaratılırken şunları gözönünde tutmalıyız:

1 KG, proje yönetimi ve mühendisliği ile proje yaşam döngüsü boyunca içiçedir.

2 KG aktiviteleri düzgün olarak ayrılmalıdr. Örneğin, tasarım standardları, tasarım bitmeden hazırlanmalıdır.

3 Araç temini kullanılacak araçlar gerekli olmadan temin edilmelidir. (Özellikle test araçları ve veri kaynakları)

2.1.3 Test-Durumu Yaratma

Test-durumu, bir girdi, eylem veya olay ve beklenen cevabı açıklayan bir belgedir. KG mühendisleri uygulamanın belirli bir özelliğini test etmek için bu senaryoları kullanırlar.  

Test-durumu yaratma süreci gereksinimlerin bulunmasına veya tasarıma yardımcı olabilir. Bu yuzden test-case’lerin geliştirmenin erken evresinde yapılması daha iyidir.  Bir test-durumunda şunlar bulunur.

1 Detaylı kurulum talimatları
2 Detaylı test yordamları (tüm adımları ve eylemleri içerir)

3 Beklenen sonuçlar (kabul edilebilirlik kriterleri) 

2.1.4 Standardları ve Yordamları Saptama

Yazılım projesinin standardlarını ver yordamlarını saptama çok öenmli bir iştir çünkü bu aşamada yazılımın çerçevesi belirlenecektir. Yazılım ürünlerinin karşılaştırıldığı standardlar ve “gelişmenin ve kontrolün” karşılaştırıldığı yordamlar, yazılım geliştirmedeki metotların geliştirilmesini sağlar. KG’nin rolü, standardların ve yordamların yeterliliğini ve varlığını garanti etmektir.

KG aktiviteleri olan izleme, ürün değerlendirme, dentleme belirsiz ytanımlara dayandığı için standardların ve yordamların kağıda dökülmesi, belgelenmesi şarttır.

Belgeleme standardları , proje boyunca tutarlılığı sağlar. Ayrıca, paln ve ürün raporlarının içeriğini ve formunu belirler.

Tasarım standardları , tasarım ürününün formunu ve içeriğini belirler. Yazılım gereksinimlerini yazılım tasarımına dönüştürecek olan kuralları ve metotları sağlar.

Belgelenmiş yordamlar  bir yordamı yürütürken uygulanacak adımları belirler. Örneğin; konfigürasyon yönetimi, test etme, biçimsel incelemeler. 

2.1.5 Tamamlanma Ölçütlerini Saptama 

Yazılımın doğası gereği, yazılım geliştirmenin ve bakımın durumunu tam olarak söyeleyebilmek zordur. Bu yüzden, belirli bölümlerin tamamlanması ile ilgili kriterler belirlemek gerekir. Gerçekleştirim safhasında, en detaylı seviyenin bitirilmesi gerekir (progam elemanlarının tasarımı, elemanları kodlama, test etme) program elemanlarının sayısı fazla olunca, belirli bir tamamlanma ölçütü olmadan birimlerin bitirilip bitirlmediğini anlamak zordur. Tamamlanma ölçütü saptanması bir yönetim fonksiyonudur ama denetleme önemli bir KG aktivitesidir. Denetlemeler, raporlanan durumların gerçekliğini ölçer. 

2.1.6 Standardlar ve Yordamları Denetlemek 

Denetleme, KG’nin önemli bir adımıdır. Denetleme, ürüne veya yordama detaylı olarak bakarak saptanan yordamlar ve standardlar ile karşılaştırır. Denetleme, yazılım ürünün kalitesini ve durmunu belirlemede kullanılır. 

KG denetlemesinin amacı, gerekli kontrol yordamlarının izlenildiğini, gerekli belgelemenin yapıldığını ve geliştiricinin raporunun doğruluğunu kontorl etmektir. KG denetleme raporu, geliştirmenin standardlara uygun olarak yapılmasını sağlar.

2.1.7 Ürünleri ve Yordamları İzleme, Kontrol Etme

Proje değerlendirme ve süreç izleme, proje yönetim planında belitilen yazılım geliştirme ve kontrol yordamlarının projeye doğru şekilde uyulduğunu saptamak ve standardlara, süreçlere uyulduğunu denetlemektir.  Ürünler standardlara uygunluk için kontrol edilir. 

Ürün değerlendirme ve yordam izlemedeki en önemli eylem denetleme yapmaktır.

İdeal olarak, KG tarafından izlenen ilk ürünler projenin standardlarıdır. KG, anlaşılır ve erişilebilir standardlar olduğunu garanti eder ve ürünlerin bu standadrlara uyumluluğunu ölçer. Bu da yazlım ürünün gereksinimleri sağladığını gösterir.

2.1.8 Doğrulama ve Geçerlilik İzleme

KG, doğrulama ve geçerlilik süreçlerini, izleme yaparak, ürün gözden geçirmelerine katılarak sağlar.  Gözden geçirme, ürüne genel bir bakış olarak görülür ve ürünün gereksinimlerini karşılayıp karşılamadığını ölçer. Biçimsel gözden geçirmelerde, tamamlanan iş standardlarla karşılaştırılır. Gözden geçirmeler yazılım geliştirme sürecnin parçasıdır ve her bölümün sonunda, problemleri tanımlamak ve gereksinimlerin ne kadar karşılandığını belirlemek için yapılmalıdır. Sürecin sonunda, hazır/hazır değil şeklinde bir sonuca varılıp bu sonuca göre bir sonraki adıma geçilir/geçilmez. Bir sonraki adıma geçip geçmemek yönetimin işi olsa da KG kararda etkili olur. 

2.2 KG Testleri 

Yazılım testleri ürünün tamamlandığını/tamamlanmadığını ve dağıtıma hazır olduğunu/olmadığını belirler. 

2.2.1 KG Testelerinin Hedefleri

  • Müşteriye verilecek olan ürünün kalitesini belirlemek

  • Tam olarak bir test yaşam döngüsünü tasarlamak, birleştirmek, çalıştırmak

  • Son ürünün tüm fonksiyonel yeteneklerini kontrol etmek

  • Son ürünün kararlılığını ve performansını test etmek

  • Ürünlerin müşteri beklentilerine ve gereksinimlerine uygun olup olmadığını test etmek

  • Kodu hatalara karşı test etmek, doğrulamak 

2.2.2 KG Testi İçin Hazırlık 

KG, test planları, ıest belirtimleri, test yordamları gibi test belgeleri hazırlar ve belgelerin standardlara uygunluğunu kontrol eder. KG aşağıdakileri doğrular:

  • Test planlarıyla testcase’ler birbiriyle tutarlıdır

  • Test-case’leri doğrulanabilirdir

  • Yazılımın son hali test edilmektedir. 

2.2.3 İyi Bir KG Testi Nasıl Yapılır?

Şunu unutmamak gerekir ki tüm testler, son ürünün müşteri beklentileri ve gereksinimleri ile karşılaştırılarak yapılacaktır. Bu yüzden gereksinimler, gerektiğinde değiştirilmelidir ve yazılımın tüm fonksiyonlarını göstermelidir. Beklenti dışı her fonksiyon hata olarak varsıyılacaktır.

2.3 Kalite Güvence Testleri

2.3.1 Birim Testi

Birim test durumları programın doğruluğunu ölçmek için kullanılır. “Beyaz kutu testi” programın modüllerini ve süreçleri test eder. Bu testte programın fonksiyonelliği değil de kod yapısı incelenir. Bunu başarabilmek için, bir durum tekniği kullanılır:

1 Programdaki her ifade test süresince en az bir kez doğru veya yanlış değer almalıdır.

2 Test süresince her durum olası sonuçların hepsini göstermelidir 

2.3.2 Yapılandırma Yönetimi 

Yapılandırma yönetimi takımı test ortamını hazırlar. 

2.3.3 Versiyon Doğrulama 

Bir versiyon tamamlanma ölçütünü sağladığında ve test edilmeye hazır olduğunda, KG takımı bu versyionu test eder.

  • Eğer versiyon test edilemezse, KG takımı bu versiyonu reddeder

  • Eğer bazı parçaları test edilebilirken bazı parçaları henüz hazır değilse, KG takımı, proje yöneticisi ile birlikte yeni bir zaman çizelgesi hazırlar. 

2.3.4 Tamamlanma Testi 

Tamamlanma testi, sistemin tüm parçalarının birbiriyle düzgün haberleştiğini ve veri akışının doğru yapıldığını test eder. Son tamamlanma testi, sistem bir bütün olarak çalışabildiğini gösterir. 

2.3.5 Fonksiyonel Test 

Fonksiyonel test, sistemin her elemanının gereksinimleri karşılamakta olduğunu, sistem tasraım belirtimlerine, diğer fonskiyonel özelliklere uyumlu olduğunu gösterir. 

2.3.6 Fonksiyonel Olmayan Test 

Fonksiyonel olmayan test, tüm belgelenmiş standardlara ve gereksinimlere uygunluğu gösterir. Örneğin, cevap zamanı, diğer sistemlerle uyumluluk. Eğer sistem donanımında sistemin belirli miktar eri tarfiğine izin verdiği belirtilmişse, bu durumlar da test edilmelidir.

2.3.7 Hata Düzeltme Doğrulama

Eğer geliştirme esnasında hatalar bulunup düzeltildiyse, KG bu bölümlerdei düzeltmelere ayrıca test uygular.

2.3.8 Anlık Test 

Bu tip testler gerçek kullanıcı senaryolarını canladırmada kullanılır. KG mühendisleri, kullanıcın yapacağı davranışları yaparak sistemi test ederler. Örneğin sayfa tam yüklenmeden “ileri” tuşuna basmak gibi. 

2.3.9 Gerileme Testi 

Gerileme testi, her yeni versiyon yayınlandıktan sonra, yeni versiyonun eski versiyonlar üzerinde kötü etki bırakıp bırakmadığını ölçmeye yarar. Gerileme testi, projede devamlı bir artmalı ilerleme olduğunu gösterir. 

2.3.10 Hata Yönetimi 

KG test aşamsında, tüm hatalar hata yönetimi iş akışı ile takıma sunulur. Takım içinde düzenli toplantılar yapılır.  

2.3.11 Kalite Gğvence Raporu Hazırlama 

Bu raporlar test sonuçlarını, bilinen hataları, önerilen çözümleri içerir.

3. YAZILIM KALİTE GÜVENCESİ VE CMM

  • KG, CMM’de aşağıdaki aktiviteler ile gerçekleştirilir.
  • KG aktiviteleri, projenin her aşamasında uygulanır.
  • Bağımsız bir yazılım kalite güvence grubu oluşturulur.
  • Projeyle ilgili olan herkese bu bağımsız grup bildirilir.
  • Genel bir kurumsal KG planı yazılır.
  • KG takımı aktiviteleri YK planında anlatılır.
  • Proje deki uyumululuk doğrulamada ve sonuçların periyodik olarak raporlandığı kontrol etmek için “denetleme ve gözde geçirme” teknikleri uygulanır.
  • KG grubu yazılımdaki anormallikleri, çzöülemeyen durumları uygun bir biçimde raporlar.
  • Uygunsa müşteriyle birlikte kalite güvencesi gözden geçirilir.
  • KG aktivitelerinin bütçesi ve zaman çizelgesi belirlenir.
KG grubunun aktiviteleri, üst düzey yönetim, proje yönetimi ,proje müdürü ve bağımsız uzamnlar tarafından incelenir.

4. YAZILIM KALİTE GÜVENCE’DE KURULUŞLAR & SERTİFİKALAR 

SEI – Yazılım Mühendisliği Enstitüsü (Software Engineering Institute) web sitesi; SEI teknik programlar ile ilgili bilgiler, yayımlar, bibliyografyalar, çevirim-içi belgeler, SEI kursları, eğitim, diğer sitelere linkler.

IEEE Standardları - IEEE web sitesi; Yazılım mühendisliği standardları, yazılım kalite güvence standardları  

American Society for Quality – Amerika Kalite Topluluğu (American Society for Quality) web sitesi; kalite ile ilgili yazılar. Dünyanın bu konudaki en büyük organizasyonu. 100.000’den fazla üyesi vardır. ASQ Yazılım Bölümü (Software Division) web sitesi ise yazılım ile ilgili kalite güvence bölümüdür.

Yazılım Kalitesi Topluluğu (Society for Software Quality)  

QAI – Kalite Güvence Enstitüsü (Quality Assurance Institute)  

CSQE - ASQ Amerika Kalite Topluluğu   (American Society for Quality) CSQE Sertifikalı Yazılım Kalite Mühendisi (Certified Software Quality Engineer) programı – Gereksinimler ile ilgili bilgiler var. 

CSQA/CSTE - QAI   Kalite Güvence Enstitüsü’nün (Quality Assurance Institute)   CSQA Sertifikalı Yazılım Kalite Analisti (Certified Software Quality Analyst) programı ve CSTE Sertifikalı Yazılım Test Mühendisi (Certified Software Test Engineer) sertifikası.  

ISEB Yazılım Test Sertifikaları (Software Testing Certifications) – İngiliz Bilgisayar Topluluğu (The British Computer Society) 3 seviyeli sertifika sistemi: - ISEB Kuruluş Sertifikası (Foundation Certificate), Pratisyen Sertifikası (Practitioner Certificate), ve Pratisyen Diploması (Practitioner Diploma).

5. Kaynaklar:

Software QA and Testing Resource Center – FAQ

Software QA and Testing Resource Center - Other Resources

Software QA and Testing Resource Center – Tools

StickyMinds_com   Article info   Quality Assurance Section for a Design Specification

Establishing & Implementing Software QA, Arati Prabhkar, IonIdea Enterprise Solutions Pvt Ltd, Banglore

Quality Assurance Concepts, QA Concepts and Implemetation Guidelines, August 2000, Nadeem Kayani
Makale:
Yazılım Kalite Güvencesi Yazılım Mühendisliği Tanıl Ergin
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor