Yazılım testi son derece karmaşık ve yoğun bir alandır; şirketler ve bağımsız geliştiricilerin tümü ürünlerini bir dizi test yöntemiyle geliştirmeye çalışır.
Şirketlerin test etmek için kullandığı en yaygın yöntemlerden biri, doğru sonuçlar sağlamak ve önyargıyı ortadan kaldırmak için geliştiriciler ve test uzmanları arasında mesafe yaratan bir teknik olan kara kutu testidir.
Bu ayrıntılı kılavuz ile kara kutu testinin ne olduğu, kara kutu testinin nasıl yapılacağı ve yazılım mühendisliğinde kara kutu testinin uygulanmasının bazı faydaları hakkında daha fazla bilgi edinin.
Kara kutu testi nedir?
Kara kutu testi, bir sistemin veya yazılım parçasının dahili olarak çalışma şekli hakkında önceden herhangi bir bilgiye sahip olmadan test edilmesi sürecini ifade eder. Bu sadece kaynak kodun kendisi hakkında bilgi sahibi olmamak anlamına gelmez, aynı zamanda yazılımı çevreleyen tasarım belgelerinin hiçbirini görmemiş olmayı da içerir. Test uzmanları sadece girdi sağlar ve bir son kullanıcının yapacağı gibi çıktı alır. Bu basit bir kara kutu test tanımı olsa da, genel sistemi ortaya koymaktadır.
Kara kutu testinin amacı, kullanıcıların yazılım hakkında önceden bilgi sahibi olmalarından kaynaklanan herhangi bir önyargıya sahip olmadan yazılımla normalden daha doğal bir şekilde etkileşime girmelerini sağlamaktır.
Bu metodolojide, testleri tamamlamaktan sorumlu kişiler yazılımı geliştirenlerden farklıdır ve iki ekip arasında ayrım yaratır.
1. Yazılım Testinde Kara Kutu Testini Ne Zaman ve Neden Yapmanız Gerekir?
Geliştirme döngüsünde kara kutu testi kullanmanın ideal olduğu birkaç aşama vardır ve kara kutu testlerinin çoğu geliştirmenin sonunda, piyasaya sürülmeden kısa bir süre önce gerçekleştirilir.
Bu, yazılımın bir tür yayın öncesi test olarak yazılımın hedef kitlesinin üyelerine gittiği kullanıcı kabul testigibi yöntemleri içerir. Bu daha yaygın olarak beta testi olarak bilinir ve bir şirket için ideal bir araçtır çünkü daha fazla maruz kalma, insanların yazılımdaki potansiyel hataları bulma olasılığının daha yüksek olduğu anlamına gelir.
Geliştirme döngüsünün sonuna doğru kara kutu metodolojisi ile çalışmak bir zorunluluktur, çünkü bu, kullanıcının erişme olasılığının daha yüksek olduğu bir sürümdür. Tek tek işlevler için kara kutu testi kullanabilirsiniz, ancak bu testin amacını ortadan kaldırır.
2. Kara Kutu Testi Yapmanıza Gerek Olmadığında
Kara kutu testlerinin, geliştirmenin ilk aşamalarında çok az amacı vardır. Bir şirket yazılımının temel işlevselliğini oluştururken, geliştiricinin kodun hangi noktasında sorun olduğunu görebilmesi için beyaz kutu testi kullanır.
Yazılım açık kaynak kodlu veya nispeten basit bir web aracı olduğunda veya üçüncü bir tarafın kodlama projelerine yardımcı olmak için tasarlandığında da kara kutu testine gerek yoktur, çünkü nispeten çıplak bir kullanıcı arayüzü vardır ve kullanıcı zaten programın kaynak koduna erişebilir. Bir kullanıcının kaynak koda erişmesini bekliyorsanız, kara kutu testi ana amacını kaybeder.
3. Kara kutu testine kimler katılır?
Kara kutu test sürecine dahil olan pek çok rol vardır, bu rollerden bazıları testi yapan şirketin yapısına bağlıdır.
Kara kutu test sürecine dahil olan önemli roller şunlardır:
– Test Cihazı
Bir test uzmanı, bir şirkette manuel test senaryolarını tamamlamaktan, uygulamayı çalıştırmadan önce ayrıntılı olarak inceleyen kapsamlı test senaryoları yazmaktan ve sonuçları raporlamaktan sorumludur. Bu rol, öncelikle manuel test sürecinde bulunur ve test otomasyonunun mevcut olduğu yerlerde otomatik sistemler rol alır.
– QA Analisti
Bir QA analisti, öncelikle şirket bir QA test otomasyon süreci kullanıyorsa, bir QA sürecinde test senaryolarının programlanmasından sorumludur.
Süreç, hem yüksek düzeyde işlevsellik sağlayan kapsamlı test senaryolarının tasarlanmasını hem de test senaryolarının yürütülmesini ve tamamlandığında sonuçların alınmasını içerir.
– Geliştirici
QA ekibinin test ettiği yazılımı geliştirmekten sorumlu kişi. Bir geliştirici, test ekibinden geri bildirim alır ve yazılımı buna göre günceller, bir geliştirme ekibinin parçası olarak çalışır ancak testçilerle sürekli iletişim halinde olur.
– QA Yöneticisi
QA yöneticisi, kalite güvence ekibinin lideridir ve test uzmanlarının gerçekleştirdiği tüm görevleri yönetmekten sorumludur.
Bu, test programının düzenlenmesini, personel üyeleri için yapılacaklar listesinin organize edilmesini ve ekipteki herhangi bir çatışmanın çözülmesini içerir. Ayrıca yeni işe başlayanlar için eğitimde kara kutu testini açıklıyorlar.
– Proje Lideri
Nihai projenin kalitesinden sorumlu kişi olan proje lideri, test sürecinin yanı sıra geliştirme sürecini de denetleyerek müşterinin tüm briefi karşılayan bir yazılım paketi almasını sağlar.
Kara Kutu Testinin Faydaları
Geliştirme çalışmalarınızda kara kutu testi kullanmanın birçok önemli faydası vardır. Bu faydaların ne kadar çok farkında olursanız, teknikten mümkün olduğunca çok avantaj elde ederek bunlardan en iyi şekilde yararlanabilirsiniz.
Kalite güvencenizde kara kutu testi kullanmanın başlıca faydalarından bazıları şunlardır:
1. Teknik bilgiye gerek yok
Kara kutu yaklaşımı, bir uygulamayı incelerken herhangi bir teknik bilgiye ihtiyaç duymadığınız anlamına gelir.
Kara kutu testinin arkasındaki amaç, uygulamanın son kullanıcı için nasıl çalıştığını incelemektir ve standart kullanıcı çoğu durumda herhangi bir ileri teknik bilgiye sahip değildir. Bu, test maliyetini azaltarak kuruluşun daha az masrafla daha fazla hata keşfetmesine ve mali açıdan daha verimli hale gelmesine yardımcı olabilir.
2. Kullanıcıyı doğru şekilde modelleyin
Kara kutu test sürecinin nihai amacı, bir kullanıcı günlük olarak bir uygulama ile etkileşime girdiğinde uygulamadaki sorunların neler olduğunu anlamaktır.
Bir kullanıcının davranış biçimini taklit etmeye odaklanan bazı kara kutu testi türleri, bir kullanıcının davranışını yüksek derecede hassasiyetle modeller. Bu, özellikle son kullanıcıların ürünü deneyimlediği, sadece bir kullanıcının davranışını modellemek veya simüle etmekle kalmayıp bunu gerçekten uyguladığı kullanıcı kabul testleri için geçerlidir.
Doğru modelleme, kullanıcının gerçek iş akışlarını etkileyen hataların ortaya çıkarılmasına yardımcı olur.
3. Kitle kaynaklı test yapabilme
Kara kutu testi, nispeten düşük beceri gereksinimleri sayesinde oldukça erişilebilir bir test şeklidir.
Bu, şirketlerin yalnızca daha düşük düzeyde teknik becerilere sahip test uzmanlarını işe alabilecekleri değil, aynı zamanda testlerini hevesli müşterilere kitle kaynaklı olarak yaptırabilecekleri anlamına geliyor. Bu, oyun endüstrisinde Erken Erişim sürümü sunan ve kullanıcıların bulduğu sorunları çözmek için oyunu zaman içinde güncelleyen şirketlerle giderek daha yaygın hale geliyor.
Bu durumda hataları bulmak çok daha kolaydır, çünkü tüm özellikler çok daha yüksek düzeyde açığa çıkar.
Kara Kutu Testinin Zorlukları
Kara kutu testinin faydalarının yanı sıra, hesaba katmanız gereken birkaç önemli zorluk vardır. Bu zorlukların farkında olmak, bunlara uyum sağlayabileceğiniz ve kara kutu testinin sahip olabileceği zararlı etkileri azaltarak testinizin standardını yükseltebileceğiniz anlamına gelir.
Bu zorluklardan bazıları şunlardır:
1. Sorun nedenlerini bulmak zor
Kara kutu testinin en önemli dezavantajlarından biri, test uzmanlarının kaynak koda erişimi olmadığında sorunların nedenini bulmanın daha zor olabilmesidir.
Hatanın ne olduğunu ve ne zaman ortaya çıktığını tanımlayabilseler de, kaynak kodun hangi parçasının sorunlara neden olduğunu veya nedenini belirtmezler.
Test uzmanları, geliştiriciden gelen ayrıntılı hata mesajlarının gelecekteki güncellemeler için daha fazla bilgi sunmasıyla birlikte, not alma konusunda titiz davranarak bu durumu bir şekilde hafifletebilirler.
2. Otomasyon daha zordur
Bir kullanıcının bir yazılım paketiyle etkileşime girme şeklini aktif olarak kopyalamaya çalıştığınız için, kara kutu test sürecini otomatikleştirmek son derece zor olabilir.
Bunun ilk nedeni, test uzmanının kaynak koda erişiminin olmaması ve bu durumun doğru bir test senaryosu yazmayı zorlaştırmasıdır. Bu durum, testlerin insan davranışını mümkün olduğunca taklit edecek şekilde tasarlanması ve otomasyonun özellikle robotik bir şekilde hareket edecek şekilde tasarlanması gerçeğiyle birleşiyor.
Daha önemsiz görevleri otomatikleştirerek ve mümkün olduğunda otomasyonu manuel testlerle birleştirerek bu sorunu dengeleyebilirsiniz.
3. Yüksek ölçekli testlerle mücadele
Otomasyonla ilgili yukarıda bahsedilen zorluklar, daha yüksek ölçeklerde test yapmanın daha karmaşık olduğu anlamına gelmektedir. Yüksek ölçekli testler şirketlere yazılım hakkında çok daha fazla veri sağlar ve hataların bulunmasının ve çoğaltılmasının daha kolay olduğu anlamına gelir.
Öncelikli olarak manuel test yapılması gerekliliği, daha büyük ölçeklerde test düzenlemenin daha zor olabileceği anlamına gelir. Bazı şirketler buna, ürünle ilgilenen herkesin yayın öncesi testlere yardımcı olabileceği ve gönüllülük esasına dayalı olarak erken sürümler hakkında geri bildirim sağlayarak şirketi destekleyebileceği bir “açık beta” sistemi kullanarak karşı koymaktadır.
Kara Kutu Testlerinin Özellikleri
Kara kutu testlerinin, bu testleri diğer yazılım kalite güvencesi türlerinden ayıran birkaç önemli özelliği vardır.
Bu özellikler şunlardır:
1. Önceden dahili bilgi yok
Kara kutu testleri, yazılım hakkında önceden dahili bilgi gerektirmez. Test uzmanları test ettikleri yazılımın yönleri ve aradıkları bazı özellikler hakkında bazı fikirlere sahip olduklarından bu bazı durumlarda zor olabilir, ancak bu genel olarak herhangi bir türden dahili belgeyi görememek olarak tanımlanır.
Basitçe söylemek gerekirse, bilgiler bir uygulama mağazasında veya bir web sitesinin indirme sayfasında son kullanıcı tarafından görülebiliyorsa, bir test uzmanı da bunları görebilir.
2. Test uzmanlarını ve geliştiricileri ayırın
Kara kutu testi durumunda test ve geliştirme aşamaları farklı kişiler tarafından tamamlanır. Bu farklılaşma, test uzmanlarının sahip olduğu bilgi eksikliğinden kaynaklanmaktadır, çünkü geliştiriciler kaynak kodun geliştirilmesinden sorumlu oldukları için bu konuda bilgi sahibidirler.
Şirketler bu konuya kendi özel durumlarına bağlı olarak birkaç farklı şekilde yaklaşmaktadır; bazıları testleri tamamlamak için harici bir kuruluşu kullanmayı tercih ederken, daha büyük şirketler bu işi tamamlamak için özel test uzmanları departmanlarına sahiptir.
3. Geç aşama testleri
Bu, bu testin gerçekleştiği gelişim aşamasını ifade eder. Kara kutu testleri, yazılımda tam gezinme ve her özelliğin ön ucuna erişim sağlayan kapsamlı bir kullanıcı arayüzüne sahip mevcut bir uygulamanın nispeten gelişmiş bir sürümüne dayanır.
Bu da kara kutu testlerinin ancak test sürecinin bazı sonraki aşamalarında, tüm bunlar başlangıçta geliştirildiğinde mümkün olabileceği anlamına gelir. Kullanıcı arayüzü ve kontroller zaman geçtikçe değiştirilebilse de, kara kutu testlerinin işlevselliğe erişmesine izin vermek için bir şekilde var olmaları gerekir.
Kara kutu testlerinde neleri test ediyoruz
Kara kutu testi, bir yazılım paketinin belirli yönlerini inceleyerek yazılımın bazı alanlarında ekstra bilgi sağlar ve bu da genel yaşam kalitesini artıran güncellemelere yol açar.
Test uzmanlarının kara kutu testinde inceledikleri bir yazılım paketinin ana parçalarından bazıları şunlardır:
1. İşlevsellik
Bazı geliştiriciler kara kutu testini, bir yazılım parçasının mevcut bilgisi olmayan biri için amaçlandığı gibi çalışmasını sağlamanın bir yolu olarak kullanır.
Herhangi bir yazılımı ticari olarak kullanan insanların büyük çoğunluğu bunu yazılımın iç işleyişi hakkında herhangi bir bilgiye sahip olmadan yapar, bu nedenle bu bilgiye sahipken test yapmak, mevcut sorunlar için geçici çözümleri bilmeniz anlamına gelir.
Bu kapsamlı işlevsellik testi, beyaz kutu testi kullanılırken görülmeyen hatalarla karşılaşmak yerine herkesin uygulamanın sunduğu en iyi deneyimi yaşamasını sağlar.
2. Kullanıcı arayüzü
Kullanıcı arayüzü, kullanıcının bir dizi görevi tamamlamasını sağlamak için bir uygulama ile pratik olarak etkileşime girdiği her yolu ifade eder. Bu, bir kullanıcının çalıştığı menüleri, bir uygulamada bulunan belirli düğmeleri ve yazılım boyunca var olan markalamayı içerir.
Geliştiriciler zamanlarının çoğunu uygulamanın bekledikleri gibi çalıştığından emin olmak için harcarlar, bu da kullanıcı arayüzüne daha az dikkat edildiği anlamına gelir.
Kara kutu testi, test uzmanlarına yazılımın yalnızca kullanıcı ucu özelliklerini sunar ve kullanıcı arayüzüne diğer test aşamalarından daha fazla dikkat çeker.
3. Performans
Normal çalışması ve iyi görünmesinin yanı sıra, bir uygulamanın performans gösterme şekli de müşterileri memnun etmek için çok önemlidir.
Performans, kullanıcı girdilerine yanıt verirken uygulamanın hızı ve herhangi bir cihazda kullandığı kaynaklar dahil olmak üzere birkaç faktörü ifade eder.
Bir yazılımın tüm özelliklerini inceleyen uçtan uca test gibi test biçimleriyle geliştiriciler, bir uygulamanın ne kadar bellek kullandığını ve hangi işlevlerin ilgili cihazlara en fazla yük bindirdiğini görebilir ve uygulamanın sonraki sürümlerinde verimlilik ve performansla ilgili güncellemelere rehberlik edebilir.
Bazı karışıklıkları gideriyorum:
Kara kutu vs Beyaz kutu vs Greybox Testi
Kara kutu testi, gri kutu ve beyaz kutu testlerine benzeyen bir kavramdır, ancak fikirler temelde birbirinden çok farklıdır. Bunların karıştırılması, geliştirme sürecinde ciddi iletişim sorunlarına yol açabilir ve güncelleme sürecinin yavaşlamasına ve daha az etkili olmasına neden olabilir.
Farklı “kutu testi” türleri, bunların birbirinden farkı ve her birinin ne zaman kullanılacağı konusundaki kafa karışıklığını gidermek için okumaya devam edin.
1. Beyaz Kutu Testi Nedir?
Beyaz kutu testi bazen “cam kutu testi” olarak da bilinir ve test uzmanının yazılımın arkasındaki tüm bilgilere tam erişime sahip olduğu bir test sürecini ifade eder. Buna kaynak koda, tasarım belgelerine ve paketin müşteri özetine erişim de dahildir.
Örneğin, bir test uzmanı geliştirme sürecinin en erken aşamalarında tek bir işlevi inceliyorsa, bu işlevin kaynak kodunu görebilmesi, sorunun nedenini hemen bulabileceği anlamına gelir.
Beyaz kutu testini kullanmak için en iyi zamanlardan biri, öncelikle dahili görevlerdir. Bu, uygulamanın işlevsel tarafının erken geliştirilmesini ifade eder ve kullanıcı deneyimini simüle etmediğinizde kodu gizlemenin bir faydası olmadığından hızlı düzeltmeler idealdir. Beyaz kod testi açık kaynaklı sistemlerde de kullanılır, çünkü bu durumlarda kaynak kodu tüm kullanıcılar için mevcuttur.
Beyaz kutu ve kara kutu testi arasındaki farklar nelerdir?
Kara kutu testi ile beyaz kutu testi arasındaki temel işlevsel fark, bir test uzmanının yazılıma erişim seviyesidir, ancak bunun testin zamanlama gibi yönleri üzerinde çok daha önemli etkileri vardır.
Kara kutu testi, ürün piyasaya sürülmeye yaklaştıkça sürecin ilerleyen aşamalarında daha tutarlı bir şekilde kullanılırken, daha temel geliştirme aşamaları beyaz kutu testinin şeffaflığından ve yanıt verebilirliğinden yararlanır. Kara kutu testi ve beyaz kutu testi düşünüldüğünde, beyaz kutu testinin daha etkili olması için kodlama ve geliştirme konusunda uzmanlık gerektirdiğinden, bu ikisi gerekli uzmanlık seviyeleri açısından da farklılık gösterir.
2. Gri Kutu Testi Nedir?
Gri kutu testi, bir kullanıcının tam erişime sahip olmadan kod hakkında mevcut bir anlayışa sahip olduğu bir test şeklidir. Bu, kullanıcının yazılım paketinin genel amacının ne olduğunu anlaması için test edilen işlevin kaynak koduna sahip olmayı veya bazı tasarım belgelerine erişmeyi içerir.
Örneğin, bir test uzmanı bir yazılım paketindeki işlevlerden sadece birini inceliyorsa, kendisine uygulamanın o bölümünün kaynak koduna erişim izni verilebilir.
Şirketler, bir uygulamanın üçüncü taraf bir araçla entegre edilme şeklini incelerken öncelikle gri kutu testini kullanır. Sürecin yalnızca bir bölümü için kaynak koda erişebilirler, bu da kapsamlı beyaz kutu testlerini tamamlama yeteneklerini sınırlar. Bunun yerine, üçüncü taraf entegrasyonunun girdilerini ve çıktılarını ve entegrasyondan sorumlu kaynak kodunu görürler.
Test uzmanları bunu, yazılım, üçüncü taraf uygulaması veya ikisi arasındaki entegrasyon nedeniyle herhangi bir sorunun ortaya çıkıp çıkmadığını değerlendirmek için kullanır.
Kara kutu ve Gri kutu Testi arasındaki farklar nelerdir?
Kara kutu ve gri kutu testleri arasındaki temel fark yine bilgiye erişim seviyesidir ve test edilen yazılım türü test türleri arasındaki temel ayırt edici faktörlerden biridir.
Gri kutu testi, bulut veri depolama veya harici işleme araçları gibi üçüncü taraf araçları içerme eğilimindeyken, kara kutu sistemleri tek bir uyumlu birim olma eğilimindedir. Birçok kara kutu testi üçüncü taraflarca kesintiye uğratılmazken, entegre uygulamaların gri kutu test metodolojisinde çalışmaktan başka seçeneği yoktur.
3. Sonuç: Kara Kutu, Beyaz Kutu ve Gri Kutu testleri
Sonuç olarak, siyah, gri ve beyaz kutu testleri arasında temel farklar vardır ve bunların tümü perde arkası bilgilerin test ekibine sunulup sunulmadığına bağlıdır.
Kara kutu ve beyaz kutu testleri bu spektrumun uç noktalarıdır; gri kutu testleri ise üçüncü taraf kaynak kodu hariç her şeyi görmekten yalnızca belirli bir işlevin arkasındaki kodu görebilmeye kadar her şeyi kapsar.
Ancak tüm bu test yöntemlerinin yazılım testi alanında oynayacağı bir rol vardır, bu nedenle bunları öğrenmek ve etkili bir şekilde uygulamak için zaman ve dikkat harcamak bir zorunluluktur.
Kara Kutu Test Türleri
Bir şirketin kara kutu metodolojisi aracılığıyla tamamladığı tüm testleri kapsayan üç ana kara kutu testi türü vardır. Bunlar:
1. İşlevsel test
İşlevsel test, uygulamanın mekanik olarak çalışma şeklini çevreleyen her şeyi kapsar. Bu, verileri doğru şekilde işlediğinden, kullanıcıların doğru kimlik bilgileriyle oturum açmasına izin verdiğinden ve bilgileri ve girdileri beklendiği gibi işlediğinden emin olmayı içerir.
İşlevsellik testi, sürecin en önemli yönlerinden biridir ve hem uygulamanın yerel işlevselliğini hem de bulut tabanlı hizmetler veya Tek Oturum Açma araçları gibi harici araç ve programlarla etkileşim şeklini içerir.
2. Fonksiyonel olmayan testler
Fonksiyonel olmayan test ler, yazılımın uygulamanın işlevselliği ile açıkça ilgili olmayan herhangi bir yönünü inceleyen testleri ifade eder. Bu, bir uygulamanın kullanıcıları için kullanılabilir ve anlaşılması kolay olup olmadığının, çok çeşitli cihaz ve işletim sistemleriyle uyumlu olup olmadığının ve önemli düzeyde yük altında nasıl performans gösterdiğinin belirlenmesini içerir (ancak bu, bazı noktalarda işlevsel testlere kayabilir).
Bu, öncelikle tüm uygulama derlendikten sonra geliştirme sürecinin sonuna doğru gerçekleşir.
3. Regresyon testi
Bir güncellemeden sonra test uzmanları, uygulamanın amaçlanan işlevi yerine getirdiğinden ve uygulamanın gerilemesine neden olan istenmeyen yan etkilerin olmadığından emin olmak için uygulamayı inceler.
Bu, regresyon testi olarak bilinir ve bir uygulamanın pazara çıkmaya hazır olduğundan emin olmanın temel bir parçasıdır.
Regresyon testi, uygulamanın hem işlevsel hem de işlevsel olmayan yönlerinin daha önce elde edilen standarda uygun olduğundan emin olmak için her güncellemeden sonra kullanılır.
Kara Kutu Test Teknikleri
Kara kutu test sürecinden geçtiğinizde, işinizin standardını iyileştirmek için uygulayabileceğiniz çok çeşitli teknikler vardır. Bir kalite güvence ortamında kullandığınız en önemli kara kutu test tekniklerinden bazıları şunlardır:
1. İkili testler
İkili test, yazılımda mümkün olan her bir veri girişi kombinasyonunu denemeye odaklanan bir test şeklidir.
Örneğin, birden ona kadar olan sayıların tümü bir sütunda, tüm alfabe karakterleri başka bir sütunda geçerli girişlerse, ikili test 1A’dan 10Z’ye kadar tüm olası kombinasyonları test edecektir. Bu, bir kullanıcının tamamlaması için çok fazla zaman ve çaba gerektirebilecek bir test şeklidir ve bu da onu potansiyel hiper otomasyona en açık tekniklerden biri haline getirir. Bu son derece kapsamlıdır ve veri girişiyle ilgili olası sorunları bulur.
2. Sınır değer analizi
Birçok yazılım parçası veri girişine dayanır ve verilerin müşterinin içinde çalışması beklenen belirli sınırları vardır.
Örneğin, 1’den 100’e kadar olan rakamları hesaplamak için tasarlanmış bir sistem 0 veya daha düşük ya da 100’den daha yüksek değerlerde zorlanabilir.
Sınır değer analizi, bir yazılım paketinin beklenen çalışma aralığının sınırında hata olup olmadığını incelemek için yazılımın test ettiği sınırlara ve sınırların çevresine sayılar girerek bu sınırları test etmeyi içerir. Bu, öncelikle hesaplama tabanlı sistemlerde faydalıdır ve geliştiricilerin sınırları ayarlamasına veya herhangi bir sorunun nedenini bulmasına yardımcı olabilir.
3. Durum geçiş testi
Pek çok program farklı “durumlar” veya “modlar” arasında değişiklik gösterir ve bu sürecin bir aşamasından diğerine geçişi gerektirir. Bu geçişlerin düzgün çalışması, sitenin kullanıcının beklediği gibi çalışması ve beklenmedik gecikmelerin yaşanmaması anlamına gelir.
Durum geçiş testi, bir yazılım parçasındaki durumlar arasındaki tüm geçişleri inceleyen, bunların işlevsel olmasını sağlayan ve kullanıcının yazılımdaki akışının beklenmedik kesintiler olmadan çalıştığına dair kesinlik sağlayan bir test şeklidir.
Yazılım Mühendisliği Yaşam Döngüsünde Kara Kutu Testi
Kara kutu testi, öncelikle yazılım mühendisliği yaşam döngüsünün sonuna doğru kullanılan bir disiplindir. Bu, kullanıcıların yazılımla etkileşime girme şeklini test etmekten tam beta erişimi sağlamaya kadar her şeyi içerir; kara kutu testi, öncelikle tüm işlevler beklendiği gibi çalıştığında devreye girer.
Yüksek düzeyde uzmanlık gerektiren beyaz kutu testlerine kıyasla çok fazla zaman ve emek tasarrufu sağlar ve sistemin çalışma biçiminde anında değişiklik yapmak için bir geliştirme ekibine ihtiyaç duymadığınızda en iyi şekilde uygulanır.
Manuel veya Otomatik kara kutu Testleri?
Yazılım testinin iki farklı biçimi vardır: manuel test, sürecin her aşamasında yazılım test uzmanlarının kullanıldığı geleneksel biçimdir. Bu, herhangi bir insan müdahalesi olmadan görevleri tamamlamak için artan düzeyde yapay zeka ve makine öğrenimi kullanan otomatik test ile kesin bir çelişkidir.
Manuel ve otomatik testlerin ne olduğu, her birinin zorlukları ve bir şirket için hangisinin ideal olduğu hakkında daha fazla bilgi edinmek için okumaya devam edin.
1. Manuel Kara Kutu Testi – Faydalar, Zorluklar, Süreç
Manuel kara kutu testi, şirketin araç setinin bir parçası olarak bir otomasyon platformu kullanmak yerine tüm görevleri tamamlamak için personel üyelerini kullanarak kara kutu testini bağımsız olarak tamamlama sürecini ifade eder.
Yazılım geliştirmede manuel test kullanmanın temel faydalarından bazıları, testi tamamlama şekliniz üzerinde daha fazla esnekliğe sahip olmanız ve geliştiricilerin doğası gereği nitel olan çok daha kapsamlı geri bildirim alabilmeleridir.
Bununla birlikte, manuel test sürecinde doğuştan gelen birkaç doğal zorluk vardır. Bunlardan ilki, manuel testlerin çok zaman alabileceği ve insanların görevlerini tamamlamada otomatik programlardan daha yavaş olduğu gerçeğidir.
Bir diğeri ise, insanların yanlış tıklama veya işleri yanlış sırada yapma kapasitesine sahip olması nedeniyle daha yüksek düzeyde hata potansiyelidir. Bu da sonuçta test verilerinde yanlışlıklara yol açabilir.
Manuel test, bir şirketin bir uygulamadan beklentilerini öğrenerek başlayan, ardından bu beklentileri karşılayacak test senaryoları yazan, test senaryolarını yürüten ve sonuçları geliştirme ekibine raporlayan bir süreçtir.
2. Kara Kutu Test Otomasyonu – Faydalar, Zorluklar, Süreç
Otomatik testler, bir şirketin otomatik bir sistemle test senaryolarını tamamlayarak bir yazılım paketi üzerinde gerçekleştirdiği testleri ifade eder. Bunlar, yazılım paketini otomatikleştirmek için üçüncü taraf platformları kullanır ve otomatikleştirilmiş adımlar özel olarak hazırlanmış test senaryolarını takip eder.
Kara kutu test otomasyonunun temel faydası hızıdır; otomatik programlar bir testin her çalıştırılmasında çok daha az zaman alır. Bu da, uygulamayı geliştirmek için harcayabileceğiniz test süresinde büyük bir zaman kazancı anlamına gelir.
İyi bir otomasyon aracı aynı görevleri her seferinde aynı sırayla tamamladığı için bir diğer faydası da doğruluktur.
Kara kutu test otomasyonu için dezavantajlar hala sorunlara neden olabilir ve ana sorunlardan biri nicel verilere odaklanmaktır. Bu, metrikler için harikadır ancak bir kullanıcı kabul edilebilirlik testinde elde edilecek çok az değerli bilgi olduğu anlamına gelir.
Ayrıca, analistlerin bir değişiklik yapmak istediklerinde tamamen yeni test senaryoları kodlamaları gerektiğinden, otomatik testlerde göreceli bir esneklik eksikliği vardır.
Test otomasyon süreci, bir dizi test senaryosunun tasarlanmasıyla başlar ve daha sonra testler yürütülmeden önce sisteme kodlanır ve tamamlandığında bir rapor sunar.
3. Sonuç: Manuel mi yoksa Kara Kutu Test Otomasyonu mu?
Sonuç olarak, manuel ve otomatik kara kutu testi arasındaki seçim, bir sistemde ne aradığınıza bağlı olan karmaşık bir seçimdir.
Son kullanıcıya yönelik tasarım değişiklikleri yapmak için kullanabileceğiniz üst düzey niteliksel bilgiler arıyorsanız, manuel test açık ara daha iyi bir seçenektir; otomatik test ise süreçteki işlevsel ve performans aşamaları için idealdir.
Test sürecinin her aşamasında ne aradığınızı düşünün ve performansınızı kolaylıkla geliştiren yönlendirilmiş veriler elde edebilirsiniz.
Kara Kutu Testine Başlamak İçin Neye İhtiyacınız Var?
Kara kutu testine başlamadan önce erişmeniz gereken bazı ön koşullar vardır ve bunların her biri daha tutarlı bir test süreci oluşturmanıza yardımcı olur.
Kara kutu test çalışmalarına başlamadan önce sahip olunması gerekenlerden bazıları şunlardır:
1. Yazılım gereksinimleri
Yazılım gereksinimleri, bir tasarım özetinde yazılımın ulaşması için tasarlandığı belirli noktaları ifade eder. Bu, belirli bir dizi görevi tamamlama ihtiyacından, kullanırken belirli bir görünüm ve hisse sahip olmaya kadar bir dizi şeyi içerebilir.
Bu bilgilere sahip olmak, test uzmanlarının yazılımla ilgili sorunlar hakkında geliştiricileri bilgilendiren daha tutarlı bir dizi sonuçla sonuçlanan bir test programı ve planı oluşturmasıyla testlerinizde hedefleyeceğiniz birkaç spesifik hedef sağlar.
Bazı şirketlerde, bu bir kara kutu testi olduğundan, geliştiriciler bir test uzmanının brief’e erişimini sınırlayacaktır.
2. Derlenmiş yazılım
Bir yazılım parçasını test etmeden önce, kalite güvence ekibinin yazılıma erişmesi gerekir. Bu genellikle geliştiricilerin yazılımın en son sürümünü sağlamasını içerir ve ekip testlerini yapmak için yazılımın tamamen yeni derlenmiş bir sürümüne sahip olmaktan yararlanır.
Yeni bir sürüme sahip olmak, testlerin en son düzeltmelerden bazılarını içerdiği anlamına gelir, bu da yazılımın nasıl performans gösterdiğini doğru bir şekilde temsil ettiği anlamına gelir.
3. Test hedefleri
Test uzmanları, bir test dönemine akıllarında belirli hedeflerle yaklaşma eğilimindedir. Bu test hedefleri, kullanıcı kabul edilebilirliği, uçtan uca işlevsellik veya sızma testinin tamamlanması gibi önümüzdeki dönemde tam olarak neyi test edeceklerini belirler.
QA yöneticileri bu hedeflere sahip olma eğilimindedir ve testin bir sonraki aşaması genellikle geliştirme ekibinin ne üzerinde çalıştığına ve bu gelişmelerin yazılımın hangi bölümlerini etkilediğine bağlıdır.
Kara Kutu Test Süreci
Kara kutu test süreci nispeten hassas bir süreçtir ve şirketler süreç adımlarını mümkün olduğunca yakından takip etmekten fayda sağlar. Kara kutu test sürecinin farklı aşamaları şunları içerir:
1. Test planlaması
Kara kutu test sürecine karmaşık bir planlama süreci ile başlayın. Bu, test için sahip olduğunuz tüm bireysel hedefleri, incelemekte olduğunuz yazılımın belirli yönlerini ve teste ayırdığınız kaynakları tartışmayı içerir.
Daha kapsamlı bir planlama, testlerde kullanılan yöntemler de dahil olmak üzere herkesin ne yapması gerektiğini ve ne zaman yapması gerektiğini bilmesi anlamına gelir.
2. Test senaryosu yazımı
Test senaryosu yazımı sürecin bir sonraki aşamasıdır. Bir test senaryosu, bir testte tamamlanması gereken bir dizi adımı ifade eder ve daha ayrıntılı test senaryoları kullanıcı için daha yüksek düzeyde tutarlılık sağlar.
Otomatik bir test sürecinde, bu aynı zamanda test senaryosunun kullanmayı planladığınız otomasyon aracında kodlanmasını da içerir.
Tamamlanması gereken adımların eksiksiz ve net olduğundan emin olmak için tüm test senaryolarınızı iki kez kontrol edin.
3. Test senaryosu yürütme
Test senaryolarınızı hazırladıktan sonra, test senaryolarını yürütmeye başlayın. Otomasyon kullanırken, bu, programı yoluna koymayı ve sonuçları beklemeyi içeren nispeten kolay bir görev olabilir. Manuel testler, çalışanların test senaryolarını tekrar tekrar tamamlamasına dayanır ve daha fazla tekrar daha tutarlı, yüksek kaliteli veriler sağlar.
Her test senaryosunu mümkün olduğunca dikkatli bir şekilde uygulayın, çünkü test senaryolarının uygulanması ne kadar hassas olursa, verilerin geliştirme ekibi için yararlı olma şansı da o kadar artar.
4. Nihai raporlama
Son raporlama aşaması, sürecin test ekibinin geliştiricilere geri rapor verdiği kısmını ifade eder.
Test uzmanlarının topladığı tüm metrikleri eklemeden önce toplanan bilgilerin basit bir özetini ekleyerek başlayın. Bu, geliştiricilere tüm verileri göstermeden önce bir sonraki güncelleme dizisi için ideal yön konusunda ilk rehberliği sağlar ve böylece sorunları daha derinlemesine anlamalarına olanak tanır.
Kara Kutu Testi için En İyi Uygulamalar
Sektörünüz ne olursa olsun, en iyi uygulamaları takip etmek her şirket için bir zorunluluktur. En iyi uygulamalar, bir şirketin günlük işlerinde kullanmaktan fayda sağladığı, şirketin verimliliğini artıran ve şirketin kullandığı yazılımın standardını geliştiren bir dizi davranış ve tekniği ifade eder.
Bir şirketin kara kutu testlerinin kalitesini artırmasına yardımcı olan bu uygulamalardan bazıları şunlardır:
1. Beceri geliştirmeye odaklanın
Aynı anda birden fazla yazılım üzerinde çalışan bir şirketiniz varsa, test becerilerini ve uzmanlık alanlarını geliştirmeye odaklanmayı düşünün. Uzmanlaşmaya ve uygun becerileri geliştirmeye ne kadar çok zaman harcarsanız, ürünlerinizde var olan sorunları kökten çözme şansınız da o kadar artar.
Bu, doğru becerilere sahip kişileri işe almakla eşleşir, ancak bu yetenekleri uygulamanın her zaman bir yararı olduğu için neredeyse sürekli yazılım testi yapan şirketler için en uygun olanıdır.
2. İş yüklerini dengeleyin
Bazı test ekipleri çok büyük olabilir ve düzinelerce, hatta yüzlerce personel düzenli olarak test senaryolarını tamamlar.
Bu personelden en iyi şekilde yararlanmak için en iyi uygulama, zaman ayırmak ve insanları belirli görevlere atarken dikkatli olmaktır. Tükenmişliğin yazılım geliştirme sektöründe sorunlara yol açma konusunda ciddi bir geçmişi vardır, ancak bu daha iyi bir iş yükü yönetimi ile önlenebilecek bir şeydir.
3. Tutarlı süreçler oluşturun
Şirketler, çalışanlarının günlük olarak tamamladıkları süreçlere sahip olmak üzerine kuruludur; test süreçleri, bir şirketin test senaryolarını yazma, araştırmayı tamamlama ve departmanlar arasında dahili iletişim kurma şeklini içerir.
Bu gibi durumlarda tutarlılık kilit önem taşır çünkü bu, insanların şirkete girdiklerinde daha hızlı öğrenmeleri anlamına gelir. Bu, görevlerinde tutarlılık olmayan bir şirkete kıyasla çok daha hızlı adaptasyon ve daha iyi çıktı elde edilmesini sağlar.
Mümkünse, bu süreçleri personeli karar alma sürecine dahil edecek şekilde oluşturun, çünkü bu onların stratejiyi kabul etmelerini sağlar.
Kara Kutu Testlerinin Uygulanmasında 7 Hata ve Tuzak
Her sektörde hatalar doğaldır, ancak hata yapma fırsatı bulmadan önce hatalar hakkında bilgi sahibi olmak size çok fazla zaman ve emek kazandırabilir.
Kara kutu test uzmanlarının düştüğü en yaygın hatalardan ve tuzaklardan bazıları şunlardır:
1. Tanımlanmış test kapsamının olmaması
Bazı kuruluşlar süreçlerini düzgün bir şekilde planlamadan ürünlerini test etmeye başlar ki bu önemli bir hatadır.
Planlama yapmayan şirketler testlerin kapsamını gözden kaçırabilir. Üzerinde anlaşmaya varılmış bir kapsamın olması, testin doğru ölçekte olmasına ve etkili sonuçlar elde edilmesine yardımcı olur.
Başlamadan önce testinizin kapsamı üzerinde anlaşmaya varmazsanız, çok geniş kapsamlı testler yapma ve daha az ilgili sonuçlar elde etmek için çok fazla zaman harcama gibi ciddi bir risk vardır.
2. Aceleye getirilmiş test süreçleri
Test, özellikle tüm bir uygulamayı incelemek için tasarlanmış uzun test senaryoları ile çok uzun zaman alan bir süreç gibi hissedilebilir. Bazı kişiler, özellikle daha önceki testlerin tekrarında, testlerini aceleye getirme eğiliminde olabilir. Bu ciddi bir hatadır. Testlerinizi aceleye getirmek, test senaryosu uygulamasında hatalara yol açarak verilerin değerini düşürebilir ve sonuçta aynı testleri tekrar yapmanız gerektiği anlamına gelir.
3. Doğrulama süreci olmadan otomatikleştirme
Test otomasyonu öncelikle bir veri değerinin girilmesinin sürecin sonunda doğru çıktıya yol açacağından emin olmaya odaklanır. Bu testlerin otomatikleştirilmesi, otomatikleştirilmiş sürecin çıktısını sonuçların olması gerekenle karşılaştırarak doğrulayarak çalışır.
Bazı test uzmanları değeri kendileri hesaplamayarak önemli bir hata yaparlar, bu da çıktının doğru olup olmadığını doğrulamanın hiçbir yolu olmadığı ve potansiyel olarak sistem genelinde önemli hataları bulmada başarısız oldukları anlamına gelir.
4. Hibrit test kullanmamak
Hibrit test, iki yöntem birbirinin kusurlarını mükemmel bir şekilde kapatacak şekilde çalıştığı için otomasyon ile manuel testin dengelenmesi anlamına gelir.
Ancak bazı kuruluşlar bu iki yöntemden birine odaklanmayı tercih etmektedir. Bunu yaparak testinizi ciddi sorunlara ve yanlışlıklara açık hale getirirsiniz.
Testlerinizde daha iyi bir denge düzeyi elde etmek ve hata sayısını olabildiğince azaltmak için hibrit testleri tamamlayın.
5. Regresyon testinin tamamlanmaması
Regresyon testi, etkili bir yazılım test sisteminde sürekli bir süreç olmalıdır; bu test şekli, yazılım güncellemelerinin sistemin başka yerlerinde sorunlara neden olup olmadığını tespit eder. Regresyon testini tamamlamamak, sürecin başlarında test ettiğiniz işlevlerin siz farkına varmadan başarısız olabileceği anlamına gelir.
Regresyon testini tamamlayarak, kalite güvence sürecine çok fazla ekstra iş yüklemeden daha yüksek kaliteli bir ürün göndermenizi sağlarsınız.
6. Aktif olarak böcek avlamak
Bazıları kara kutu testinin amacının bir yazılım paketindeki hataları bulmak ve bunları bir geliştirme ekibine bildirmek olduğunu düşünür ve bu bir yönü olsa da, tek odak noktası değildir. Test, genel olarak bir yazılım paketinin standardını iyileştirmek için vardır.
Yazılımdaki hatalara çok fazla odaklanarak standart iş akışlarının dışına çıkmaya, test kapsamınızın dışına çıkmaya ve koddaki potansiyel olarak alakasız kusurları avlamak karşılığında yazılımla ilgili daha önemli sorunların bazılarını görmezden gelmeye başlarsınız.
7. Sezgilerinizi görmezden gelmek
Manuel testlerde, bir test uzmanı bu role sahiptir çünkü mevcut bir sezgiye ve onları potansiyel sorunlara yönlendiren ve çalıştıklarında incelenecek alanlar hakkında bilgilendiren bir kod bilgisine sahiptirler.
Ancak bazıları test senaryoları üzerinde çalışırken bu sezgiyi tamamen göz ardı etmeyi tercih etmektedir. Test etmek istediğiniz her şeyi not alarak ve yeni bir test senaryosunda kontrol ederek, hazırlanan test senaryolarını tamamlarken teknik bilginizden tam olarak faydalanabilirsiniz.
Kara Kutu Testlerinden Elde Edilen Çıktı Türleri
Kara kutu testinden alabileceğiniz çeşitli çıktı türleri vardır ve her biri, ürünlerinde ilgili güncellemeleri yapmak ve müşterilerin deneyimlediği kaliteyi artırmak isteyen bir şirket için benzersiz bilgiler sağlar.
Kara kutu testlerinden elde edilen ana çıktı türlerinden bazıları şunlardır:
1. Niteliksel veri
Bir kara kutu testinden alabileceğiniz ilk çıktı biçimi nitel verilerdir. Bu, öncelikle uygulamayı tanımlayan ve uçtan uca test ve kullanılabilirlik testleri gibi testlerden çıkan bilgilerdir.
Nitel veriler tipik olarak uygulamanın standardını tanımlar, insanların uygulama ile ilgili deneyimlerini tartışır ve bir test uzmanının yapmak istediği değişiklikleri açıklar.
Bu verileri oluştururken, bir test uzmanı tipik olarak puanları için tüm kanıtları belirten kapsamlı bir rapor yazar ve nitel görüşleri, neye atıfta bulunduklarının ekran görüntüleri gibi diğer özelliklerle destekler.
2. Nicel veriler
Bu, test personelinin bir uygulamanın belirli bölümlerini not alması veya bir otomasyon testi protokolünden sayısal veriler alması ile metrikler şeklinde net sayısal verileri ifade eder.
Nicel bilgiler, geliştiricilere, uygulamanın performans düzeyi, kullanılan kaynaklar açısından verimliliği ve uygulamada mevcut olan hata ve sorunların sayısı gibi bölümlerini gösteren farklı düzeltmeler sağlamak için daha yararlı olma eğilimindedir.
Nicel bilgilerin analiz edilmesi ve değerlendirilmesi, herhangi bir yoruma gerek olmadığı için tanımlayıcı eşdeğerine göre daha kolaydır.
3. Hata mesajları
Hata mesajları, yazılımın işlevselliği beklendiği gibi çalışmadığında ortaya çıkar. Bu, donanım veya yazılım sorunlarından kaynaklanabilir ve genellikle bir hata koduna ek olarak sorunun ne olduğuna dair kısa bir açıklama ile birlikte gelir.
Geliştiriciler, bir sistemdeki sorunun tam olarak nerede meydana geldiğini daraltmalarına yardımcı olmak için bir hata kodları sistemi oluştururlar; sorun yaşayan işlevi daraltmak için ilk rakamı, özellikle neyin başarısız olduğunu tanımlamak için ikincisini ve sorunun nedenini belirtmek için üçüncüsünü kullanmak gibi uygulanacak bazı fikirler vardır.
Bu hata kodları sistemini kullanmak, geliştiricilerin sorunun ne olduğunu hemen bilmeleri ve bir çözüm üzerinde çalışabilmeleri anlamına gelir.
Kara Kutu Testlerine Örnekler
Kara kutu testinin arkasındaki teori nispeten basit olsa da, pratikte uygulanması, özellikle de ilk kez test yapan bir kişi için karmaşık bir süreç olabilir. Bir kara kutu testi örneğini çalışırken görmek, testinizi organize ederken size yol göstermeye yardımcı olabilir.
Birden fazla test türü ve değişen başarı dereceleri de dahil olmak üzere kara kutu test yöntemlerine bazı örnekler şunlardır:
1. Etkisiz kullanıcı kabul testi
Bir şirket, kullanıcı kabul testleri henüz yapılmamış olan ürününü önümüzdeki haftalarda piyasaya sürmeyi planlıyor. Uygulama, yaşlı bir kitle için bir örgü eğitimidir.
Geliştiriciler bu süreci hızlandırmak ve bir grup test katılımcısını hızlı bir şekilde bir araya getirmek için, daha erişilebilir bir grup oldukları için test etmek üzere yalnızca otuzlu yaşların ortasındaki örgü örmeyenleri kullandılar. Bu grup başvuruda herhangi bir sorun görmez ve kamuya açıklanması için yeşil ışık yakar.
İki grup arasındaki teknik bilgi seviyelerinin çelişkili olması nedeniyle, hedef kitlenin yazılımı kullanırken kafası daha çok karışıyor ve birçok özelliğe erişemiyor. Buna karşılık olarak şirket acil güncellemeleri tamamlamak zorunda kalmıştır.
Bu gibi testlerdeki başarısızlıklar, kapsamlı hazırlığın önemini göstermektedir.
2. Başarılı uçtan uca test
Uçtan uca test, bir uygulamanın işlevselliği ilk kez tek bir yazılım paketinde tamamen derlendikten sonra gerçekleştirilen test anlamına gelir.
Bir şirket, uçtan uca test sürecini tamamlamak için dikkatli bir planlama yapmış ve her test vakasına iki çalışan tahsis ederek test görevlerini tamamlamak için özel olarak işe alınan bir dizi personele sahip olmuştur.
Dikkatli bir sürecin ardından test senaryolarını tamamlarlar ve topladıkları verileri not ederler; testin sonunda bir QA yöneticisi bu verileri derleyerek bir rapor haline getirir.
Geliştiriciler bu raporu, uygulamada yapılacak bir sonraki güncelleme ve değişiklik serisini planlamak ve ürünü önemli ölçüde iyileştirmek için kullanır.
3. Otomatik regresyon testi
Bir geliştirici, güncellemelerden önce beklendiği gibi çalışan yazılımında bir dizi güncellemeyi tamamladı. Güncellemelerden sonra test ekibi, otomasyona odaklanan bir regresyon testi sürecinden geçer ve tüm temel işlevleri tamamlamak için otomatik bir platform elde eder.
Ekip, bir test senaryosu için kodu yazar ve test senaryolarını yürütür, testlerin tüm sonuçlarını okur ve olası sorunların nerede olduğunu bulur.
Bu, bir kuruluşun güncellemeler yapması ve bunların bir sorunu olup olmadığını kontrol etmemesi nedeniyle sorunların ortaya çıkmasını önler.
Kara Kutu Testi ile tespit edilen hata ve bug türleri
Hatalar ve buglar kara kutu test sürecinde her şey olmasa da, şirketlerin test yapma yöntemlerinin önemli bir parçasıdır.
Kara kutu testindeki bazı ana hata ve bug türlerini bilmek, karşılaştığınız sorunları kategorize etmenize ve neden meydana geldiklerini daha iyi anlamanıza yardımcı olabilir.
Kara kutu testi ile tespit edilebilen ana hata ve bug türlerinden bazıları şunlardır:
1. Kullanılabilirlik hataları
Kullanılabilirlik hataları, bir programda aslında işlevselliği etkilemeyen ancak yazılımla etkileşime girmeye çalışan bir kullanıcı için sorunlara neden olabilecek kusurları ifade eder.
Örneğin, bir uygulamada ciddi bir grafik hatası varsa, uygulama teknik olarak hala çalışmaktadır ancak doğru simgeler ve metinler olmadan son kullanıcı uygulamayı etkin bir şekilde kullanamaz. Bu sorunlar, uygulamanın tasarımını ve tasarımın kullanıcı için yüklenme şeklini çevreleme eğilimindedir; daha karmaşık uygulamalar, daha basit kullanıcı arayüzlerindekinden daha karmaşık grafikler gerektirir.
2. İşlevsel hatalar
İşlevsel hatalar, bir programın bir parçası beklendiği gibi çalışmadığında ortaya çıkan sorunları ifade eder.
Örneğin, bir veritabanı yazılımı çalıştırıyorsanız ve bilgileri belirli bir kategoriye göre sıralamaya çalışıyorsanız, ancak bunun işe yaramadığını fark ederseniz. Bu durum hem hiç çalışmayan hem de çalışıyor gibi görünüp yanlış çalışan fonksiyonlar için geçerlidir.
Bunlar bir uygulama için en önemli sorunlardan bazıları olabilir, kullanıcılara önemli ölçüde rahatsızlık verir ve ürün reklamı yapıldığı gibi çalışmadığı için geliştiricinin itibarını kötüleştirir.
3. Çarpışmalar
Bir yazılım parçası çöktüğünde, yazılımın çalışmasını engelleyen temel bir sorun vardır. Bir uygulamanın tümüyle kapanması veya işlemin bir noktasında donması da dahil olmak üzere, meydana gelebilecek birkaç farklı çökme şekli vardır.
Uygulamayı tamamen kapatıp yeniden açmak dışında işlevselliğe döndürmenin bir yolu olmadığından, çökme meydana gelebilecek en ciddi sorunlardan biridir. Bazı uygulamaların arka planda hala devam eden süreçleri olsa da, bu noktadan sonra yazılımla etkileşime geçmenin bir yolu yoktur.
Yaygın Kara Kutu Test Metrikleri
Manuel kara kutu testleri nitel veri üretmede mükemmeldir, ancak nicel verilere odaklandığınızda kontrol ettiğiniz metriklerin farkında olmanız gerekir. Bu metrikleri tam olarak anlamak, platformdaki kusurları anlamanıza ve üzerinde çalışılacak farklı alanlara öncelik vermenize yardımcı olur.
Çalışmalarınızda karşılaşacağınız daha yaygın kara kutu test metriklerinden bazıları şunlardır:
1. Hata oranı
Hata oranı, yazılımın test döngüsünde meydana gelen saf hata sayısı veya test saati başına meydana gelen hatalar gibi birkaç şeyi ifade edebilir. Saatlik ölçümler daha iyidir, çünkü sadece bir sayı belirtmek yerine yazılımdaki hataların yoğunluğunu temsil ederler ve daha büyük uygulamalar potansiyel olarak yanlış temsil edilir.
Yazılım paketinde ne kadar az hata olursa, müşterinin sistemi kullanma deneyimi de o kadar iyi olacağından, geliştiriciler uygulamalarındaki hata oranını sınırlamaya çalışırlar.
2. Yanıt süresi
Bir test uzmanı, kullanıcının deneyimlediği performans düzeyi hakkında daha fazla bilgi edinmek istediğinde, yanıt süresi dikkate alınması gereken ana unsurlardan biridir. Bu, kullanıcı bir istem girdikten sonra yazılımın bir görevi tamamlaması için geçen süreyi ifade eder ve daha uzun yanıt süreleri nispeten verimsiz bir uygulamayı gösterir. Kullanıcılar çok uzun süren bir uygulamaya karşı sabırlarını kaybedebilecekleri için daha yüksek yanıt süreleri endişe kaynağıdır.
3. Kullanıcı memnuniyeti
Çoğu metrik, bir testte yazılım paketi ve test yazılımı tarafından üretilen saf sayılara odaklanır, ancak bazı metrikler görüşe odaklanır.
Örneğin bir şirket 1000 test kullanıcısının yer aldığı bir beta testini tamamlarsa, memnun kalan kişi sayısı hakkında veri toplayabilir ve bunu bir yüzdeye dönüştürebilir. Bu, bir döngünün sonunda elde edilebilecek son derece faydalı bir ölçüttür; daha yüksek bir kullanıcı memnuniyeti oranı, daha fazla insanın programdan keyif aldığını gösterir ve gelecekte de başarılı olma olasılığının daha yüksek olduğunu gösterir.
En İyi Kara Kutu Test Araçları
Kara kutu testi, hem kara kutu testinizi otomatikleştirmek hem de testlerinizden elde ettiğiniz bilgileri düzenlemek için elinizin altında araçlar bulundurmaya önemli ölçüde ihtiyaç duyan bir test şeklidir.
Doğru araç kombinasyonunu kullanmak, sizin ve ekibinizin çok daha verimli çalışmasına ve kalite güvence departmanı genelinde daha etkili süreçler oluşturmanıza yardımcı olabilir.
Aşağıdaki en iyi kara kutu test araçlarından bazılarını inceleyin ve bunların her birinin gelişmenize tam olarak nasıl yardımcı olabileceğini öğrenin:
5 En İyi Ücretsiz Kara Kutu Test Aracı
Bağımsız geliştiriciler gibi küçük ve gelişmekte olan şirketlerin yazılımlarını oluştururken kullanabilecekleri büyük bir bütçeleri yoktur. Bu, birlikte çalışmak için doğru araçları bulmak da dahil olmak üzere bir dizi zorluğu beraberinde getirebilir.
Aşağıda, iş akışlarını uygun bir bütçeyle geliştirmek isteyen bağımsız geliştiricilerin kullanabileceği en iyi ücretsiz araçlardan bazıları yer almaktadır:
1. ZAPTEST ÜCRETSIZ SÜRÜM
ZAPTEST ‘in ücretsiz sürümü, yazılım test otomasyonuna mükemmel bir giriş niteliğindedir. Bu araç, herhangi bir görev otomasyonunu desteklemek için özel olarak tasarlanmıştır ve tamamladığınız görev ne olursa olsun daha hızlı ve etkili çalışmanıza yardımcı olur.
ZAPTEST’in ücretsiz sürümü, herhangi bir uygulamanın otomasyonunu desteklemek için büyük miktarda işlevsellik içerir… 1SCRIPT uygulaması çapraz tarayıcı, çapraz cihaz, çapraz uygulama ve paralel yürütme mevcut özelliklerden biridir.
2. JIRA
JIRA’nın ücretsiz sürümleri, hataları not etmek, biletlere ayrıntı eklemek ve bir geliştirme ekibiyle iletişim kurarken bunları önceliklendirmek için ideal araçlardır.
Bununla birlikte, hepsi bir arada bir otomasyon yardımcısı olmaktan ziyade, bu yalnızca test sürecinin proje yönetimi tarafında uzmanlaşmıştır.
3. Selenium IDE
Test otomasyonunu kaydeden ve oynatan açık kaynaklı bir uygulama olan bu, bir otomasyon platformunun bir testi tamamlarken ne gördüğünü görmek için iyi bir araçtır.
Selenium’un bir kusuru, otomatik görevlerin platformlar arası entegrasyonu gibi gelişmiş özelliklerin göreceli olarak eksikliğidir.
4. AutoHotkey
AutoHotkey, kullanıcıların tek bir tuşa bastıktan sonra bir dizi görevi tamamlayan çeşitli boyutlarda komut dosyaları oluşturmalarına yardımcı olan, Windows için kullanılabilen tamamen ücretsiz ve açık kaynaklı bir komut dosyası dilidir.
Basit görevleri otomatikleştirmek için iyi olsa da, AutoHotkey bazı büyük komut dosyaları ve otomasyon gereksinimleri ile mücadele etmeye başlayabilir.
5. Appium
Öncelikle iOS uygulamalarını otomatikleştirmede başarılı olan bu araç, mobil uygulamalarınızın kalitesini artırmak istediğinizde kullanmak için ideal bir programdır.
Appium’un en büyük dezavantajı, çok küçük bir ürün yelpazesiyle sınırlı olmanız ve mevcut pazarınızı önemli ölçüde azaltmasıdır.
5 En İyi Kurumsal Kara Kutu Test Aracı
Ücretsiz araçların hepsi iyi ve güzel, ancak işletmelerin ve büyük şirketlerin yazılımlarını kapsamlı bir şekilde test etmek için daha fazla özelliğe sahip olmaları gerekir. Neyse ki, en iyi kurumsal kara kutu test araçlarından bazıları kapsamlı işlevselliğe sahiptir ve işletmelerin QA süreçlerine yaptıkları yatırımdan önemli bir getiri elde etmelerine yardımcı olur.
Yatırım yapmayı düşünebileceğiniz bazı ideal kurumsal kara kutu test araçları şunlardır:
1. ZAPTEST KURUMSAL SÜRÜM
ZAPTEST’in Enterprise sürümü, piyasadaki en önemli otomasyon araçlarından biridir ve ürününüz için 10 kata kadar yatırım getirisi sağlayabilir.
Ekibinizin uzaktan bir parçası olarak tam zamanlı bir ZAP Uzmanına erişim ve sınırsız lisans gibi özellikler, dik bir öğrenme eğrisine ihtiyaç duymadan ve ne kadar hızlı büyüdüğünüzden bağımsız olarak sabit bir maliyetle kara kutu test otomasyonunu uygulayabilmenizi sağlar.
2. TestRayı
TestRail, testlerinizi uyumlu bir proje yönetim platformuna bağlamak amacıyla gerçek zamanlı testlere odaklanan bir platformdur. Bu, ekip yönetimi çalışmalarınızı merkezileştirmek için ideal olsa da, otomasyon özellikleri, otomatik testlere yoğun bir vurgu yapmak isteyen bir geliştirme ekibi için mükemmel olmaktan uzaktır.
3. Opkey
Opkey, kodsuz otomasyona odaklanan bir platformdur, yani mevcut teknik bilgisi olmayan kişiler test hizmetlerini otomatikleştirmeye başlayabilir.
Opkey’in ana kusurlarından biri, yazılımı çevreleyen aktif bir topluluğun olmamasıdır; bu da sizin için yeni olan bir şekilde otomatikleştirmeye çalışırken nispeten mahsur kalmanıza neden olabilir.
4. Perfecto
Perfecto, kullanıcıların mobil uygulamaları ciddi bir sorun yaşamadan otomatikleştirmelerine yardımcı olmaya odaklanan, çok çeşitli cihazlarda çalışan ve uçtan uca test çalışmalarına odaklanan bir araçtır.
Ancak, uygulama sanal makineler yerine gerçek cihazlarda çalışmakta ve bu da sınırlı platformlar için zaten nispeten pahalı olan test aracına büyük bir maliyet daha eklemektedir.
5. JIRA Kurumsal
Testin otomasyon tarafını tamamlamanın yanı sıra, proje yönetimi de önemini koruyor ve bu noktada JIRA devreye giriyor. Kurumsal JIRA daha fazla depolama alanına sahiptir ve daha fazla kullanıcının platforma erişmesine izin verir, ancak her bir kullanıcı için özel izinler ve erişim ihtiyacı ile potansiyel karışıklığa neden olabilir. Bunun tamamlanması çok fazla idari zaman alır.
Ne zaman kullanmalısınız
Kurumsal ve Ücretsiz Kara Kutu araçları?
Başlangıç olarak, şirketlerin çoğu ücretsiz kara kutu araçlarından yararlanacaktır. Bu, ekonomik açıdan mantıklıdır çünkü hiçbir akıllı işletme, ister proje yönetimi ister otomasyon açısından olsun, tam olarak anlamadığı bir ürüne yatırım yapmak istemez.
Freemium araçlar yalnızca tamamen ücretsiz uygulamaları içermez, aynı zamanda bir şirketin aracı süreçlerine nasıl uygulayacağını öğrenirken kullandığı kurumsal ürünlerin ücretsiz sürümlerini de içerebilir.
Bir kuruluşun araç seçimini kurumsal sürüme güncellemesi için ideal zaman, şirketin ücretsiz araç nedeniyle test süreçlerinde sürtünme yaşamaya başladığı zamandır. Bu ister yalnızca belirli sayıda lisans sunan ücretsiz bir araç isterse de belirli bir miktarda test aracı olsun, test araçlarınızın bir sonucu olarak süreçlerinizde verimsizlikler yaşamaya başladığınız anda tüm ihtiyaçlarınıza uygun bir kurumsal sürüme geçiş yapmalısınız.
Kara Kutu Testi Kontrol Listesi, İpuçları ve Püf Noktaları
Kara kutu testi, bir yazılım paketi hakkındaki bilginizi geliştirmek için birçok fırsat sunan oldukça karmaşık bir test yöntemi olduğundan, aramanız gereken birkaç şey vardır.
Kara kutu testi kontrol listenize dahil etmeniz gereken bazı önemli ipuçları ve püf noktaları şunlardır:
– Özeti anlamak
Test için herhangi bir plan yapmaya başlamadan önce, test dönemi için daha geniş bir briefi anladığınızdan emin olun. Bu, yazılımı izin verildiği ölçüde anlamayı ve tam olarak neyi test etmeniz gerektiğini öğrenmeyi içerir.
– Test senaryosunu düzeltin
Kara kutu testinde kullandığınız test senaryolarını değerlendirmek için teste dahil olan herkesin katılımını sağlamaya çalışın. Uygulamadan önce test senaryosunu ne kadar çok göz görürse, hataları ortadan kaldırma şansınız o kadar artar.
– Yapılacak işlerin bir listesini düzenleyin
Kara kutu testine hazırlanmanın teknik olmayan yönü de en az teknik yönü kadar önemli olabilir. Planlama yaparken, kimin hangi zamanda yazılımın hangi bölümünü test edeceğini düzenleyen tutarlı bir Yapılacaklar Listesi oluşturun. Bu hem kafa karışıklığını, potansiyel tükenmişliği hem de diğer görevlerin üstlenmesinden kaynaklanan gecikmeleri azaltır.
– Sonuçları hemen kaydedin
Bir testin ürettiği sonuçlardan herhangi birini hemen kaydedin. Manuel testlerde çok uzun süre bekleyerek sorunları yanlış hatırlayabilirsiniz, bu nedenle anında not almak doğruluğu önemli ölçüde artırır.
– Geliştiricilerle irtibat kurun
Neler olduğunu ve yeni güncellemeler üzerinde ne zaman çalışmayı bekleyebileceklerini anlamaları için test zaman çerçevenizi ve stratejinizi geliştiricilerle tartışın. Bu, departmanların birbirleriyle iletişim kuracağı net süreçler belirlemeyi de içerir.
– Eyleme dönüştürülebilir veriler
Bir rapor yazarken, bir geliştirici için sağladığınız tüm verilerin eyleme dönüştürülebilir olduğundan emin olun. Bu, bir geliştiricinin yapması gereken değişiklikleri anlamaması yerine ekibin sorunlarına yanıt veren bir ürün geliştirmesine yardımcı olur.
– Önceliklerinizi anlayın
Bir test ekibi olarak önceliğiniz, nihayetinde şirketin kullanıcılarına yüksek kaliteli bir ürün göndermesini sağlamaktır. Testler beklenenden biraz daha uzun sürüyorsa, bunun müşterinin deneyimlediği kalite artışı için değerli bir değişim olduğunu unutmayın.
– Hiyerarşiyi bilin
İdeal bir geliştirme şirketinde, geliştiriciler ve test uzmanları hiyerarşinin aynı seviyesinde yer alır ve yazılımın büyümesinde eşit derecede önemli söz sahibidir. Kuruluşunuzdaki hiyerarşinin nasıl olduğunu anlayın ve herkesin iyi testlerin değerini anladığından emin olmaya çalışın.
– Tutarlı dokümantasyon tutun
Testlerinizde oluşturduğunuz tüm verilerin ve raporların kopyalarını saklayın. Uygulamanın test ekibinin sorumlu olduğu değişikliklerini takip edebilir ve gelecek sürümlerde tekrarlanıp tekrarlanmadığını görmek için eski hatalara bakabilirsiniz.
Sonuç
Kara kutu testi nihayetinde yazılım test sürecinin en önemli parçalarından biridir. Şirketlerin gönderdikleri ürünün mümkün olan en yüksek standartta olduğundan emin olmalarına yardımcı olur ve bir uygulamanın harici bir kullanıcı tarafından algılanma ve uygulanma şekline ilişkin benzersiz içgörüler sunmak için bakış açısında bir değişiklik kullanır.
Süreçlerine hem otomatik hem de manuel kara kutu testi eklemeyen her şirket, uygulamasının kalitesini büyük ölçüde artırma fırsatını kaçırıyor demektir. Akıllıca test edin ve müşterileriniz ürününüze erişim sağladığında ödülleri toplayacaksınız.
SSS & Kaynaklar
Kara kutu testi hakkında ne kadar bilgi sahibi olursanız olun, daha fazla sorunuz olabilir ve yöntemle ilgili anlayışınızı geliştirmek isteyebilirsiniz. Kara kutu testi hakkında daha fazla bilgi edinmek ve metodoloji hakkında size daha fazla bilgi verebilecek bir dizi kaynağa erişmek için aşağıdaki sıkça sorulan sorularımıza bakın.
1. Kara kutu Test Otomasyonu üzerine en iyi kurslar
Kara kutu test otomasyonu konusunda takip edebileceğiniz ve her biri insanların farklı bir test standardına ulaşmasına yardımcı olan çeşitli kurslar vardır.
Mevcut en saygın kara kutu testi kurslarından bazıları şunlardır:
– Coursera’dan “Black-box ve White-box Testi”
– BBST tarafından “Black-Box Yazılım Testi serisi”
– Udemy’den “Kara Kutu Yazılım Test Tekniklerine Giriş”
– London School of Emerging Technology tarafından “Yazılım Otomasyon Testi”
– Udemy’den “Üç temel kara kutu test tekniği”
2. Kara kutu testi ile ilgili en iyi 5 mülakat sorusu nelerdir?
Yazılım testi, her bir boş pozisyon için çok sayıda adayın başvurduğu oldukça rekabetçi bir alandır. Kara kutu testi alanında bir pozisyon için mülakata girmeyi garantilemeniz halinde, mülakatta yanıtlamak üzere hazırlanmak isteyebileceğiniz sorulardan bazıları şunlardır:
– Kara kutu testi ile ilgili ne gibi deneyimleriniz var?
– Kara kutu ve beyaz kutu testleri arasındaki temel farklar nelerdir?
– Önceki görevlerinizde yazılım otomasyonu ile çalışma deneyiminiz var mı?
– İşyerinde zorluklarla karşılaştığınız bir zamanı ve bunların üstesinden nasıl geldiğinizi bize anlatabilir misiniz?
– Sizce kara kutu testinin geleceği nedir ve becerileriniz yazılım testinde uzun vadeli bir kariyere nasıl uyuyor?
3. Kara Kutu Testi Üzerine En İyi Youtube Eğitimleri
YouTube, tekniğinizi geliştirmek için kullanabileceğiniz ücretsiz bir bilgi kaynağı sağladığından, yazılım testi becerilerini geliştiren kişiler için mevcut olan en önemli öğrenme kaynaklarından biridir.
Kara kutu testlerini öğrenirken izleyebileceğiniz en iyi eğitimlerden bazıları şunlardır:
– “Siyah ve Beyaz Kutu Testine Giriş – Georgia Tech – Yazılım Geliştirme Süreci” by Udacity
– MIT OpenCourseWare tarafından “Kara Kutu ve Cam Kutu Testi”
– The Testing Academy’den “Her QA’in Bilmesi Gereken 7 Kara Kutu Test Tekniği”
– Intellipaat tarafından “Kara Kutu Testi | Kara Kutu Testi Nedir | Kara Kutu Testini Öğrenin”
– ITProTV’den “Beyaz, Gri ve Kara Kutu Testi Nedir?”
4. Kara Kutu Testlerinin Bakımı Nasıl Yapılır?
İster manuel ister otomatik testler olsun, kara kutu testlerini sürdürmek, devam eden testlere dikkat etmek ve sorunlar varsa sürekli olarak düzeltmeler uygulamakla ilgilidir.
Bu, tüm test senaryolarının her seferinde beklediğiniz gibi çalıştığından emin olmayı ve otomatik araçların tüm doğru adımlardan geçtiğini kontrol etmeyi içerir. Standartlarınızın düşmesini önlemek için bunu mümkün olduğunca sık yapın, çünkü bakımı iyi yapılan bir kara kutu testi mümkün olan en doğru sonuçları verir.
5. Kara Kutu Testi Üzerine En İyi Kitaplar
Kara kutu testi ve bir bütün olarak yazılım testi sürekli gelişen bir alan olsa da, güncelliğini koruyan ve test çalışmalarınızı geliştirmek için birçok fikir sunan birkaç kitap vardır.
Kara kutu testi üzerine yazılmış en iyi kitaplardan bazıları şunlardır:
– “Kara Kutu Testi: Yazılım ve Sistemlerin İşlevsel Testi için Teknikler”, Boris Beizer
– “Yazılım Testi: İlkeler ve Uygulama”, Srinivasan Desikan, Gopalaswamy Ramesh
– Ralf Bierig, Stephen Brown, Edgar Galván tarafından yazılan “Essentials of Software Testing”
– Paul Ammann, Jeff Offutt tarafından yazılan “Yazılım Testine Giriş”