Professional Documents
Culture Documents
Yazılım Evrimi**
- Gelişim ve evrim için bir çerçeve olarak spiral modelinin genel bakışı.
- Spiral modelinin yinelemeli doğası, gelişimi ve evrimi içerir.
**1. Evrim**
- Yazılımın operasyonel kullanım ve yeni gereksinimlere yanıt olarak
sürekli gelişimi.
**2. Servis**
- Yazılımın operasyonel kalmasını sağlamak için yapılan bakım, yeni
işlevsellik eklenmez.
**3. Aşama Dışı**
- Yazılımın kullanılması devam edebilir, ancak buna daha fazla değişiklik
yapılmaz.
ilişki.
- Riskin Azaltılması
- Maliyetin Düşürülmesi
- Mevcut Bilginin Kullanımı
- Zaman Kazanımı
- Yazılımın kalitesi
- Yeniden mühendislik için kullanılabilir araç desteği
- Gerekli veri dönüşümünün kapsamı
- Yeniden mühendislik için uzman personel bulunabilirliği
- ISO 9000, üç standart serisinden oluşur: ISO 9001, ISO 9002 ve ISO
9003.
- ISO 9000 serisi, doğru bir süreç izlenirse kaliteli ürünlerin otomatik
olarak takip edeceği temeline dayanmaktadır.
- ISO 9001, tasarım, geliştirme, üretim ve hizmet sunumu ile uğraşan
organizasyonlara uygundur.
- ISO 9002, ürün tasarımı yapmayan ancak sadece üretimle il
**Program testi,**
**İncelemeler ve Test:**
- İncelemeler, statik sistem temsilinin analizi ile ilgilenir,
problemleri ortaya çıkarmak için (statik doğrulama).
- Test, ürün davranışını gözlemleyerek ve işlevsel olmayan davranışa
odaklanarak dinamik doğrulama ile ilgilenir.
**Test Aşamaları:**
1. Geliştirme testi - sistemdeki hataları keşfetmek için geliştirme
aşamasında yapılır.
2. Sürüm testi - ayrı bir test ekibi, kullanıcılara sunulmadan önce
sistemin tam bir sürümünü test eder.
3. Kullanıcı testi - kullanıcılar veya potansiyel kullanıcılar, sistemi
kendi ortamlarında test eder.
**Test Kılavuzları:**
- Sistemin tüm hata mesajlarını üretmesini sağlayacak girişleri seçin.
- Giriş tamponlarının taşmasına neden olacak tasarımlar yapın.
- Aynı girişi veya giriş serisini defalarca tekrarlayın.
- Geçersiz çıktıların üretilmesini zorlayın.
- Hesaplama sonuçlarının çok büyük veya çok küçük olmasını zorlayın.
**İşlevsel Test:**
- Her yazılım işlevinin gereksinim ve spesifikasyonlara uygun olduğunu
doğrulayan bir test türüdür.
- Kaynak koduyla ilgilenmez, uygulama işlevselliğini test eder.
- Uygulama arayüzünü, API'ları, veritabanını, güvenliği, istemci veya
sunucu uygulamasını ve uygulamanın işlevselliğini test eder.
- Manuel veya otomatik olabilir.
**
1. Kodu iyi anlamak.
2. Bazı test durumları için kod yazmak ve bunları yürütmek.
**Beyaz Kutu Testinin Avantajları:**
- Beyaz kutu testi, tüm kod ve yapıların test edilmesi nedeniyle
kapsamlıdır.
- Kodu optimize ederek hataları giderir ve gereksiz kod satırlarını
kaldırır.
- Arayüz gerektirmediği için siyah kutu testi gibi erken başlayabilir.
- Kolay otomatize edilebilir.
- Yazılım Geliştirme Yaşam Döngüsü'nde kolayca başlatılabilir.
- Kod Optimizasyonu Kolaydır.
**Kabul Testi:**
- Kabul testi, uygulamanın belirtilen iş gereksinimlerine uygunluğunu ve
tanımlanan kalite standardını karşılayıp karşılamadığını sağlamayı
amaçlayan en son ve en önemli test seviyelerinden biridir.
- İki türü vardır: alfa testi ve beta testi.
- Kabul testi, testlerin veya başka bir organizasyonun içindeki iç
çalışanlar tarafından geliştiricinin yerinde gerçekleştirildiğinde alfa
testi olarak bilinir.
- Kullanıcı kabul testi, son kullanıcılar tarafından son kullanıcının
yerinde gerçekleştirilen bir beta testidir.
**Kabul Testi:**
- Kabul testi, müşteriler tarafından teslim edilen ürünlerin belirli
görevleri gerçekleştirip gerçekleştirmediğini kontrol etmek için yapılır.
Test planları hakkında konuşmak ve projeleri yürütmek için Nesne
Yönelimli Test kullanırız.
- Kullanıcı ihtiyaçları, gereksinimler ve iş süreçlerine uygun olarak
resmi bir testtir. Bir sistem, kabul kriterlerini karşılayıp
karşılamadığını belirlemek ve kullanıcılara, müşterilere veya diğer
yetkili kişilere sistemi kabul ed
**Alfa Testi:**
- Alfa testi, bir tür onay testidir. Genellikle ürün müşterilere
sunulmadan önce gerçekleştirilen bir kullanıcı kabul testi türüdür.
Genellikle QA uzmanları tarafından yapılır.
- Alfa testi, ürünün gerçek kullanıcılara veya genel halka piyasaya
sürülmeden önce hataları belirlemek için gerçekleştirilen bir yazılım
testi türüdür.
- Alfa testi, genellikle yerel yazılım mühendisleri veya kalite güvence
personeli tarafından gerçekleştirilir. Bu, yazılımın gerçek dünya
ortamında piyasaya sürülmeden önce geçen bir son test aşamasıdır.
**Beta Testi:**
- Beta testi, yazılım uygulamasının gerçek kullanıcıları tarafından
gerçek bir ortamda gerçekleştirilir. Beta testi, Kullanıcı Kabul
Testi'nin bir türüdür.
- Yazılımın gerçek son kullanıcılarına bir ürünün Beta sürümü, ürün
kalitesi hakkında geri bildirim almak için sınırlı sayıda kullanıcıya
sunulur.
- Beta testi, ürün başarısızlık riskini en aza indirgemeye yardımcı olur
ve müşteri onayı aracılığıyla ürün kalitesini artırır.
- Bu, ürünü müşterilere göndermeden önce gerçekleştirilen son testtir.
- Beta testinin önemli avantajlarından biri, müşterilerden direkt geri
bildirim alınmasıdır.
**Regression Testing:**
- Regresyon testi, değişikliklerin önceki şekilde çalışan kodu 'bozup
bozmadığını' kontrol etmek amacıyla sistem testini içerir.
- Manuel test sürecinde regresyon testi maliyetli olabilir, ancak
otomatik test ile bu süreç basit ve doğrudur. Her değişiklik yapıldığında
tüm testler tekrar çalıştırılır.
- Değişiklik yapılmadan önce testlerin "başarıyla" çalışması gereklidir.
**Regresyon Testi:**
- Regresyon testi, yazılıma yapılan değişikliklerin yeni hatalar
eklememesi veya mevcut işlevselliği bozmamasını sağlamak için kullanılan
bir test yöntemidir. Genellikle kod üzerinde hata düzeltmeleri veya yeni
özellikler gibi değişiklikler yapıldıktan sonra gerçekleştirilir.
- Regresyon testi, yazılımın hala amaçlandığı gibi çalıştığını doğrulamak
için kullanılır.
**Regresyon Testi:**
- Regresyon testi farklı şekillerde gerçekleştirilebilir, örneğin:
- Yeniden test: Bu, değişikliklerden etkilenen tüm uygulama veya belirli
işlevselliğin test edilmesini içerir.
- Yeniden yürütme: Bu, daha önce yürütülmüş bir test paketinin
değişikliklerin mevcut işlevselliği bozup bozmadığını kontrol etmek için
yeniden çalıştırılmasını içerir.
- Karşılaştırma: Bu, mevcut yazılım sürümünü bir önceki sürümle
karşılaştırarak değişikliklerin mevcut işlevselliği bozup bozmadığını
kontrol etmeyi içerir.
**Performans Testi:**
- Yayın testinin bir parçası, sistemle ilgili özelliklerin performans ve
güvenilirlik testini içerebilir.
- Testler, sistemin kullanım profiline yansıtılmalıdır.
- Performans testleri genellikle yük sistem performansı kabul edilemez
hale gelene kadar artırıldığı bir dizi test planını içerir.
- Stres testi, sistemin kasıtlı olarak aşırı yüklendiği ve sistem
performansının nasıl tepki verdiğini test ettiği bir performans testi
türüdür.
**Stres Testi:**
- Stres testinde, sisteme olumsuz koşullar verilir ve bu koşullarda nasıl
performans gösterdiği kontrol edilir.
- Örnek:
- Maksimum bellek veya diğer kaynakları gerektiren test durumları
yürütülür.
- Sanal bir işletim sisteminde yavaşlatan test durumları yürütülür.
- Aşırı disk gereksinimine neden olabilecek test durumları.
- Performans Testi, yazılımın çalışma zamanı performansını test etmek
için tasarlanmıştır. Programın hızını ve etkinliğini test etmek için
kullanılır. Ayrıca yük testi olarak da adlandırılır.
**TDD'nin Avantajları:**
- **Kod Kapsamı:** Yazdığınız her kod parçasının en az bir testi
olduğundan, yazılan kodun en az bir testi bulunur.
- **Regresyon Testi:** Bir program geliştirildikçe regresyon test kümesi
aşamalı olarak oluşturulur.
- **Hata Ayıklamayı Basitleştirme:** Bir test başarısız olduğunda sorunun
nerede olduğu açık olmalıdır. Yeni yazılan kod kontrol edilmeli ve
değiştirilmelidir.
- **Sistem Belgesi:** Testler kendileri, kodun ne yapması gerektiğini
açıklayan bir belge biçimidir.
**Avantajları:**
- **Geliştirilmiş Sistem Kalitesi**
- **Azaltılmış Sistem Durdurma Süresi**
- **Artan Kullanıcı Memnuniyeti**
- **Azaltılmış Geliştirme Maliyetleri**
- **Artan Güvenlik**
- **Değişiklikleri Kolaylaştırma**
- **Sistem Hakkında Daha İyi Anlama**
- **Testleri Kolaylaştırma**
**Dezavantajları:**
- **Zaman Alıcı**
- **Uzmanlık Gerektirir**
- **Yinelemesi Zor Olabilir**
- **Tanımlaması Zor Olabilir**
- **Düzeltmesi Zor Olabilir**
- **Sınırlı İçgörü**
- **Pahalı Olabilir**
4. **Yazılımı Zorlama:**
- Yazılım testinde, yazılımı 'zorlamaya' çalışmak, deneyim ve yönergeleri
kullanarak etkili test durumlarını seçmeyi amaçlar.
- Yazılımı zorlamak, zayıflıkları belirlemeye ve hataları keşfetmeye
yardımcı olur.