Test ve Kalite Güvencesi

Yazılım sistemi, çabaların, zamanın ve maliyet aşımlarının tekrarlanmasını önlemek ve sistemin öngörülen süre içinde tamamlanmasını sağlamak için her geliştirme aşamasında amaçlanan davranışı ve ilerleme yönü açısından kontrol edilmelidir. çabaların, zamanın ve maliyet aşımlarının tekrarlanmasını önlemek ve sistemin öngörülen süre içinde tamamlanmasını sağlamak için her geliştirme aşamasında amaçlanan davranış ve ilerleme yönü.

Sistem testi ve kalite güvencesi, sistemi kontrol etmek için yardımcı olur. İçerir -

  • Ürün düzeyinde kalite (Test)
  • Süreç seviyesi kalitesi.

Bunları kısaca gözden geçirelim -

Test yapmak

Test, sistemin kalitesini ve güvenilirliğini artırmak için yazılımın işlevselliğini ve doğruluğunu belirtilen kullanıcı gereksinimlerine göre kontrol eden süreç veya faaliyettir. Sistem geliştirmede pahalı, zaman alıcı ve kritik bir yaklaşımdır ve genel test sürecinin uygun şekilde planlanmasını gerektirir.

Başarılı bir test, hataları bulandır. Programı açık bir hata bulma niyetiyle çalıştırır, yani programı başarısız kılar. Güçlü bir sistem oluşturma niyetiyle sistemi değerlendirme sürecidir ve esas olarak sistemin veya yazılımın zayıf alanlarına odaklanır.

Sistem Testinin Özellikleri

Sistem testi modül seviyesinde başlar ve tüm yazılım sisteminin entegrasyonuna doğru ilerler. Sistem test edilirken farklı zamanlarda farklı test teknikleri kullanılır. Küçük projeler için geliştirici tarafından, büyük projeler için bağımsız test grupları tarafından yürütülür.

Sistem Testinin Aşamaları

Aşağıdaki aşamalar teste dahildir -

Test Strategy

Sistemi test etmek için kullanılan çeşitli seviyeler, yöntemler, araçlar ve teknikler hakkında bilgi sağlayan bir ifadedir. Bir organizasyonun tüm ihtiyaçlarını karşılamalıdır.

Test Plan

Sistemi test etmek için bir plan sağlar ve test edilen sistemin tüm tasarım ve fonksiyonel özellikleri karşıladığını doğrular. Test planı aşağıdaki bilgileri sağlar -

  • Her test aşamasının hedefleri
  • Test için kullanılan yaklaşımlar ve araçlar
  • Her test faaliyeti için gereken sorumluluklar ve zaman
  • Araçların, tesislerin ve test kitaplıklarının kullanılabilirliği
  • Testlerin planlanması ve yürütülmesi için gerekli prosedürler ve standartlar
  • Test sürecinin başarıyla tamamlanmasından sorumlu faktörler

Test Case Design

  • Test edilecek sistemin her modülü için bir dizi test senaryosu tanımlanır.

  • Her test senaryosu, belirli bir gereksinimin veya tasarım kararının uygulanmasının nasıl test edileceğini ve testin başarısı için kriterleri belirleyecektir.

  • Test planıyla birlikte test senaryoları, bir sistem özellikleri belgesinin bir parçası olarak veya adı verilen ayrı bir belgede belgelenir. test specification veya test description.

Test Procedures

Test senaryolarının her birini yürütmek için izlenmesi gereken adımlardan oluşur. Bu prosedürler, test prosedürü spesifikasyonu adı verilen ayrı bir belgede belirtilmiştir. Bu belge aynı zamanda test sonucunun raporlanması için özel gereksinimleri ve biçimleri de belirtir.

Test Result Documentation

Test sonucu dosyası, yürütülen toplam test senaryosu sayısı, hata sayısı ve hataların doğası hakkında kısa bilgiler içerir. Bu sonuçlar daha sonra testin genel sonucunu belirlemek için test spesifikasyonundaki kriterlere göre değerlendirilir.

Test Türleri

Testler çeşitli türlerde olabilir ve kişinin keşfetmeyi amaçladığı hataların türüne bağlı olarak farklı test türleri gerçekleştirilir -

Birim Testi

Program Testi olarak da bilinen bu, analistin her program veya modülü bağımsız olarak test ettiği veya odaklandığı bir test türüdür. Modülün her bir ifadesinin en az bir kez yürütülmesi amacıyla yürütülür.

  • Birim testinde, programın doğruluğu garanti edilemez ve çeşitli girdi kombinasyonlarını ayrıntılı olarak test etmek zordur.

  • Diğer test tekniklerine kıyasla bir programdaki maksimum hataları tanımlar.

Entegrasyon Testi

Entegrasyon Testinde, analist birlikte çalışan birden çok modülü test eder. Sistem ile orijinal amacı, mevcut özellikleri ve sistem belgeleri arasındaki tutarsızlıkları bulmak için kullanılır.

  • Burada analistler, modüllerin veri uzunluğu, türü ve veri öğesi adı için farklı özelliklerle tasarlandığı alanlar bulmaya çalışıyorlar.

  • Dosya boyutlarının yeterli olduğunu ve dizinlerin doğru şekilde oluşturulduğunu doğrular.

Fonksiyonel test

İşlev testi, sistemin teknik özelliklere ve ilgili standart belgelerine göre doğru çalışıp çalışmadığını belirler. Fonksiyonel testler tipik olarak sistemin başarısı için çok kritik olan sistemin uygulanmasıyla başlar.

Fonksiyonel testler iki kategoriye ayrılmıştır -

  • Positive Functional Testing - Üretilen çıktıların doğru olduğunu doğrulamak için sistemin geçerli girdilerle test edilmesini içerir.

  • Negative Functional Testing - Yazılımın geçersiz girdiler ve istenmeyen çalışma koşulları ile test edilmesini içerir.

Sistem Testi Kuralları

Sistem testini başarıyla yürütmek için, verilen kurallara uymanız gerekir -

  • Test, kullanıcının gereksinimlerine dayanmalıdır.

  • Test komut dosyalarını yazmadan önce, iş mantığının iyice anlaşılması gerektiğini anlayın.

  • Test planı bir an önce yapılmalıdır.

  • Test, üçüncü şahıs tarafından yapılmalıdır.

  • Statik yazılım üzerinde yapılmalıdır.

  • Geçerli ve geçersiz giriş koşulları için test yapılmalıdır.

  • Maliyetleri düşürmek için testler gözden geçirilmeli ve incelenmelidir.

  • Yazılım üzerinde hem statik hem de dinamik test yapılmalıdır.

  • Test senaryolarının ve test sonuçlarının dokümantasyonu yapılmalıdır.

Kalite güvencesi

Sistemin gereksinimleri ve özellikleri karşıladığına dair güvence için sistem veya yazılım ürünlerinin ve belgelerinin incelenmesidir.

  • Kalite Güvencesinin amacı, spesifikasyona göre sürekli ürün teslimatı ile müşterilere güven sağlamaktır.

  • Yazılım Kalite Güvencesi (SQA), yazılımın amaçlanan kullanımı ve performansı için belirtilen standardı karşılamasını sağlamak için yazılım uzmanları tarafından uygulanan prosedürleri ve araçları içeren bir tekniktir.

  • SQA'nın temel amacı, yazılım projesinin ve geliştirdiği ürünün idareye uygun ve doğru görünürlüğünü sağlamaktır.

  • Yazılım ürününü ve faaliyetlerini sistem geliştirme yaşam döngüsü boyunca gözden geçirir ve denetler.

Kalite Güvencesinin Amaçları

Kalite güvencesi yapmanın amaçları aşağıdaki gibidir -

  • Yazılım geliştirme sürecini ve geliştirilen nihai yazılımı izlemek.

  • Yazılım projesinin yönetim tarafından belirlenen standartları ve prosedürleri uygulayıp uygulamadığından emin olmak.

  • Grupları ve bireyleri SQA faaliyetleri ve bu faaliyetlerin sonuçları hakkında bilgilendirmek.

  • Yazılım içerisinde çözülemeyen sorunların üst yönetim tarafından ele alınmasını sağlamak.

  • Ürün, süreç veya standartlardaki eksiklikleri tespit etmek ve düzeltmek.

Kalite Güvence Düzeyleri

Bir yazılım ürününü onaylamak için gerçekleştirilmesi gereken çeşitli kalite kontrol ve test seviyeleri vardır.

Level 1 − Code Walk-through

Bu seviyede, çevrimdışı yazılım incelenir veya resmi kodlama kurallarının herhangi bir ihlali için kontrol edilir. Genel olarak, belgelerin incelenmesine ve kod içi yorumların seviyesine vurgu yapılır.

Level 2 − Compilation and Linking

Bu seviyede yazılımın tüm resmi platformları ve işletim sistemlerini derleyip birbirine bağlayıp bağlayamadığı kontrol edilir.

Level 3 − Routine Running

Bu seviyede, yazılımın belirli sayıda olay ve küçük ve büyük olay boyutları gibi çeşitli koşullar altında düzgün çalışıp çalışmadığı kontrol edilir.

Level 4 − Performance test

Bu son seviyede, yazılımın performansının önceden belirlenen performans seviyesini karşılayıp karşılamadığı kontrol edilir.