software development
Yazılım Geliştirme ve Test Metodolojileri nelerdir?
Test, Yazılım Geliştirme Sürecinin önemli bir parçasıdır. Yazılım sisteminin zaman çizelgesini tahmin etmeye yardımcı olacak standart test metodolojileri kullanılarak sağlam ve kararlı bir yazılım ürünü teslim edilebilir.
Bir yazılım uygulaması, çok sayıda platform ve cihazla daha da karmaşık hale gelebilir. Daha da önemlisi, belirtilen gereksinimleri karşılayıp karşılamadığından ve kullanıcının makinesine verimli bir şekilde kurulup çalıştırılamayacağından emin olmak gerekir.
Araçlarıyla güvenlik , uyumluluk ve kullanılabilirlik, bir yazılım ürünü uygun test metodolojisi kullanılarak test edilmelidir.
Bu makalede , Test Metodolojilerinin ne anlama geldiğini, test stratejilerinden nasıl farklı olduğunu ve Yazılım Test Metodu türlerini detaylı olarak tartışacağız.
Ne öğreneceksin:
- Test Metodolojilerinin Anlamı
- Test Teknikleri
- SDLC'deki modeller
- Test Metodolojileri ve Test Stratejileri Arasındaki Fark
- Sonuç:
- Önerilen Kaynaklar
Test Metodolojilerinin Anlamı
Metodolojiler, Birim Testinden Sistem Testine kadar yazılım geliştirme yaşam döngüsünde kullanılan test mekanizmaları seti olarak düşünülebilir. Uygun bir test metodolojisinin seçilmesi, test sürecinin özü olarak kabul edilir.
Test Teknikleri
Temel olarak, test için kullanılan 3 test yöntemi vardır. Bunlar Beyaz Kutu Testi, Kara Kutu Testi ve Gri Kutu Testi . Bunlar aynı zamanda Test Teknikleri . Daha iyi anlamanız için test tekniklerinin her biri aşağıda özetlenmiştir.
# 1) Beyaz Kutu Testi:
Beyaz kutu test tekniği program yapısını ve iş mantığını incelemek için kullanılır, bir uygulamanın kodunu veya programını doğrular. Olarak da adlandırılır Temizle Kutu Testi, Cam Kutu Testi veya Açık Kutu Testi .
Beyaz Kutu Test Teknikleri şunları içerir:
- Bildirim Kapsamı: Tüm programlama ifadelerini inceler.
- Şube Kapsamı: Tüm şubelerin test edilip edilmediğinden emin olmak için bir dizi çalışan test.
- Yol Kapsamı: Her bir ifadeyi ve dalı kapsayacak şekilde tüm olası yolları test eder.
# 2) Kara Kutu Testi:
Kara Kutu test yöntemi gereksinim spesifikasyonuna göre bir uygulamanın işlevselliğini test etmek için kullanılır. Beyaz Kutu Testinden farklı olarak, uygulamanın dahili yapısına / koduna odaklanmaz.
Kara Kutu Teknikleri şunları içerir:
- Sınır Değer analizi
- Eşdeğerlik Bölümleme (Eşdeğerlik Sınıfı Bölümleme)
- Karar Tabloları
- Etki Alanı Testleri
- Devlet Modelleri
- Keşif Testi (Daha az hazırlık gerektirir ve ayrıca kusurları hızlı bir şekilde bulmaya yardımcı olur).
# 3) Gri Kutu Testi:
Bu test yöntemi, bir uygulamanın iç yapısı hakkında daha az bilgi ile gerçekleştirilir. Genel olarak bu, yalnızca Kara Kutu Testi gibi gerçekleştirilir ancak bazı kritik uygulama alanlarında Beyaz Kutu Testi kullanılır.
SDLC'deki modeller
Uygun test metodolojilerinin seçilmesi, SDLC'de uygun bir modelin seçilmesine de bağlıdır.
Modeller şunları içerir:
- Şelale Modeli
- Modelde
- Çevik model
- Spiral model
- RAD
Her bir Yazılım Geliştirme Metodolojisine kısa bir açıklama ile daha yakından bakalım.
# 1) Şelale Modeli
Şelale Modeli Winston Royce tarafından 1970 yılında geliştirilen temel yaşam döngüsü modelidir. Bu model, aşamalı olarak aşağı doğru akan sıralı bir şekilde çoklu aşamaları veya süreçleri temsil eder.
Bu yaklaşım, gereksinimler iyi bilindiğinde, teknoloji anlaşıldığında ve gerekli uzmanlığa sahip kaynaklar mevcut olduğunda yararlıdır.
Şelale modeli aşağıdaki aşamalarla tanımlanır:
- Gereksinim Toplama ve Analizi: Tüm gereksinimleri yakalayın ve analiz edin ve test edilebilir olup olmadıklarından emin olun.
- Sistem tasarımı: İhtiyaç analizine göre tasarım oluşturun ve belgeleyin. Donanım ve yazılım gereksinimlerini tanımlayın.
- Uygulama: Tasarımına göre bileşenler için sağlam kod oluşturun ve bunları entegre edin.
- Sistem Testi: Entegre bileşenler bütün bir sistemi oluşturur, bu aşama, sistemin gereksinimlere göre çalışıp çalışmadığını, test sürecini takip edip raporlamasını sağlamak için gerçekleştirilir.
- Sistem Dağıtımı: Sistemin sıfır hata ile kararlı olduğundan emin olun, tüm test kriterleri
karşılandı, Ortam Kurulumunu sağlayın vb. - Sistem bakımı: Uygulamanın uygun ortam ile ihtiyaca göre verimli çalışıp çalışmadığından emin olur. Bir kusur bulunursa, bu durum düzeltilmeli ve ortama dağıtılmalıdır (güncellenmelidir).
Şelale Modelinin Avantajları:
- Basit ve anlaşılması kolay.
- Her aşamanın kendine özgü çıktıları olduğu için yönetimi kolaydır.
- Aşamaların çakışması önlenir.
- Küçük projeler için iyi.
Şelale Modelinin Dezavantajları:
- Risk ve belirsizlik miktarında artış.
- Test aşamasına girdikten sonra, önceki aşamalarda hiçbir şeyi değiştiremezsiniz. Örneğin Tasarım ve Kodlama vb.
- Karmaşık ve büyük projeler için iyi değil.
- Gereksinimlerin sürekli değiştiği yerlerde uygun değildir.
# 2) Modelde
V Modeli bir Şelale Modelinin uzantısı Süreç yürütmenin V-Şeklinde sıralı bir tarzda gerçekleştiği ve aynı zamanda Doğrulama ve Doğrulama Modeli olarak da bilinir. Bu yaklaşımda, geliştirme döngüsünün her aşamasında doğrudan ilişkili bir test aşaması vardır.
Test, geliştirme döngüsünün sonunda değil, her geliştirme aşamasında gerçekleştirildiğinden, şelale modelinden daha faydalı ve uygun maliyetli olduğu kanıtlanmıştır.
V Modeli 3 Aşamada sınıflandırılmıştır.
- Doğrulama Aşaması
- Kodlama Aşaması
- Doğrulama Aşaması
a) Doğrulama Aşaması :
- İş İhtiyaç Analizi: Beklentilerini ve gereksinimlerini anlamak için müşteri ile iletişim kurun.
- Sistem tasarımı: Tasarımtamamlayınızsistem ve bileşenleri, donanım ve yazılım gereksinimleri ile birlikte.
- Mimari tasarım: Bu aşamada mimari özellikler yakalanır. Bu aynı zamanda üst düzey Tasarım olarak da bilinir.
- Modül Tasarımı: Bu aynı zamanda Düşük Seviyeli Tasarım, belirtilen tüm sistem modülleri için Ayrıntılı iç tasarım olarak da bilinir.
b) Kodlama Aşaması:
Bu aşama, geliştirme yaşam döngüsündeki gerçek kodlama aşamasını içerir. Programlama dilleri, önceki aşama teknoloji platformunda belirtilen sistem ve mimari tasarıma göre seçilmelidir. Kodlama, önceden tanımlanmış standartlara ve yönergelere göre yapılır.
c) Doğrulama Aşaması :
- Birim Testi: Hataları erken aşamada ortadan kaldırmak için ayrı bir modül üzerinde gerçekleştirildi.
- Entegrasyon Testi: Sistemdeki farklı modüller arasındaki iletişimi test etmek için gerçekleştirilir.
- Sistem Testi: Sistem Testi bir bütün olarak bir sistem üzerinde gerçekleştirilir.
- Kabul testleri: Bu, iş gereksinimleri ile ilişkilidir. Kullanıcının bakış açısından bir kullanıcı ortamında gerçekleştirilir.
V modelinin avantajları
- Basit, kullanımı ve anlaşılması kolay.
- Aşamalar birer birer yürütüldüğünden üst üste binme önlenir.
- Yönetimi kolay ve küçük projeler için uygun.
V Modelinin dezavantajları, Waterfall modelinin dezavantajlarına aşağı yukarı benzerdir.
# 3) Çevik Model
Çevik Model yinelemeli ve artan bir yaklaşım gösterir. Bu yaklaşım, yinelemeler sağlamak için ürünü küçük artımlı birimlere böler. Daha sonra her yineleme, Planlama, Gereksinim Analizi, Tasarım, Kodlama, Birim Testi, Kabul Testi vb. Adımları içerir.
Bu yaklaşım aynı zamanda müşterilerle düzenli aralıklarla geri bildirim ve ihtiyaçlardaki düzeltmeler için sürekli etkileşime izin verir.
Aşağıdaki şema, Çevik Model yaklaşımını daha kesin olarak anlamanıza yardımcı olacaktır:
Aşağıdaki görüntü, Çevik Modelde yineleme döngüsünü gösterecektir:
Çevik modelin avantajları:
- Yazılım geliştirmeye gerçekçi bir yaklaşım.
- Takım çalışmasını teşvik eder.
- Gereksinimler ve test senaryoları arasındaki uyuşmazlığı ortadan kaldırır.
- Hızlıdır ve minimum miktarda kaynak gerektirir.
- Büyük ve uzun vadeli projeler için uygundur.
- Değişen gereksinimler için iyi.
- Yönetmesi kolay.
Çevik modelin dezavantajları:
- Karmaşık projeler için uygun değildir.
- Müşteri ile gecikmeye neden olabilecek yoğun miktarda etkileşim gerektirir.
- Gereksinimlerin yanlış yönlendirilmesi, yazılım ürününün yanlış geliştirilmesine neden olabilir.
- Artan sürdürülebilirlik riski.
- Başka bir takıma devretmek oldukça zor olabilir.
# 4) Spiral Model
Spiral model, şelale modelinin sistematik yaklaşımı ile birlikte yinelemeli geliştirme yaklaşımını içerir. Artımlı modele benzer ve Risk Analizine vurgu yapar.
Spiral Modelin dört aşaması vardır:
- Planlama aşaması
- Risk analizi
- Mühendislik Aşaması
- Değerlendirme Aşaması
1) Planlama Aşaması: Bu aşamada, test senaryosunu tamamlamak için gereksinimler toplanır ve incelenir.
2) Risk Analizi: Bu aşama, yönetim risklerinin belirlenmesi, izlenmesi ve tahmin edilmesini içerir. Beyin fırtınası, izlenecek yol vb. Teknikler kullanılarak riskleri belirlemek için gereksinimler analiz edilir.
3) Mühendislik Aşaması: Bu aşamada yazılım geliştirilir ve sonunda test edilir.
4) Değerlendirme Aşaması: Bu, bir müşterinin bir projenin çıktısını değerlendirdiği ve bir sonraki sarmal veya onay için geri bildirimlerini verdiği son aşamadır.
Spiral Modelin resimsel gösterimi:
Spiral model ne zaman kullanılır:
- Yüksek riskli projeler için.
- Gereksinimler karmaşık olduğunda.
- Bir proje büyükse.
- Bir sonraki spiral için kullanıcının geri bildirimini almak için yeterli zamana sahip olun.
- Araştırma ve keşif nedeniyle önemli değişiklikler gerektirir.
- Kullanıcılar ihtiyaçlarından emin değiller.
Spiral Modelin Avantajları:
- Yüksek miktarda risk analizi içerdiğinden riskten kaçınma.
- Hızlı gelişim.
- Gereksinimlerdeki değişiklikler kolaylıkla karşılanır.
- Gereksinimler daha doğru bir şekilde elde edilebilir.
Spiral modelin dezavantajları:
- Karmaşık yönetim.
- Küçük projeler için uygun değildir.
- Hayır içerebilir. spiraller (belirsiz).
- Pahalı.
- Projelerinin başarısı için yüksek miktarda risk analizi ve uzmanlık gerektirir.
# 5) RAD Modeli
Hızlı Uygulama Geliştirme (RAD) bir tür artımlı modeldir. Bu yaklaşımda bileşenler paralel olarak geliştirilir.
Bu hızlı bir yaklaşımdır ve müşteriye geri bildirim sağlamak için hızlı bir ürün verebilir.
RAD'deki aşamalar aşağıdaki gibidir:
- İş modeli: Hayati bilgileri ve çeşitli iş kanalları arasındaki akışını tanımlar.
- Veri Modelleme: Önceki aşamada toplanan bilgiler, işletme için gerekli olan veri nesnelerini tanımlamak için kullanılır.
- Süreç modelleme: Veri nesneleri, iş hedefi ve bilgi akışı elde etmek için dönüştürülür.
- Uygulama Üretimi: Bu aşamada, süreç modelini gerçek koda dönüştürmek için otomasyon araçları kullanılır.
- Test ve Devir: Bir sistemin tüm bileşenlerini test eder, dolayısıyla genel test süresi kısalır.
RAD Modelinin Avantajları:
- İlerleme ölçülebilir.
- Geliştirme süresini azaltır.
- Yeniden kullanılabilirliğin artması.
- Hızlı ilk incelemeler.
- Müşteri geri bildirimini geliştirir.
RAD Modelinin dezavantajları:
- Yüksek vasıflı kaynaklar gerektirir.
- Yüksek maliyet tahmini.
- Daha ucuz projeler için geçerli değildir.
- Modelleme becerilerine yüksek bağımlılık.
- RAD kullanılarak yalnızca modüler bir sistem oluşturulabilir.
Test Metodolojileri ve Test Stratejileri Arasındaki Fark
Her ikisi arasında basit bir fark olduğu için bunun cevabı çok da karmaşık değil.
Test Metodolojileri Birim testinden Sistem Testine kadar teste yönelik yöntemler veya yaklaşımlardır.
Test Stratejileri test sürecinde ortaya çıkan temel sorunlara genel bir bakıştır ve proje yöneticisi, geliştiricilerden ve test uzmanlarından oluşan bir ekip tarafından dikkate alınmalıdır.
Yukarıda tartışılan Yazılım Test Yöntemleri, n test stratejilerinin sayısı.
Bunlardan bazıları aşağıda listelenmiştir:
1) Birim Testi:
- Çok küçük fonksiyonel birimlere odaklanır.
- En küçük birimleri izolasyon için kontrol etmenin en basit yolu.
- Genellikle geliştiriciler tarafından gerçekleştirilir.
2) Entegrasyon Testi:
akış şeması oluşturmak için en iyi araç
- Bu, geliştirici tarafında gerçekleştirilecek bir sonraki adımdır.
- Farklı yazılım modülleri arasındaki etkileşimi, birlikte çalışmayı ve iletişimi test etmek için mekanizma sağlayın
3) Fonksiyonel Test:
Bir yazılım sisteminin işlevlerini, yani verilen girdiye çıktıyı kontrol etmek için kullanılır.
4) Regresyon Testi:
Karmaşık işlevlerin başka bir çekirdek alanda herhangi bir değişikliğe neden olmaması için hata düzeltmenin bir yerde olup olmadığını kontrol eder.
5) Sistem Testi:
- Tüm entegre modülleri toplu bir sistem olarak test etmek.
- Birden çok özelliği uçtan uca senaryolarda birleştirir.
6) Performans Testi:
Büyük boyutlu dosya aktarımı, sisteme eşzamanlı kullanıcıların erişimi, yapılandırma hatası vb. Kritik durumlarda uygulamanın performansını test eder.
7) Kabul Testi :
- Genel olarak, yazılım ürününün test uzmanları tarafından kullanıcı bakış açısıyla incelendiği son test seviyesi
- Bu adımın sonucu özneldir ve kesin sorunu bulmak biraz zaman alır
Sonuç:
Uygun bir Test Metodolojisi seçmek, test sürecinin özünde yatan eylem veya eylemler dizisidir. Bu, yazılım ürününün iş gereksinimlerine ve zaman çizelgesine göre değişen çok yönlü bir etkinlik bile olabilir.
Ancak, istenen veya daha az zaman diliminde müşterinin ihtiyaçlarını ve beklentilerini karşılayan daha esnek ve verimli bir son ürüne sahip olmak için tek veya hatta birden fazla Yazılım Geliştirme ve Test Metodolojisi seçilebilir.
Aşağıdaki yorumlar bölümünde düşüncelerinizi / önerilerinizi bize bildirin.
Önerilen Kaynaklar
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Yazılım Testi QA Yardımcısı İşi
- Yazılım Test Kursu: Hangi Yazılım Test Enstitüsüne katılmalıyım?
- Kariyeriniz olarak Yazılım Testini Seçme
- Yazılım Testi Teknik İçerik Yazarı Serbest Çalışan İş
- Bazı İlginç Yazılım Testi Görüşme Soruları
- Yazılım Test Kursu Geri Bildirimleri ve İncelemeleri
- Yazılım Testi Yardım Ortaklık Programı!