what is software quality assurance
Yazılım Kalite Güvencesi nedir?
Yazılım kalite güvencesi (SQA) tüm yazılım mühendisliği süreçlerinin, yöntemlerinin, faaliyetlerinin ve iş öğelerinin izlenmesini ve tanımlanan standartlara uymasını sağlayan bir süreçtir. Tanımlanan bu standartlar, ISO 9000, CMMI modeli, ISO15504 vb. Herhangi birinin kombinasyonu olabilir.
bir dizi nesne nasıl oluşturulur
SQA, gereksinimleri tanımlamadan kodlamaya ve piyasaya sürülmeye kadar tüm yazılım geliştirme süreçlerini içerir. Temel amacı kaliteyi sağlamaktır.
Ne öğreneceksin:
- Yazılım Kalite Güvence Planı
- SQA Faaliyetleri
- Yazılım Kalite Güvence Standartları
- Yazılım Kalite Güvencesinin Unsurları
- SQA Teknikleri
- Sonuç
- Önerilen Kaynaklar
Yazılım Kalite Güvence Planı
SQAP olarak kısaltılan yazılım kalite güvence planı, bir ürün veya hizmetin SRS'de (yazılım gereksinimi belirtimi) tanımlanan gereksinimlerle uyumlu olmasını sağlamak için kullanılan prosedürler, teknikler ve araçlardan oluşur.
Plan, bir ekibin SQA sorumluluklarını tanımlar, gözden geçirilmesi ve denetlenmesi gereken alanları listeler. Ayrıca SQA çalışma ürünlerini de tanımlar.
SQA plan belgesi aşağıdaki bölümlerden oluşur:
- Amaç bölümü
- Referans bölümü
- Yazılım konfigürasyon yönetimi bölümü
- Sorun bildirme ve düzeltici eylem bölümü
- Araçlar, teknolojiler ve metodolojiler bölümü
- Kod kontrol bölümü
- Kayıtlar: Toplama, bakım ve saklama bölümü
- Test metodolojisi
SQA Faaliyetleri
Aşağıda, SQA faaliyetlerinin listesi verilmiştir:
# 1) Bir SQA Yönetim Planı Oluşturma:
En önemli faaliyet, projenizde SQA'nın nasıl yürütüleceğine ilişkin uygun bir plan oluşturmaktır.
Hangi SQA yaklaşımını izleyeceğinizle birlikte, hangi mühendislik faaliyetlerinin yürütüleceği ve ayrıca ekibinizde doğru bir yetenek karışımına sahip olmanızı sağlamayı da içerir.
# 2) Kontrol Noktalarını Ayarlama:
SQA ekibi, her kontrol noktası / proje aşamasında proje faaliyetlerinin kalitesini değerlendirmek için farklı kontrol noktaları oluşturur. Bu, düzenli kalite denetimi ve programa göre çalışmayı sağlar.
# 3) Yazılım Mühendisliği Tekniklerini uygulayın:
Bazı yazılım mühendisliği tekniklerini uygulamak, bir yazılım tasarımcısına yüksek kaliteli spesifikasyon elde etmede yardımcı olur. Bir tasarımcı bilgi toplamak için röportajlar ve FAST (Fonksiyonel Analiz Sistem Tekniği) gibi teknikleri kullanabilir.
Daha sonra, toplanan bilgilere dayanarak, yazılım tasarımcısı WBS (iş kırılım yapısı), SLOC (kodların kaynak satırı) ve FP (işlevsel nokta) tahmini gibi teknikleri kullanarak proje tahminini hazırlayabilir.
# 4) Resmi Teknik İncelemelerin Yürütülmesi:
Prototipin kalitesini ve tasarımını değerlendirmek için bir FTR yapılır.
Bu süreçte, yazılımın gerçek kalite gereksinimleri ve prototipin tasarım kalitesi hakkında görüşmek üzere teknik personel ile bir toplantı yapılır. Bu aktivite, SDLC'nin erken aşamasında hataları tespit etmeye yardımcı olur ve sonraki aşamalarda yeniden çalışma çabasını azaltır.
# 5) Çoklu Test Stratejisine Sahip Olmak:
Çoklu test stratejisi ile, herhangi bir tek test yaklaşımına güvenilmemesi gerektiğini, bunun yerine yazılım ürününün daha iyi kaliteyi sağlamak için her açıdan iyi test edilebilmesi için çoklu test türlerinin yapılması gerektiğini kastediyoruz.
# 6) Süreç Uyumu Sağlamak:
Bu aktivite, yazılım geliştirme sürecinde sürece bağlılık ihtiyacında ısrar ediyor. Geliştirme süreci de tanımlanan prosedürlere bağlı kalmalıdır.
Bu etkinlik, aşağıda ayrıntılı olarak açıklanan iki alt faaliyetin bir karışımıdır:
(i) Ürün Değerlendirmesi:
deneyimli web hizmetleri mülakat soruları ve cevapları
Bu aktivite, yazılım ürününün proje yönetimi planında keşfedilen gereksinimleri karşıladığını doğrular. Proje için belirlenen standartların doğru şekilde takip edilmesini sağlar.
(ii) Süreç İzleme:
Bu aktivite, yazılım geliştirme sırasında doğru adımların atılıp atılmadığını doğrular. Bu, gerçekte atılan adımları belgelenen adımlarla eşleştirerek yapılır.
# 7) Değişikliği Kontrol Etmek:
Bu aktivitede, değişim kontrolü için bir mekanizmaya sahip olmak için manuel prosedürlerin ve otomatik araçların bir karışımını kullanıyoruz.
Değişiklik taleplerinin doğrulanması, değişimin niteliğinin değerlendirilmesi ve değişimin etkisinin kontrol edilmesi ile geliştirme ve bakım aşamalarında yazılım kalitesinin korunması sağlanmaktadır.
# 8) Değişimin Etkisini Ölçün:
QA ekibi tarafından herhangi bir kusur bildirilirse, ilgili ekip sorunu giderir.
Bundan sonra, QA ekibi bu hata düzeltmesinin getirdiği değişikliğin etkisini belirlemelidir. Yalnızca değişikliğin kusuru çözüp çözmediğini değil, aynı zamanda değişikliğin tüm proje ile uyumlu olup olmadığını da test etmeleri gerekir.
Bu amaçla, yöneticilerin ve geliştiricilerin faaliyetleri ve önerilen değişiklikleri SDLC'nin başından sonuna kadar gözlemlemelerine ve gereken yerlerde düzeltici eylemi başlatmalarına olanak tanıyan yazılım kalitesi ölçütlerini kullanıyoruz.
# 9) SQA Denetimlerinin Gerçekleştirilmesi:
SQA denetimi, tüm gerçek SDLC sürecini inceler ve ardından bunu yerleşik süreçle karşılaştırır.
Ayrıca durum raporlarında ekip tarafından bildirilenlerin gerçekte gerçekleştirilip gerçekleştirilmediğini de kontrol eder. Bu aktivite ayrıca herhangi bir uyumsuzluk sorununu ortaya çıkarır.
# 10) Kayıtların ve Raporların Korunması:
SQA ile ilgili gerekli dokümantasyonu tutmak ve gerekli SQA bilgilerini paydaşlarla paylaşmak çok önemlidir. Test sonuçları, denetim sonuçları, inceleme raporları, değişiklik talepleri belgeleri, vb. İleride başvurmak üzere saklanmalıdır.
# 11) İyi İlişkileri Yönetin:
Aslında, QA ve geliştirme ekibi arasındaki uyumu sürdürmek çok önemlidir.
Test uzmanlarının ve geliştiricilerin genellikle birbirlerinden üstün hissettiklerini sıklıkla duyarız. Genel proje kalitesini etkileyebileceği için bundan kaçınılmalıdır.
Yazılım Kalite Güvence Standartları
Genel olarak, SQA bir veya daha fazla standarda uygunluk talep edebilir.
En popüler standartlardan bazıları aşağıda tartışılmaktadır:
ISO 9000: Bu standart, kuruluşların ürün veya hizmetlerinin müşteri ihtiyaçları ile uyumlu olmasını sağlamalarına yardımcı olan yedi kalite yönetimi ilkesine dayanmaktadır.
Aşağıdaki resimde ISO 9000'in 7 ilkesi gösterilmektedir:
CMMI seviyesi: CMMI, Yetenek olgunluk modeli Entegrasyonu . Bu model, yazılım mühendisliğinde ortaya çıkmıştır. Bir proje, departman veya tüm organizasyon genelinde süreç iyileştirmeyi yönlendirmek için kullanılabilir.
5 CMMI seviyesi ve özellikleri aşağıdaki resimde açıklanmıştır:
Bir kuruluş değerlendirilir ve değerlendirme türüne göre bir olgunluk seviyesi derecesi (1-5) verilir.
Test Olgunluk Modeli entegrasyonu (TMMi): CMMi'ye dayanan bu model, yazılım kalite yönetimi ve testinde olgunluk seviyelerine odaklanır.
Aşağıdaki resimde 5 TMMi seviyesi gösterilmektedir:
anime izlemek için iyi bir site nedir
Bir kuruluş daha yüksek bir olgunluk düzeyinde ilerledikçe, daha az kusurlu yüksek kaliteli ürünler üretme kabiliyetini artırır ve iş gereksinimlerini yakından karşılar.
Yazılım Kalite Güvencesinin Unsurları
Referansınız için aşağıda listelenen SQA'nın 10 temel unsuru vardır:
- Yazılım mühendisliği standartları
- Teknik incelemeler ve denetimler
- Kalite kontrol için Yazılım Testi
- Hata toplama ve analizi
- Yönetimi değiştir
- Eğitim programları
- Satıcı yönetimi
- Güvenlik Yönetimi
- Emniyet
- Risk yönetimi
SQA Teknikleri
SQA için birkaç teknik vardır. Denetim, yaygın olarak benimsenen başlıca tekniktir. Bununla birlikte, birkaç önemli tekniğimiz daha var.
Çeşitli SQA Teknikleri şunları içerir:
- Denetim: Denetim, standart süreçler setinin takip edilip edilmediğini belirlemek için iş ürünlerinin ve ilgili bilgilerin incelenmesini içerir.
- İnceleme : Yazılım ürününün hem iç hem de dış paydaşlar tarafından incelendiği ve yorumlarının ve onaylarının alındığı bir toplantı.
- Kod İncelemesi: Hataları bulmak ve sonraki aşamalarda kusur büyümesini önlemek için statik test yapan en resmi inceleme türüdür. Eğitimli bir arabulucu / meslektaş tarafından yapılır ve kurallara, kontrol listesine, giriş ve çıkış kriterlerine dayanır. İnceleyen, kodun yazarı olmamalıdır.
- Tasarım Denetimi: Tasarım incelemesi, yazılım tasarımının aşağıdaki alanlarını inceleyen bir kontrol listesi kullanılarak yapılır:
- Genel gereksinimler ve tasarım
- İşlevsel ve Arayüz özellikleri
- Sözleşmeler
- Gereksinim izlenebilirliği
- Yapılar ve arayüzler
- Mantık
- Verim
- Hata işleme ve kurtarma
- Test edilebilirlik, genişletilebilirlik
- Kaplin ve kohezyon
- Simülasyon: Simülasyon, incelenen sistemin davranışını sanal olarak incelemek için gerçek yaşam durumunu modelleyen bir araçtır.
- Fonksiyonel test: Sistemin nasıl yaptığını düşünmeden ne yaptığını doğrulayan bir QA tekniğidir. Bu tarz kara kutu testi esas olarak sistem teknik özelliklerini veya özelliklerini test etmeye odaklanır.
- Standardizasyon: Standardizasyon, kalite güvencesinde çok önemli bir rol oynar. Belirsizliği ve tahminde bulunmayı azaltır, böylece kaliteyi sağlar.
- Statik Analiz: Otomatik bir araç tarafından programı gerçekten çalıştırmadan yapılan bir yazılım analizidir. Bu teknik, tıp, nükleer ve havacılık yazılımlarında kalite güvencesi için oldukça kullanılır. Yazılım ölçümleri ve tersine mühendislik, statik analizin bazı popüler biçimleridir.
- İzlenecek yollar: Yazılımın gözden geçirilmesi veya kodun gözden geçirilmesi, geliştiricinin, geliştirme ekibi üyelerine ürün üzerinden geçmeleri ve sorgular sormaları, alternatifler önermeleri, olası hatalar, standart ihlaller veya diğer sorunlar hakkında yorum yapmaları için rehberlik ettiği bir tür eş incelemesidir.
- Yol Testi: Bu bir beyaz kutu test tekniği Her bağımsız yolun en az bir kez çalıştırılmasıyla tam şube kapsamının sağlandığı yer.
- Stres testi: Bu tür testler, bir sistemin ağır yük altında, yani normal koşulların ötesinde test edilerek ne kadar sağlam olduğunu kontrol etmek için yapılır.
- Altı Sigma: Altı Sigma, neredeyse mükemmel ürün veya hizmetleri hedefleyen bir kalite güvence yaklaşımıdır. Yazılım dahil birçok alanda yaygın olarak uygulanmaktadır. Altı sigmanın temel amacı, üretilen yazılımın% 99,76 hatasız olması için süreç iyileştirmedir.
Sonuç
SQA, yazılım yaşam döngüsü boyunca kullanılan bir şemsiye faaliyettir.
Yazılım kalite güvencesi, yazılım ürün veya hizmetinizin pazarda başarılı olması ve müşterinin beklentilerini karşılayabilmesi için çok önemlidir.
Verilebilir yazılımın yüksek kalitede olmasını ve iş ihtiyaçlarıyla yakından uyumlu olmasını sağlamak için izlemeniz gereken çeşitli etkinlikler, standartlar ve teknikler vardır.
Umarım bu bilgilendirici makale aracılığıyla Yazılım Kalite Güvencesi kavramı hakkında net bir fikir edinmişsinizdir!
Önerilen Kaynaklar
- Yazılım Testi ve Kalite Güvence Sertifikaları - Bölüm 2
- Kalite Özellikleri Nelerdir?
- Gerçek İnsanlara Karşı Sahte Kalite Tanrısı - Yazılım Kalitesinden Kim Sorumlu?
- Kalite Güvencesi ve Kalite Kontrol Arasındaki Fark (QA ve QC)
- Perfect Software Testing Resume Guide (Software Tester Resume Sample ile birlikte)
- Yazılım Kalitesini Artırmak İçin Poka-Yoke (Hata Düzeltme) Tekniği Nasıl Kullanılır
- Test Etmede Karşılıklı Anlama: Kaliteli Bir Yazılım Sunmanın Anahtarı
- Yazılım Testi QA Yardımcısı İşi