Hartford Coliseum yazılımında program çalışmış ancak bir formülü yanlış hesaplayarak hatalı sonuç üretmiştir. Kod sözdizimsel olarak doğru olup yanlış sonuç ürettiği için bu bir mantık hatasıdır.
Yazılım Kalite ve Testi 2022-2023 Ara Sınav (Vize)
Kaynak: https://lolonolo.com/2023/12/29/yazilim-kalite-ve-testi-2022-2023-vize-sorulari/
📖 Konu özeti (sınav öncesi tekrar)
Yazılım Kalite ve Testi 2022-2023 Vize Soruları
Yazılım dünyasında “kalite” ve “test” kavramları, ürünlerin başarısı ve güvenilirliği için kritik öneme sahiptir. Bu makalede, yazılım kalitesi ve test süreçlerinin temellerini ve bu süreçlerin neden önemli olduğunu ele alacağız.
Yazılım Kalitesi Nedir?
Yazılım kalitesi, bir yazılım ürününün belirli ihtiyaçları karşılama derecesini ifade eder. Bu, yazılımın kullanılabilirliği, güvenilirliği, performansı, sürdürülebilirliği ve kullanıcı memnuniyetini kapsar. Kaliteli bir yazılım, beklenen işlevleri hatasız, verimli ve kullanıcı dostu bir şekilde yerine getirir.
Yazılım Testi Neden Önemlidir?
Yazılım testi, bir programın doğru çalıştığını ve gereksinimleri karşıladığını doğrulamak için kullanılan bir dizi işlemdir. Hataları, kusurları veya eksiklikleri belirlemek için kritik bir süreçtir. Yazılım testi, aşağıdaki yönleriyle önem taşır:
1- Hata Tespiti: Yazılımın erken aşamalarında hataları tespit ederek, daha büyük sorunların önüne geçilmesine yardımcı olur.
2- Kullanıcı Güveni: Test edilmiş ve onaylanmış bir yazılım, kullanıcılar için daha güvenilir olur.
3- Ürün Kalitesini Artırma: Test süreçleri, yazılımın kalitesini artırarak, pazardaki rekabet gücünü yükseltir.
Yazılım Test Türleri
1- Birim Testi: Kodun en küçük birimlerinin (fonksiyonlar, prosedürler) test edilmesidir.
2- Entegrasyon Testi: Farklı modüllerin veya birimlerin birlikte çalışabilme yeteneğini test eder.
3- Sistem Testi: Yazılımın tamamının, gereksinimleri karşılayıp karşılamadığını değerlendirir.
4- Kullanılabilirlik Testi: Yazılımın kullanıcı dostu olup olmadığını test eder.
Modern Test Yaklaşımları
– Otomasyon Testi: Test süreçlerini hızlandırmak ve insan hatasını azaltmak için otomatik araçlar kullanılır.
– Kara Kutu ve Beyaz Kutu Testleri: Kara kutu testi, iç yapıyı dikkate almadan yazılımın işlevlerini test ederken; beyaz kutu testi, iç yapıya ve kodlara odaklanır.
Sonuç
Yazılım kalitesi ve test süreçleri, güvenilir, verimli ve kullanıcı dostu ürünler yaratmak için vazgeçilmezdir. Kaliteli yazılım üretmek, sadece iyi kod yazmakla değil, aynı zamanda etkili test süreçleriyle de yakından ilişkilidir. Bu nedenle, yazılım geliştirme sürecinin her aşamasında kalite ve test süreçlerine önem vermek, başarılı ürünlerin anahtarıdır.
Kullanılabilirlik kriterlerinden öğrenilebilirlik, kullanıcıların tasarımla ilk karşılaştıklarında temel görevleri ne kadar kolay yerine getirebildiğini ölçer. Hatırlanabilirlik ise bir süre kullanmadıktan sonra geri dönen kullanıcının ne kadar kolay hatırladığıyla ilgilidir.
Sınır koşulları, bağımsız yollar, hata yakalama yolları ve arayüz testleri birim testi kapsamında yapılır. Big-Bang ise tüm modüllerin bir anda birleştirilip test edildiği bir entegrasyon testi yaklaşımıdır.
Test karşılaştırıcı, testin çalıştırılmasıyla elde edilen gerçekleşen sonucu önceden tanımlanmış beklenen sonuçla karşılaştırır. Bu karşılaştırma testin geçip geçmediğine karar vermenin temelidir.

Genellikle test senaryolarında X ile gösterilen veri setleri denenir. Ancak esasen doğru bir test için Y ile gösterilen veri setinin de denenmesi gerekmektedir. Y ile gösterilen veri setlerinin denendiği bu testlere genellikle ne ad verilir?
Kurtarma testi; çöken modülün eski haline dönüp dönmediğini, verilerin kurtarılıp kurtarılamadığını, bilgi kaybını ve kurtarma süresini kontrol eder. Dışarıdan saldırı olup olmadığını denetlemek güvenlik testinin işidir.

Yukarıdaki şekillerde Müşterinin Tarif Ettiği ve Gerçekte Müşterinin İhtiyacı Olan modüllerin karşılaştırılması mizahî bir şekilde verilmiştir. Bu şekiller, yazılım test işlemlerinin hangi kısmının önemli olduğunu göstermektedir?
Test analisti, test edilecek koşulları belirleyen ve test senaryolarını tasarlayan kişidir; testlerin maliyetini çıkarmak onun görevi değildir. Diğer rol-açıklama eşleştirmeleri doğrudur.
II. Yazılımda kullanılan uzunluk ölçümlerinde İngiliz ölçü birimlerinin kullanılması sonucunda yazılımda çeşitli uyumsuzluklar yaşanmıştır.
III. Bazı eski programlama dillerinde yıl bilgisinin 2 haneli olarak tasarlanması sonucunda 2000 yılının 00 şeklinde ifade edilmesi ile farklı sistemlerle beraber çalışma sorunu ortaya çıkmıştır.
Yukarıda verilen yazılım hatalarının hangileri uyumluluk sorunu içermektedir?
Üç durumda da yazılım farklı bir sürüm, standart ya da sistemle uyumsuz kalmıştır: I'de eski 16 bitlik değerlerin yeni 64 bit gereksinimine uymaması, II'de farklı ölçü birimleri, III'te iki haneli yıl gösteriminin (Y2K) diğer sistemlerle uyumsuzluğu. Bu nedenle üçü de uyumluluk sorunudur.
Belgelendirme hataları yorumlar, akış şemaları, veritabanı diyagramları ve kullanım kılavuzu gibi belgelerdeki hatalardır. Yanlış türde değişken kullanmak ise kodun kendisinde yapılan bir kodlama hatasıdır.
Önceden hazırlanmış bir senaryo olmadan, ihtiyaç anında aniden ve plansız yapılan testlere kurgusuz (ad hoc) test denir. Veri akış ve dal testleri ise planlı beyaz kutu teknikleridir.
Test uzmanı her yerde hata olabileceğini varsayarak çalışmalıdır; bu nedenle şüphecilik test uzmanına özgü ve zorunlu bir özelliktir. Analitik, planlı olmak ve teknik/programlama bilgisi ise geliştiricide de bulunması gereken ortak özelliklerdir.
Beyaz kutu testlerinde kodun iç yapısı bilinir ve testler bu bilgiyle ayrıntılı olarak yapılır; yani beyaz kutu testleri detaylıdır. Bu nedenle 'genellikle detaysız testlerdir' ifadesi yanlıştır.
Test direktörü, test kontrol, test süreç grubu ve kritik test süreçleri testin yürütülmesi ve yönetimiyle ilişkili kavramlardır. Test koşulu ise test analizi/tasarımı aşamasında neyin test edileceğini tanımlar, yürütme ile ilgili değildir.
Test belirli bir anda belirli bir bileşen üzerinde yapılıp biten kısa süreli bir işlemdir. Kalite ise yazılımın bütün yaşam döngüsü boyunca sürdürülen uzun süreli bir süreçtir.
Kozmetik risk, sistemin çalışmasını engellemeyen ama görünüm ya da kullanışlılık açısından zarar veren risklerdir. Veri kaybı veya işlevsellik kaybına yol açan riskler kozmetik değil, daha ciddi risk sınıflarına girer.
Performans testi, sistemin hız, yanıt süresi ve kaynak kullanımını değerlendiren genel bir başlıktır. Stres, yük, hacim ve verimlilik testleri performans testinin alt türleridir.
Duman testi (smoke test), bir yapının temel işlevlerinin çalışıp çalışmadığını kontrol eden küçük çaplı, hızlı bir ön testtir. Duman testinden geçen birim, daha kapsamlı testlere hazır kabul edilir.
Modüllerin birleştirilmesi sırasında birbiriyle uyumsuz çalışmasından kaynaklanan riskler entegrasyon riskleri olarak adlandırılır.