Ana içeriğe atla

KALITELI YAZILIM ICIN : YAZILIM TESTLERI


Yazılım testi, bir yazılım ürününün veya uygulamasının yapması gerekeni yaptığını değerlendirme ve doğrulama sürecidir. Testin faydaları, hataları önlemeyi, geliştirme maliyetlerini düşürmeyi ve performansı iyileştirmeyi içerir.

KALITELI YAZILIM NEDIR?

Geliştirilecek olan yazılımın kendisine ait açık veya gizli olan gereksinimlere ve beklentilere uygunluk derecesidir.

Belirtilen veya ima edilen gereksinimleri karşılama yeteneğini taşıyan bir yazılım ürününün işlevsellik ve özelliklerin toplamıdır. (ISTQB,2010)

  • Gereksinimleri karşılayabilen
  • Sürdürülebilir,geliştirilmeye açık
  • Kabul edilebilir düzeyde hatasız
  • Bütçe planına ve zamanına uygun bitirilen özelliklere sahip olan yazılımlar kaliteli yazılım olarak adlandırılabilir.


YAZILIM TESTI NEDEN YAPILIR?

Yazılımın kendisinden beklenen işlevleri yine kendinden beklenen kalite ölçütleri çerçevesinde herhangi bir hata vermeden yerine getirdiğini göstermek amacıyla yapılır.

Yazılım testi, bir yazılımın sonsuz sayıdaki çalışma alanından, sınırlı sayıda ve uygun şekilde seçilmiş testler ile belirlenmiş gereksinimleri karşıladığının doğrulanması veya beklenen ile gözlenen sonuçlar arasındaki farkların belirlenmesi amacıyla yapılır.

Sonuç olarak olması gereken şeylerin olmadığını veya olmaması gereken şeylerin olduğunu denemek ve ortaya çıkartmak yazılım testinin amacı olmalıdır.

  • Yazılımın canlıda kullanımı sırasında ortaya çıkacak arızalı önlemek,
  • Yazılımı kalite kriterleri açısından değerlendirmek,
  • Müşterinin rekabet gücünü arttıracak ve ihtiyacını karşılayacak bir ürün teslim etmek,
  • Yazılımın karşılayacağını vaat ettiği müşteri,iş,paydaş ve çözüm gereksinimlerinden sapmaları belirlemek,
  • Yazılım test faaliyetlerini, geliştirilen yazılım üzerinde uygulayarak daha kaliteli yazılımlar geliştirilmesini sağlamak için yapılmaktadır.


YAZILIM TEST TEKNIKLERI

  • Beyaz Kutu Testi : Beyaz kutu testi, kara kutu testinde olduğu gibi sadece işlevsellikten ziyade iç yapıları, kullanılan veri yapılarını, iç tasarımı, kod yapısını ve yazılımın çalışmasını analiz eder. Ayrıca cam kutu testi veya şeffaf kutu testi veya yapısal test olarak da adlandırılır.
  • Kara Kutu Testi : Kara Kutu Testi, dahili kod yapısı, uygulama detayları ve dahili yollar hakkında bilgi sahibi olmadan yazılım uygulamalarının işlevlerinin test edildiği bir yazılım test yöntemidir. Kara Kutu Testi, temel olarak yazılım uygulamalarının giriş ve çıkışına odaklanır ve tamamen yazılım gereksinimlerine ve özelliklerine dayanır. Davranış Testi olarak da bilinir.
  • Keşif Testi : Keşif Testi, Test senaryolarının önceden oluşturulmadığı, ancak testçilerin sistemi anında kontrol ettiği bir tür yazılım testidir. Testin yürütülmesinden önce neyin test edileceğine dair fikirleri not edebilirler. Keşfedici testlerin odak noktası daha çok “düşünme” etkinliği olarak test etme üzerinedir.


YAZILIM TEST YASAM DONGUSU

Yazılım Test Yaşam Döngüsü (STLC), yazılım kalite hedeflerinin karşılanmasını sağlamak için test süreci sırasında gerçekleştirilen bir dizi özel eylemdir. STLC, hem doğrulama hem de doğrulama içerir. Popüler inanışın aksine, yazılım testi sadece ayrı bir faaliyet değildir.

1. Gereksinim Analizi

2. Planlama

3. Analiz

4. Tasarım

5. Uygulama

6. Yürütme

7. Sonuç

8. Kapanış


YAZILIM TEST PLANLAMASINDA YAPILACAKLAR

1. Test stratejisi ve test edilecek bileşenler

2. Giriş ve çıkış kriterleri

3. Hata yönetimi

4. Risk yönetimi

5. Görev ve sorumluluklar

6. Test ortamı ve  test araçları

7. Test takvimi


YAZILIM TEST SEVIYELERI

  • Birim Testi : Bir yazılımın ayrı birimlerinin veya bileşenlerinin test edildiği bir tür yazılım testidir. Amaç, yazılım kodunun her biriminin beklendiği gibi çalıştığını doğrulamaktır.
  • Entegrasyon Testi : Yazılım modüllerinin mantıksal olarak entegre edildiği ve grup olarak test edildiği bir test türü olarak tanımlanır. Tipik bir yazılım projesi, farklı programcılar tarafından kodlanmış birden çok yazılım modülünden oluşur. Bu test seviyesinin amacı, entegre olduklarında bu yazılım modülleri arasındaki etkileşimdeki kusurları ortaya çıkarmaktır.
  • Sistem Testi : Eksiksiz ve tam entegre yazılım ürününü doğrulayan bir test düzeyidir. Bir sistem testinin amacı, uçtan uca sistem özelliklerini değerlendirmektir. Genellikle yazılım, daha büyük bir bilgisayar tabanlı sistemin yalnızca bir öğesidir. Sonuç olarak, yazılım diğer yazılım/donanım sistemleriyle arabirim oluşturur. Sistem Testi aslında tek amacı tam bilgisayar tabanlı sistemi çalıştırmak olan bir dizi farklı testtir.
  • Kabul Testi : Yazılım uygulamasını üretim ortamına taşımadan önce yazılım sistemini doğrulamak/kabul etmek için son kullanıcı veya müşteri tarafından gerçekleştirilen bir test türüdür. Fonksiyonel, entegrasyon ve sistem testleri yapıldıktan sonra testin son aşamasında UAT yapılır.

 

MANUEL TEST VE TEST OTOMASYONU


YEDI TEST PRENSIBI NEDIR?

1. Show presence of errors (Test üründe hataların olduğunu gösterir.)

2. Early Testing (Teste projenin başında başlamak gerekir.)

3. Defect Clustering (Hatalar belirli yerlerde yoğunlaşır.)

4. Pesticide Paradox (Antibiyotik Direnci Paradoksu)

5. Exhaustive Testing Is Imposible (Her şeyi kapsayan test mümkün değildir.)

6. Testing Is Context Dependent (Test yaklaşımı projeye göre değişiklik gösterir,alan bağımlıdır.)

7. Absense of Errors Fallacy (Hata yokluğu yanılgısı; hata bulunmadığı için ürünün hatasız olduğunu düşünmek)

 

YAZILIM TEST TIPLERI NELERDIR?

Statik Testler

Yazılım uygulamasındaki hataları kodu çalıştırmadan kontrol etmek için kullanılan bir yazılım test tekniğidir. Hataları belirlemek ve hataları çözmek daha kolay olduğundan, geliştirmenin erken bir aşamasında hataları önlemek için statik testler yapılır. Ayrıca Dinamik Test tarafından bulunamayan hataların bulunmasına da yardımcı olur.

Dinamik Testler

Yazılım kodunun dinamik davranışını test etmek için kullanılan bir yazılım test yöntemidir. Dinamik testin temel amacı, yazılım davranışını dinamik değişkenler veya sabit olmayan değişkenlerle test etmek ve yazılım çalışma zamanı ortamında zayıf alanlar bulmaktır. Dinamik davranışı test etmek için kod çalıştırılmalıdır.

 

KAYNAKLAR;

https://www.ibm.com/topics/software-testing

https://www.javatpoint.com/software-testing-tutorial

https://www.softwaretestinghelp.com/what-is-software-testing-life-cycle-stlc/

https://www.tutorialspoint.com/stlc/stlc_overview.htm

https://www.inflectra.com/rapise/highlights/what-is-automated-software-testing.aspx


Yorumlar

Bu blogdaki popüler yayınlar

Mobil Uygulama Geliştirme: FLUTTER

Son zamanlarda merak sardığım konulardan biri de mobil uygulama geliştirme oldu. Küçücük bir uygulamanın bile verdiği çıktı ile mutlu olduğumu görünce mobil uygulama geliştirmekten zevk aldığımı hissettim. Araştırıp öğrenmeye başladım ve kısa sürede uygulama geliştirip ve bu uygulamayı kullanmak gerçekten güzel bir duyguydu. Şimdi sizlere geliştirdiğim basit bir Todo uygulamasından bahsedeyim. Flutter SDK ve Dart programlama dilini kullanarak çapraz platform çalışan yapılacaklar listesi uygulamasıdır. Bu uygulamada, verileri devamlılığını sağlamak için SQLite3 kullandım. Uygulama hem iOS hem de Android işletim sisteminde çalışmaktadır. Neden Flutter’ı Seçtim? ·  Flutter ile uygulamanızda yaptığınız bir değişikliği hot reload özelliği ile hızlı bir şekilde görebilirsiniz. Yani compile etmek(derlemek) için artık uzun süreler beklemeye gerek yok. Örnek vermek gerekirse Flutter ile varsayılan olarak gelen increment uygulamasını android sdk ile çalıştırmak ortalama 3 dakika

İNSAN SİNİR SİSTEMİNİN TAKLİDİ: YAPAY SİNİR AĞLARI

Yapay sinir ağları; beynin bir işlevi yerine getirme yönteminin matematiksel olarak modellenmesi ile tasarlanan sistemlerdir. Yapay sinir ağları, paralel dağıtılmış ağlar, bağlantılı ağlar, nuromorfik ağlar gibi adlarla da tanımlanmaktadır. Yapay sinir ağlarının ortaya çıkışından kısaca bahsetmem gerekirse; ilk yapay sinir ağı modeli 1943 yılında bir sinir hekimi olan Warren McCulloch ve bir matematikçi olan Walter Pitts tarafından “ Sinir Aktivitesinde Düşüncelere Ait Bir Mantıksal Hesap ( A Logical Calculus of Ideas Immanent in Nervous Activity )” başlıklı makale ile ortaya çıkarılmıştır. Öncelikle insanlarda bulunan sinir hücresinin yapısını ele alalım. Dentrites (Dendritler): Dendritler dışarıdan uyartıları alan ve hücre gövdesine ileten yapılardır. Dendritlerin çok sayıda olması, hücrelerin pek çok nörondan sinyal alma kapasitesini arttırır. Nucleus (Çekirdek): Akson boyunca işaretlerin periyodik olarak yeniden üretilmesini sağlayan yapılardır. Axon (Akson): Akson,

WEB’I GÜÇLENDIREN PROTOKOL : HTTP

1990 yılından beri dünya çapında ağ üzerinde kullanılan bir iletişim protokolüdür. Http’nin açılımı “Hyper Text Transfer Protocol” yani “Hiper Metin Transfer Protokolü“dür. HTTP protokolü ağ üzerinden web sayfalarının görüntülenmesini sağlayan protokoldür. HTTP  protokolü  istemci (PC) ile sunucu (server) arasındaki alışveriş kurallarını belirler. Port olarak ise  80  portunu kullanır. İstemci sunucuya bir istek gönderir. Bu istek Internet Explorer, Google Chrome veya Mozilla Firefox gibi web browser’lar aracılığıyla iletilir. Sunucu bu isteği alır. Apache   veya IIS   gibi web  sunucu  programları aracılığıyla cevap verir. HTTP İLE İLETİŞİM Bu iletişim aslında sadece iki kelime üzerine kuruludur. Request, Türkçe anlamı ile istek ve diğeri de response yani cevap... Kullanıcı tarafından görüntülenmek istenen adresle birlikte, sunucuya bir request yani istek yollanmış olur. Bu istek, sunucu tarafından değerlendirilir. İşin cevap kısmında eğer kullanıcının girmesi