Yazılım Testinde Konu Testi Nedir?

⚡ Akıllı Özet

İş parçacığı testi, entegre bir sistem içinde ilerlerken tek bir iş görevinin temel işlevsel yeteneğini doğrular ve her bileşen tamamlandıktan sonra değil, entegrasyon testinin başlarında gerçekleştirilir.

  • 🧵 Temel fikir: Bir iş parçacığı, uçtan uca bir iş işlemidir ve test, entegre modüller boyunca bu yolu izler.
  • ⏱️ Çalıştırıldığında: Sistem entegrasyon stratejisinin aşamalı bir parçası olarak, entegrasyon test aşamasının başlarında.
  • 🔀 İki çeşit lezzet: Tek iş parçacıklı test, her seferinde yalnızca bir işlemi çalıştırırken, çok iş parçacıklı test birden fazla işlemi eş zamanlı olarak çalıştırır.
  • ???? Yakaladığı şeyler: Tek yollu testlerin gözden kaçırdığı yarış koşulları, kilitlenmeler, paylaşılan kaynak çatışmaları ve veri bozulmaları.
  • 🧰 Nasıl çalıştırılır: Çeşitli uygulama kombinasyonları, birden fazla örnek, farklı donanım ve kod incelemeleriyle tekrarlanan çalıştırmalar gerçekleştirin.
  • 📉 Dürüst sınır: Çoklu iş parçacıklı kod için tekrarlanabilir birim testleri oluşturmak zor olmaya devam ediyor, bu nedenle zamanlama hataları aralıklı olarak ortaya çıkabiliyor.

Yazılım testinde tek ve çok iş parçacıklı tiplerle iş parçacığı testi nedir?

Konu Testi Nedir?

İplik testi Yazılım test türlerinden biri olan bu test, bir iş parçacığı (thread) olarak adlandırılan belirli bir görevin temel işlevsel yeteneğini doğrular. Genellikle yazılım geliştirme sürecinin erken aşamalarında gerçekleştirilir. entegrasyon testi Aşama. İş parçacığı tabanlı test, sistem entegrasyon testleri sırasında benimsenen artımlı stratejilerden biridir. Bu nedenle, iş parçacığı testi daha doğru bir şekilde şu şekilde tanımlanabilir: iş parçacığı etkileşim testi.

Burada "iş parçacığı" sadece işletim sistemi iş parçacığı anlamına gelmiyor. yazılım Mühendisliği Terimler açısından, bir işlem dizisi, tamamlanmış bir ticari işlemi ifade eder; örneğin, "müşteri sipariş verir". tracTemas ettiği her modülde ilerler. İş parçacığı testi, modüller birbirine bağlandıktan sonra bu tek yolun hala doğru şekilde davranıp davranmadığını sorgular.

Aşağıdaki diyagram, tam sistem bir araya getirilmeden önce tek tek iş parçacıklarının bir alt sistem olarak nasıl entegre edildiğini ve çalıştırıldığını göstermektedir.

İş parçacıklarının kademeli olarak bir alt sisteme ve ardından tam bir sisteme entegre edildiğini gösteren iş parçacığı test diyagramı.

Konu Testi Türleri

İş parçacığı tabanlı testler iki kategoriye ayrılır ve bu ayrım hem test verilerini hem de bulmanız muhtemel hataları belirler.

  • Tek iş parçacıklı test: Tek iş parçacıklı test, aynı anda yalnızca bir uygulama işlemini içerir. Yalnızca bir istek karşılandığı için yanıt davranışı tahmin edilebilir ve testin betiğinin yazılması ve tekrarlanması kolaydır.
  • Çoklu iş parçacığı testi: Çoklu iş parçacığı testi, aynı anda birden fazla eş zamanlı aktif işlemi içerir. Aynı hizmet için ayrı iş parçacıkları hazırlanır, böylece eş zamanlı yük altında yanıt verme hızı ve paylaşılan durum yönetimi gözlemlenebilir.

Tek iş parçacıklı testte sorunsuz geçen bir işlem, çok iş parçacıklı çalıştırmada yine de başarısız olabilir, çünkü ikinci çalıştırma aynı kayıtlar, bağlantılar ve bellek için çekişme ekler.

Konu Testi nasıl yapılır

Bu süreç, tam geliştirme yaşam döngüsünden ziyade entegrasyon faaliyetlerine odaklanır. Uygulamada, yaklaşım şu şekilde işler:

  • İş parçacığı tabanlı test, oturum tabanlı testin genelleştirilmiş bir biçimidir; oturumlar bir iş parçacığı biçimidir ancak bir iş parçacığının mutlaka bir oturum olması gerekmez.
  • İş parçacığı veya program (küçük bir işlevsellik), bir alt sistem olarak aşamalı olarak entegre edilir ve test edilir, ardından tüm sistem için yürütülür.
  • En temel düzeyde, entegratörlere test edilecek şeylerin kapsamı hakkında daha iyi bilgi sağlar.
  • Bu yaklaşım, yazılım bileşenlerini doğrudan test etmek yerine, entegratörlerin tüm sistem bağlamında mantıksal yürütme yollarını test etmeye odaklanmasını gerektirir.

İş birimi bir bileşen değil, bir iş yolu olduğundan, iş parçacığı testi doğal olarak bu ikisi arasında yer alır. modül testi ve tam sistem testi.

Çoklu İş Parçacığı Testine İlişkin İpuçları

Çoklu iş parçacığı hataları zamanlamaya bağlıdır, bu nedenle tek bir hatasız çalıştırma çok az şey kanıtlar. Aşağıdaki ipuçları, bu hataların ortaya çıkma olasılığını artırır.

  • Çoklu iş parçacıklı programınızı, farklı uygulamaların birlikte çalıştığı bir ortamda tekrar tekrar çalıştırarak test edin.
  • Çoklu iş parçacıklı programınızı, programın birden fazla örneğini aynı anda çalıştırarak test edin.
  • Çoklu iş parçacıklı programınızı farklı donanım modellerinde, değişen stres seviyeleri ve iş yükleriyle çalıştırın.
  • Kod incelemesi kullanın, çünkü bazı senkronizasyon hatalarını okumak, yeniden üretmekten daha kolaydır.
  • Yalnızca ana iş parçacığı dışındaki iş parçacıklarında meydana gelen hataları ve arızaları toplayın.

Diş açma testlerinde sıkça rastlanan kusurlar

Eşzamanlılık hataları nadiren temiz bir yığın iziyle kendilerini belli ederler. trace. Aşağıdaki kategoriler, çoklu iş parçacığı çalıştırmanın ortaya çıkardığı sorunların çoğunu kapsar ve her birinin kendine özgü, dikkate alınması gereken bir belirtisi vardır.

  • Yarış koşulları: İki iş parçacığı aynı değeri sıralama yapmadan okuyor ve yazıyor, bu nedenle nihai sonuç hangi iş parçacığının önce bittiğine bağlı. Belirtisi: bazı çalıştırmalarda doğru, bazılarında yanlış olan toplamlar.
  • Çıkmaz: İki iş parçacığı da birbirinin ihtiyaç duyduğu bir kilidi tutuyor ve hiçbiri ilerlemiyor. Belirti: İşlem hata vererek başarısız olmak yerine süresiz olarak askıda kalıyor.
  • Kaynak çekişmesi: Aynı bağlantı, dosya tanıtıcısı veya kayıt için iş parçacıkları sıraya girer ve donanım sınırına ulaşılmadan çok önce işlem hızı düşer.
  • Veri bozulması: Kısmen yazılmış paylaşımlı yapılar, kayıtları geçerli bir işlemin üretemeyeceği bir durumda bırakır.
  • Açlık: Düşük öncelikli bir iş parçacığı ihtiyaç duyduğu kaynağı asla elde edemez, bu nedenle sistemin geri kalanı sağlıklı görünürken bir kullanıcı yolu zaman aşımına uğrar.

Bunların her birinde, başarısız olan çalıştırmanın loglara kaydedilmesi gerekir, çünkü elli denemede bir kez tekrarlanan bir hatayı aksi takdirde tespit etmek imkansızdır. kusur yönetimi süreci.

İş parçacığı testi, eşzamanlılık testi ve entegrasyon testi arasındaki farklar

Bu üç terim birbiriyle örtüşmekte ve test planlarında sıklıkla karıştırılmaktadır. Tablo, bunları amaçlarına göre ayırmaktadır.

Görünüş İplik testi Eşzamanlılık testi Entegrasyon testi
Test edilen ünite Modüller arası tek bir ticari işlem Aynı anda işlem yapan birden fazla kullanıcı veya iş parçacığı. İki veya daha fazla bileşen arasındaki arayüzler
Birincil soru Bu anahtar yol baştan sona çalışıyor mu? Eş zamanlı erişim olduğunda ne bozulur? Modüller birbirleriyle doğru şekilde iletişim kuruyor mu?
Tipik aşama Erken entegrasyon testleri Sistem veya performans testi Birim testinden sonra
Hedeflenen kusurlar Bozuk yürütme yolları, eksik aktarımlar Çıkmazlar, yarış koşulları, kilit mücadelesi Arayüz uyumsuzlukları, yanlış veri bağlantısıtracts
ilişki Çoklu iş parçacığı varyantı eşzamanlılık testiyle örtüşüyor. Çoklu iş parçacığı test diliminden daha geniş kapsamlı İş parçacığı testi, bu stratejinin içindeki aşamalı bir yöntemdir.

Kısacası, eşzamanlılık testi Eş zamanlı erişimin sisteme ne gibi etkileri olduğunu sorarken, iş parçacığı testi ise önemli bir yolun entegrasyon sonrasında tamamen korunup korunmadığını sorgular. Her iki testi de yürüten ekipler genellikle önce iş parçacığı testini planlar.

Konu Testinin Avantajları

Bu teknik, çeşitli pratik nedenlerden dolayı entegrasyon planında yerini almaktadır.

  • Önemli iş süreçleri erken aşamada doğrulanır, böylece tüm sistem kurulmadan önce aksayan bir geçiş noktası tespit edilir.
  • Entegratörler, test biriminin soyut bir işlemden ziyade tanınabilir bir işlem olması sayesinde kapsam hakkında net bir fikir edinirler.tract bileşen sınırı.
  • Sistem bağlamında mantıksal yürütme yollarının test edilmesi, izole edilmiş hataları ortaya çıkarır. bileşen testi göremiyorum.
  • Çoklu iş parçacığı çalıştırmaları, aksi takdirde üretime ulaşacak olan eşzamanlılık kusurlarını (kilitlenmeler, yarış durumları ve kaynak çakışmaları) ortaya çıkarır.
  • Artımlı entegrasyon, her seferinde yalnızca bir iş parçacığı eklendiği için hata ayıklama yüzeyini küçük tutar.
  • Sonuçlar doğrudan sisteme aktarılıyor. gerileme testiÇünkü geçici bir iş parçacığı, regresyon test paketi için bariz bir adaydır.

İplik Testinin Dezavantajları

  • Çoklu iş parçacığı testlerinde en büyük zorluk, birim testi için tekrarlanabilir bir test programlayabilmektir.
  • Çoklu iş parçacıklı kod için birim testleri yazmak zorlu bir iştir.
  • Çoklu iş parçacığı testine ilişkin test kriterleri, tek iş parçacığı testinden farklıdır. Çoklu iş parçacığı testinde, kod farklı donanımlarda çağrıldığında bellek boyutu, depolama kapasitesi ve zamanlama sorunları gibi faktörler değişiklik gösterir.
  • Modüller kullanıma hazır hale gelmeden önce iş parçacıkları test edilemez, bu nedenle zamanlama entegrasyon sırasına bağlıdır.
  • Aralıklı arızalar, çevresel gürültü olarak kolayca göz ardı edilebilir; bu nedenle düzenli kayıt tutmak çok önemlidir.

SSS

Test lideri, işletme analistleriyle birlikte işlemleri gelir etkisi ve kullanım sıklığına göre sıralar. En yüksek değere sahip yollar önce entegre edilir ve işlenir, böylece kritik bir aktarım hatası, henüz zaman varken ortaya çıkar.

İş akışını, geçilen modülleri, aralarında aktarılan verileri ve beklenen son durumu kaydeder. Bir bileşenden farklı olarak test durumuBaşarılı olma koşulu, tüm işlemin sonunda yer alır.

Yapılandırılabilir sanal kullanıcılar oluşturan yük üreteçleri genellikle tercih edilen yöntemdir. JMeter Bu, yaygın olarak kullanılan açık kaynaklı bir seçenektir. İş parçacığı sayıları, artış hızı ve döngü ayarları, çoklu iş parçacığı senaryolarına doğrudan uyar.

Makine öğrenimi modelleri, binlerce tekrarlanan çalıştırmadan elde edilen günlük kayıt kalıplarını kümelendirir ve takılmaya veya bozuk kayda yol açan araya girmeleri işaretler. Bu, aralıklı bir zamanlama hatasını küçük bir şüpheli dizi kümesine indirger.

GitHub Yardımcı Pilotu Taslaklar, iş parçacığı havuzlarını, kilitleri ve gerilim döngülerini hızla oluşturur. Test uzmanının yine de önemli senkronizasyon noktalarına karar vermesi gerekir, çünkü oluşturulan testler genellikle gerçek bir araya getirme işlemi zorlamadan geçer.

Belirli bir sayı yok. Ekipler, arızalar görünmeyene kadar çeşitli iş yükleri ve donanımlar üzerinde çalıştırmayı tekrarlıyor, ardından senaryoyu gece çalıştırılan test paketinde tutuyorlar, çünkü ortam değiştiğinde zamanlama hataları yeniden ortaya çıkıyor.

Önceliklendirilmiş her iş parçacığı, çözülmemiş bir hata olmaksızın uçtan uca yürütülür, çoklu iş parçacığı çalıştırmaları hedef eşzamanlılıkta tamamlanır ve açıkta kalan hiçbir sorun, kilitlenme veya veri bozulması sınıfı hatası değildir. test yaşam döngüsü.

Evet — iş parçacığı, modüller yerine hizmetler arasında bir istek yolu haline gelir. Dağıtılmış tracYerel çağrı yığınının yerini alan bu işlemde aynı soru geçerlidir: Bir iş işlemi her atlamada bozulmadan kalır mı?

Bu yazıyı şu şekilde özetleyin: