Yazılım Test Yöntemleri Hakkında Bilmeniz Gereken Her Şey

Yazar: Laura McKinney
Yaratılış Tarihi: 6 Nisan 2021
Güncelleme Tarihi: 16 Mayıs Ayı 2024
Anonim
Keşke Daha Önce Öğrenseydik Dediğimiz Zaman Kazandıran 14 Bilgisayar Tüyosu
Video: Keşke Daha Önce Öğrenseydik Dediğimiz Zaman Kazandıran 14 Bilgisayar Tüyosu

İçerik

Yazılım genel veya ticari kullanım için gönderilmeden önce, programcılar her hatayı gidermek için saatler harcarlar ve ürün tüm paydaşlar tatmin olana kadar limboda kalır.

Google ve Facebook gibi Silicon Valley yazılım devleri, yazılımlarındaki düşük öncelikli hatalara rağmen genellikle popüler ürünleri pazara gönderir. Yatırımcılar ve milyonlarca sadık kullanıcı, bu hatalar veri ihlallerine ve kötü tanıtımlara yol açsa bile, bu şirketlerin sunduğu ücretsiz ürünlerle yazılım güncellemelerini ve geçici karışıklıkları tolere edecektir.

Yazılım şirketlerinin çoğunda bu lüks yoktur. Müşteriler, ürünlerin satış sayfasında talep ettiklerini yapmasını bekler ve işletmelerinin fikri mülkiyetinin ve hassas verilerinin güvenlik açığı konusunda haklı olarak endişe duyarlar. Bu kadar çok yazılım geliştirme seçeneği ile, müşteriler ürün zaman ve para israfına uğrarsa, gemiyi atlama hakkında iki kez düşünmezler. Bu nedenle, yazılım işletmeleri müşterilerini serbest bırakmadan önce ürünleri üzerinde sıkı bir test yapmalıdır. Bu testler aşağıdaki bilgileri sunacaktır:


  • Orijinal konsept ile nihai çıktı arasındaki farkları vurgulayın.
  • Yazılımın tasarımcıların planladığı gibi çalıştığını doğrulayın.
  • Özellikleri ve kaliteyi değerlendirin.
  • Son ürünün müşteri gereksinimlerini karşıladığını doğrulayın.

Test, paydaşlara ürünü ileriye taşımak için gerekli bilgileri sağlarken iş yükünü, zamanı ve parayı optimize etmek için sıkı bir plan izler. Amaç, kapsamlı bir kalite güvence (KG) programı tutarak olumlu bir son kullanıcı deneyimini kolaylaştırmaktır. Geliştiriciler için yüksek miktarlar göz önüne alındığında, KG yöneticileri teknoloji endüstrisinin en iyi kazananlarından bazılarıdır. Test genellikle şu adımları izler:

  1. İhtiyaç analizi, burada yöneticiler uygun bir test stratejisini uygulamaya koymak için bir plan çizer.
  2. Testler başlar ve sonuçlar analizden geçer.
  3. Herhangi bir hata düzeltildi ve yazılım regresyon testinden geçiyor (değişikliklerden sonra programın hala çalışıp çalışmadığını kontrol eden bir sistem).
  4. Süreci ve sonuçları ayrıntılarıyla açıklayan bir test kapatma raporu.

Bireyler BCS, Chartered for IT Enstitüsü, ISTQB® (Uluslararası Yazılım Testleri Yeterlilik Kurulu) ve ASQ (eski adıyla Amerikan Kalite Derneği) gibi kuruluşlar aracılığıyla sertifikalı yazılım testçileri olabilirler.


Yazılım Test Yöntemleri

Kara ve beyaz kutu testi, ürün davranışını ve performansını değerlendirmek için iki temel yöntemdir, ancak başka yöntemler de vardır:

  • Kara kutu testi: İşlevsel veya spesifikasyon tabanlı test olarak da adlandırılan bu yöntem çıktıya odaklanır. Test kullanıcıları dahili mekanizmalarla ilgilenmezler. Yalnızca yazılımın yapması gerekeni yaptığını kontrol ederler. Kodlama bilgisi gerekli değildir ve test kullanıcıları kullanıcı arayüzü düzeyinde çalışır.
  • Beyaz kutu testi: Bu yöntem, test prosedürünün bir parçası olarak kodlama deneyimini kullanır. Bir ürün arızalandığında, test kullanıcıları nedeni bulmak için kodun derinliklerine gider. Yazılım geliştiricileri, ürünün nasıl çalışması gerektiğine karar verdikleri için bunu kendileri yapacaklardır. Beyaz kutu testi, "yapı tabanlı" veya "cam kutu" testi olarak da adlandırılır.
  • Statik test: Test kullanıcıları kaynak kodunu ve beraberindeki belgeleri inceler, ancak programı yürütmez. Statik testler, doğrulama işlemi sırasında ürünün geliştirilmesinde erken başlar.
  • Dinamik test: Yazılım çeşitli girişlerle yürütülür ve test ediciler çıkışları beklenen davranışla karşılaştırır.
  • Grafik kullanıcı arayüzü (GUI) testi: Metin biçimlendirme, metin kutuları, düğmeler, listeler, düzen, renkler, yazı tipleri, yazı tipi boyutları vb. GUI testi zaman alıcıdır ve üçüncü taraf şirketler genellikle geliştiriciler yerine bu görevi üstlenirler.

Test Seviyeleri

Yazılım geliştirme yaşam döngüsünün her aşamasında zayıflık ve çakışma alanlarını belirlemek için farklı düzeylerde testler kullanılır.


  • Birim testi: Geliştiriciler kodların sınıflar, arayüzler ve fonksiyonlar / prosedürler gibi en temel kısımlarını test eder. Kodlarının nasıl yanıt vermesi gerektiğini bilirler ve çıktıya bağlı olarak ayarlamalar yapabilirler.
  • Bileşen testi: Bu adım "modül" veya "program" testi olarak da bilinir. Birim testine benzer, ancak daha yüksek düzeyde bir entegrasyon içerir. Yazılımın modülleri, bireysel işlevlerini doğrulamak için kusurlar açısından test edilir.
  • Entegrasyon testi: Bu, modüller entegre edildiğinde hataları tanımlar. Entegrasyon testleri için farklı yöntemler arasında "aşağıdan yukarıya", "yukarıdan aşağıya" ve "işlevsel artımlı" sayılabilir.
  • Sistem testi: Bir projenin bileşenleri farklı ortamlarda bir bütün olarak test edilir. Sistem testi kara kutu yöntemine girer ve süreçteki son testlerden biridir. Sistemin iş ve kullanıcı ihtiyaçlarını karşılamaya hazır olup olmadığını belirleyecektir.
  • Alfa testi: Dahili personel yazılımı, geliştiricinin sitesindeki simüle veya gerçek bir ortamda test eder. Bundan sonra, geliştiriciler hataları ve diğer sorunları düzeltir.
  • Beta testi: Saha testi olarak da bilinen müşteriler, ürünü gerçek koşullarda kendi sitelerinde test eder. Müşteriler, bir grup son kullanıcıya, yazılımı yayın öncesi veya beta sürümleriyle test etme fırsatı sunabilir. Daha sonra olası iyileştirmelerle ilgili geri bildirim geliştiriciye gönderilir.
  • Kabul testleri: Ayrıca kara kutu testi kapsamında, müşteriler geliştiricinin programı istenen özelliklere uyacak şekilde tamamen geliştirip geliştirmediğini öğrenmek için yazılımı test eder.

Test Türleri

Belirli hedeflere odaklanmak için farklı yazılım testleri türleri tasarlanmıştır:

  • Kurulum testi: Test mühendisi ve konfigürasyon yöneticisi, son kullanıcının programı kurup çalıştırabilmesi için bu testi yapar. Kurulum dosyaları, kurulum konumları ve yönetici ayrıcalıkları gibi alanları kapsar.
  • Geliştirme testi: Bu, kusurları tespit etmek ve önlemek için bir dizi senkronize strateji uygular. Statik kod analizi, akran kodu incelemeleri, izlenebilirlik ve metrik analizlerini içerir. Amaç riskleri azaltmak ve maliyet tasarrufu sağlamaktır.
  • Kullanılabilirlik testi: Bu testle kullanıcı deneyimi ön plana çıkıyor. GUI'nin kullanım kolaylığını ölçer. Test, fonksiyonların doğruluğunu ve etkinliğini ve test deneklerinin duygusal tepkilerini kontrol eder.
  • Sağlık testi: Bu, yazılımın daha fazla teste devam etmek için zaman ve maliyete değip değmediğini gösterir. Çok fazla kusur varsa, daha agresif testler yapılmaz.
  • Duman testi: Duman testi, salınmayı önleyecek kadar ciddi olan temel arızaları ortaya çıkarır. Bu yeni bir yapı üzerinde gerçekleştirildiğinde buna "yapı doğrulaması" testi denir.
  • Gerileme testi: Sistem değişikliğe uğradığında, regresyon testi beklenmedik davranışları izler. Modüller veya bileşenler üzerindeki olumsuz etkileri gösterir.
  • Yıkım testi: Test kullanıcıları anormal girişler girer ve yazılımın beklenmedik girdileri yönetme yeteneğini fark eder. Bu, geliştiricilere programın hata yönetiminde ne kadar sağlam olduğunu gösterir.
  • Kurtarma testi: Donanım veya diğer işlevler başarısız olduğunda, bu test yazılımın ne kadar iyi kurtarıp çalışmaya devam edebileceğini gösterir.
  • Otomatik test: Bu, manuel olarak uygulanması zor olan işlevleri gerçekleştirir. Testleri yürütmek ve gerçek ve beklenen sonuçlar hakkında veri sağlamak için belirli yazılımlar kullanır.
  • Uyumluluk testi: Yazılımın farklı bilgi işlem ortamlarında çalışması gerekir, bu nedenle bu, farklı sistemlerle uyumluluğu kontrol eder. Örneğin, yazılımı çeşitli işletim sistemleri ve web tarayıcılarıyla test etme.
  • Performans testi: Bu, farklı senaryolarda yazılım performansını inceleyen derinlemesine bir testtir. Duyarlılık, kararlılık, kaynak tahsisi ve hız hakkında bilgi toplanır. Hacim, kapasite ve sivri test gibi alt testler bu süreçte rol oynar.
  • Güvenlik testi: Bu, yazılımın kullanıcıların güvenliğini koruma yeteneğini ölçer. Bu, yetkilendirme işlevleri, kimlik doğrulama, gizlilik, bütünlük, kullanılabilirlik ve reddedilmeme anlamına gelir.
  • Erişilebilirlik testi: Bu, kullanılabilirlik testi ile aynı değildir. Bu, farklı yeteneklere, öğrenme ve fiziksel engellere sahip kullanıcıların yazılımı ne ölçüde kullanabileceğini belirler.
  • Uluslararasılaştırma ve yerelleştirme testi: Sonuçlar, yazılımın farklı dillere ve bölgesel taleplere nasıl adapte olabileceğini göstermektedir. Bu, belirli konumlar için bileşenler eklemeyi ve metin çevirisini içerir.