Alibaba eğlence testi savaşı: makine öğrenimi + sıcak bağlantı önerisine dayalı drenaj, karşılaştırma testini daha doğru hale getiriyor

Yazar | Ali Entertainment Test Geliştirme Uzmanı Zhengchen

Üretildi | CSDN (ID: CSDNnews)

Karşılaştırmalı testin ilkeleri ve durumu

Drenaj karşılaştırma testi şu anda Ali içinde yaygın olarak kullanılan bir regresyon testi yöntemidir. Gerçek çevrimiçi trafiği toplar, yeniden oynatır ve karşılaştırır ve karşılaştırma sonuçları aracılığıyla kod değişikliklerinin çevrimiçi bağlantıları ve işlevleri etkileyip etkilemediğini değerlendirir. Bu şema sayesinde, test verilerini manuel olarak oluşturmanın maliyeti büyük ölçüde azaltılır:

1) Gerçek kullanıcı taleplerine bağlı olarak, karmaşık hizmet arayüzleri için kullanıcı senaryolarını simüle etmenin maliyeti azaltılır;

2) Toplanan trafik yeterince büyük olduğunda, test ihmallerini azaltmak için iş senaryoları üzerinde tam kapsamlı testler yapılabilir;

3) Test ortamı kararlıdır, sonuçlar açık ve güvenilirdir ve manuel test yürütmesi gerekli değildir. Şu anda, çevrimiçi istek toplama stratejisi esas olarak orantılı bir temelde rastgele toplamaktır. Kullanım açısından bazı sorunlar vardır:

1) Test açısından, toplanan trafiğin ana sahneyi kapsayıp kapsamadığını bilmiyoruz. Test terimleriyle: Bu trafik hangi kullanım durumlarını kapsar? Etkin bir şekilde ölçülemiyor;

2) Sürekli çevrim içi toplama durumunda, geçersiz veya tekrarlanan talepleri ortadan kaldırmak için oynatma talebi manuel olarak zamanında muhafaza edilmelidir;

3) Birden fazla arabirimi toplarken ve yapılandırırken, büyük akış arabirimlerinin yüksek oranı nedeniyle, küçük akış arabirimi etkili akışı toplayamaz ve toplama yapılandırmasının manuel olarak ayarlanması gerekir.

Yukarıdaki konulara dayanarak, toplama talebinin etkililiğinin ve kapsamının, karşılaştırma testinin devam eden etkililiği için anahtar konular olduğunu bulmak zor değildir. Nasıl kırılır? Youku, karşılaştırma testinde termal bağlantı kapsamını tanıttı ve çevrimiçi termal bağlantı kapsamına dayalı bir dizi doğru karşılaştırma testi şeması uyguladı.

Test kapsamı nasıl etkili bir şekilde ölçülür?

1. Kod kapsamı

Geleneksel test kapsamı istatistikleri yönteminde, kod dosyası testten önce eklenir ve eklenen sınıf dosyası veya jar paketi oluşturulur Test yürütüldükten sonra kod yolu otomatik olarak toplanır ve kapsam bilgileri dosyaya oluşturulur. Kapsam bilgilerini eşit şekilde işleyin ve kapsam raporları oluşturun. Kapsamı ölçmek için ana göstergeler şunlardır: kod satırı kapsamı, kod dalı kapsamı, yöntem kapsamı vb.

1) Kod kapsamının avantajları:

a) İlke ve plan görece olgundur, birçok hazır araç vardır ve uygulama maliyeti nispeten düşüktür;

b) Birden çok göstergeyi birleştirerek kod kapsamını kapsamlı bir şekilde değerlendirebilen birçok ölçüm boyutu vardır.

2) Kod kapsamı sorunu:

a) İş senaryolarının kapsamı etkin bir şekilde değerlendirilemez. Yüksek kod kapsamı yalnızca kodun yürütüldüğünü gösterebilir, ancak iş senaryosunun kapsanmadığını gösterir İş senaryosunun kapsamının manuel olarak değerlendirilmesi gerekir;

b) Kapsam analizinin maliyeti nispeten yüksektir. Kod kalitesi sorunları nedeniyle (geçersiz kod veya gereksiz kod), birçok kod gerçek iş senaryoları tarafından çağrılmayacaktır. Kodun bu kısmının test kapsamına ulaşması zordur ve kapsam değeri yüksek değildir ve kapsam gerekli değildir.

2. Alt arama bağlantı kapsamı

Ara yazılım koduna stub'lar ekleyerek, harici alt çağrıların kod yolu koleksiyonu, kodun geçtiği alt çağrı bağlantılarını bir araya getirmek ve ardından toplama bağlantı talebi aracılığıyla her bir alt çağrı bağlantısının popülaritesini elde etmek için tek tip olarak gerçekleştirilir. Gerçek çevrimiçi kullanıcı senaryolarının bağlantı dağıtımı. Alt arama bağlantısı, gerçek çevrimiçi taleplere dayanan iş senaryosunun bağlantısını ve ısısını doğru bir şekilde geri besler.

Geliştirilen kapsam değerlendirme planı şu anda Alibaba bünyesinde yaygın olarak kullanılmaktadır. Kapsamı ölçmek için ana gösterge şudur: alt arama bağlantı kapsamı.

1) Geleneksel kod kapsamına kıyasla:

a) Çevrimiçi gerçek kullanıcı taleplerine göre kod yürütme yolunu analiz edin ve iş senaryolarının kapsamını doğru bir şekilde değerlendirebilen alt arama bağlantıları aracılığıyla kullanıcı senaryolarını temsil edin;

b) Ara yazılım koduna saplamalar ekleyin, iş kodunu değiştirmeye gerek yoktur ve erişim maliyeti nispeten düşüktür. Alt arama bağlantı kapsama değerlendirmesine dayalı olarak, karşılaştırma testinin ortaya çıkardığı kapsam değerlendirme problemini çözebilir mi? Youku'nun iş senaryoları için de uygun mu? Bir süre deneme çalışmasından sonra, Youku'nun bazı hizmetlerinin, hizmetlerin hacmi ve karmaşıklığı ile tutarsız olan çok az alt arama bağlantısı topladığını gördük. Bu soruyu aklımızda tutarak, aşağıdaki iki istenen kod çalıştırma bağlantılarına bir göz atalım:

2) Yukarıdaki koda göre bağlantı analizini çalıştırın:

a) İşin bir kısmının nispeten az sayıda dış bağımlılığı vardır ve ana mantık uygulamanın içindedir.Kodun çalışmasına neden olan harici alt çağrılar tamamen aynıdır, ancak dahili yöntem bağlantıları farklıdır;

b) İşletmenin dahili mantık kapsamını değerlendirmek için, dahili yöntem bağlantı kapsamı, alt arama bağlantı kapsamından daha etkilidir. Dahili yöntem bağlantıları toplanabilirse, Youku'nun iş senaryolarının kapsam değerlendirmesi daha öğretici olacaktır. Sonuç olarak, Youku ve grubun JVM-SANDBOX ekibi derinlemesine bir işbirliğine sahip ve bir dizi dahili yöntem bağlantı kapsamı değerlendirme şeması önerdi: sıcak bağlantı kapsamı.

Sıcak bağlantı önerisine dayalı karşılaştırma testi

Belirli bir süre içinde gerçek çevrimiçi istekleri toplayarak ve isteğin gerçekleştirildiği yöntem yolunu kaydederek bağlantıdır. Hat üzerindeki birçok farklı gerçek istek aynı bağlantı üzerinden gider, böylece farklı bağlantılar farklı ısı seviyelerine sahiptir.Bağlantı ısı derecesine göre öncelikli kapsama gerektiren bağlantı, yani ısı bağlantısı otomatik olarak değerlendirilebilir.

1. Yöntem bağlantı bilinci

Yöntem yollarını toplamak için, önce her yöntemin uygulanışını algılamanız gerekir. Altta yatan JVM-SANDBOX modülünün yeteneklerini kullanarak, kod yürütmeyi toplamak için her bir dahili yöntemde kod geliştirmelerini eşit şekilde uygulamak, her yöntemin üç olayını "çalıştırmadan önce", "geri dönmeden önce" ve "istisnadan sonra" algılamak mümkündür. Yöntem verileri, yöntem bağlantılarında toplanır.

1) Olaydan ÖNCE: Giriş parametrelerini algılayın ve değiştirin; doğrudan geri dönün;

2) RETURN olayı: Dönüş değerini algılayın ve değiştirin; dönüş sonucunu yeniden oluşturun; bir istisna atın;

3) THROWS olayı: istisnayı yeniden oluşturun; simülasyon normal şekilde geri döner.

2. Edinme modülü dağıtımı

Modül dağıtım sürecinde, en büyük zorluk, geliştirilmesi gereken kod mantığı sınıflarını yapılandırmaktır. Başlangıçta, her bir iş tarafı bunu kendi başına yapılandırdı, ancak yapılandırma aralığı için birleşik bir standart olmadığından, toplanan bağlantılar tamamlanmadı ve karşılaştırmaları elde etmek zor. Youku'nun ticari özelliklerine göre, Youku'nun her bir işletmesinin kod analizini ve mantık taramasını desteklemek için birleşik bir kod mantığı tarama hizmetleri seti sağlıyoruz ve her bir iş tarafı için birleşik bir kod geliştirme yapılandırma standardı sağlıyoruz. Erişim süreci aşağıdaki gibidir:

1) TraceModule: bağlantıları toplayın ve çalıştırın; 2) Tekrarlayıcı: istekleri toplayın ve sonuçları döndürün, kaydedin ve oynatın; 3) MockModule: sunucu tarafı dinamik modeli.

3. Bağlantı toplama ve ısı hesaplama

Çevrimiçi modül etkinleştirildikten sonra, yapılandırılmış örnekleme oranına göre çevrimiçi trafiği ve toplama yöntem bağlantılarını sürekli olarak toplayabilir.

Başvuru bağlantı verilerini referans olarak kullanarak, çevrimiçi talepleri toplayarak ve istenen bağlantıyı belirleyerek, sıcak bağlantılara veya tüm bağlantılara dayalı karşılaştırma talepleri önerebilir ve talep toplama süresini genişleterek (önerilen toplama süresi 7 gündür) ), önerilen son istek tüm çevrimiçi iş bağlantılarını kapsayabilir, bu yalnızca karşılaştırma testinin etkin kapsamını iyileştirmekle kalmaz, aynı zamanda öneri süreci, süreç boyunca manuel müdahale olmadan verimli ve tam otomatiktir ve sunucudaki tüm uygulamaların karşılaştırma testine hızla genişletilebilir. .

Geriye bakıp ileriye bakıyorum

Sıcak bağlantı analizine dayanarak, testin gerçek iş senaryosunu daha spesifik olarak anlamasına yardımcı olabilir.Youku sunucu regresyon sisteminde karşılaştırma testi taleplerini önermenin yanı sıra, geleneksel kod kapsamına kıyasla regresyon testi kapsamını değerlendirmek için de kullanılır. Puan değerlendirmesi, iş rehberliği daha açık.

Elbette oldukça popüler bir bağlantı için çok sayıda kullanıcı isteği ve farklı ticari anlamlar içerebilir.İsteklerden yalnızca biri kapsanırsa, bağlantı kapsanmasına rağmen iş kapsamı kaybına neden olur.Makineyi daha sonra kullanabiliriz Öğrenme ve akıllı kümeleme, makinenin daha eksiksiz ve doğru kapsama sahip test setlerini filtrelemesine, çevrimiçi olarak istenen verilerin değerini derinlemesine keşfetmesine ve daha anlamlı bir kalite güvence sistemi oluşturmak için testlere yardımcı olmasına olanak tanır.

Java'da Plants vs. Zombies'in basit bir sürümünü yazın
önceki
CVPR 2020 için seçilen meydan okuma kağıdı hakkında ne yazdınız?
Sonraki
DCP iletiminin verimliliğini artırmak için Ali mühendisleri bunu yaptı
Yukarı kaldırın! Ali Pingtou'nun hazırladığı üç makale ISCA tarafından seçildi
Wuling Bölgesi, Danzhou Kasabası, medeniyet, fedakarlık, ağaç ve yeni tarz temalı bir tanıtım ve ikna etkinliği başlattı
Zhangjiajie Yangını, Qingming Festivalinden Önce Yangın Propaganda Hizmetini Başlattı
Sangzhi İlçesi İtfaiye Tugayı, "Devrimci Şehitleri Hatırlamak ve Uygar Kurbanı Savunmak" ı başlattı
Guizhou'nun son partisi Hubei sağlık ekibine yardım etti Guiyang'a döndü
"3 Mart Zhuang Nationality" Guangxi People's Network Cloud "Gangge Fuarı
Fuzhou, Hubei göçmen işçilerinin ilk partisini işe geri döndürmek için araba kiraladı
Merkezi medya, övgülerini 00 savaş sonrası salgınına iletti! Nandu'nun salgın karşıtı tema animasyonu İnternette sıcak bir yayına başladı
Kadrolar turizmde başı çekiyor ve hafta sonları 2,5 gün izin alıyor. Jiangxi turizmini kurtarma ve canlandırma önlemleri "zor".
İlkbahar Ekinoks Günü: On millik bahar esintisi "kiraz", eve git, pamuk ağacı çok güzel, kahramana Guangdong'a hoş geldin
Doğrudan Luohu'daki mevcut alışveriş ve yemek durumuna gidin: insanların akışı toparlanıyor, önleme ve kontrol katı ve güvenli tüketimdir
To Top