Kısaca: Yeşil bir test paketi ile çalışan bir ürün aynı şey değildir. Test paketleri yoğun sezon öncesinde dürüstlükten uzaklaşır, çünkü ürünün ne yaptığına değil, nasıl inşa edildiğine bağlıdırlar. Tamamen doğaçlama bir yapay zeka koşusu ise işin içine belirsizlik katarak gürültüyü artırır. Çözüm daha az yapay zeka değil, doğru yerde yapay zekadır: ekranı bir kez okuyun, testi deterministik adımlara derleyin ve yalnızca ürün gerçekten hata verdiğinde kalsın.
Testlerinizin yalan söylediğini öğrenmek için en kötü zaman Black Friday'dir
Takvim her yıl yazılım ekiplerine aynı şeyi yapar. Okula dönüş dönemi trafiği ısıtır. Black Friday ve Cyber Monday zirveye taşır. Noel ve yılbaşı yüksekte tutar. Bir mağaza, bir rezervasyon akışı, bir ödeme sayfası ya da bunların altındaki altyapıyı işleten herkes için bu, bozuk tek bir ödeme adımının dört saatte, sakin geçen koca bir şubat ayında olacağından daha pahalıya patladığı dönemdir.
Ekipler de sorumlu davranır. Yoğunluk başlamadan test paketlerini çalıştırır, yeşili görür ve güvenle yayına çıkarlar.
Sorun şu ki yeşil bir test paketi ile çalışan bir ürün aynı şey değildir. Yoğun sezon, bu farkın kayıp gelire dönüştüğü andır ve testlerinizin size başından beri yalnızca duymak istediğinizi söylediğini keşfetmek için olabilecek en kötü zamandır.
Geçen bir test kanıt değildir. Bir iddiadır.
Her test sonucu ürününüz hakkında bir iddiadır. "Ödeme adımı çalışıyor." "Ödeme sayfası yükleniyor." "İndirim uygulanıyor." Bu iddianın değeri tek bir şeye bağlıdır: test, ürün gerçekten bozulduğunda ve yalnızca o zaman mı kalıyor?
Çoğu test paketi bunun sözünü veremez. Ürününüzle hiçbir ilgisi olmayan nedenlerle kalır, gerçekten bozuk olan şeylerin ise üzerinden geçip giderler. Bir sezon boyunca ekip gürültüyle yaşamayı öğrenir ve tehlike tam orada başlar.
Google'ın mühendislik ekibine göre, sürekli entegrasyon sistemlerinde gözlemledikleri hataların yaklaşık yüzde 84'ü gerçek regresyon değil, kararsız (flaky) testlerden kaynaklanıyordu. Altı kırmızı sonuçtan beşi yanlış alarm olduğunda insanlar onları okumayı bırakır. Gerçekten önemli olan hata, önemsiz yüzlercesiyle aynı renge bürünmüş halde gelir ve el sallanıp geçilir.
Test paketleri neden dürüstlükten uzaklaşır
Testler yalan söyleyerek başlamaz. Oraya zamanla, genellikle aynı birkaç nedenle sürüklenirler.
Ürünün ne yaptığına değil, nasıl inşa edildiğine bağlıdırlar. Bir sınıf adına, bir element ID'sine ya da sayfadaki belirli bir konuma dayanan test, bir geliştirici sezon öncesi yeniden tasarımda bir şeyin adını değiştirdiği anda bozulur. Üründe kötüleşen hiçbir şey yoktur. Test yalnızca tutunduğu yeri kaybetmiştir. Bu sahte bir hatadır.
Yeniden tasarım sezonu ile trafik sezonu aynı sezondur. Ekipler en büyük görsel değişikliklerini, yoğunluğa şık girmek için tam da zirveden önce yayına alır. Bu değişikliklerin her biri kırılgan bir testin kopması için bir fırsattır. Yani test paketi, ona en çok güvenmeniz gereken haftalarda en gürültülü halindedir.
Bakım, ekibi sessizce yer bitirir. Sektör araştırmaları, QA zamanının mevcut testlerin bakımına ve onarımına giden payını yüzde 30 ile 50 arasında bir yere koyuyor. Zirve öncesinde bu bakım yükü tırmanır, "kararsız" bir testi araştırmak yerine devre dışı bırakma isteği de onunla birlikte tırmanır. Bazen susturduğunuz test, dürüst olanın ta kendisidir.
Sonuç, ürün sağlam olduğu için değil, gürültülü testler susturulduğu için yeşil olan bir test paketidir. LambdaTest'in QA profesyonelleriyle yaptığı bir ankette kararsız testler, test sürecindeki en büyük zaman kaybı olarak gösterildi. Bunlarla dolu bir paket yalnızca zamana mal olmaz. Güvene mal olur ve güven, bir test sonucunun gerçekte sattığı tek şeydir.
Bu, yapay zeka ile geçirilen ilk yoğun sezon ve her yapay zeka testi eşit değil
Bu yıl bir şey değişti. Bu tatil sezonuna giren ekiplerin büyük bir bölümü testlerini yapay zekaya taşıdı, birçoğu da bunu ilk kez yaptı. Bu çoğunlukla iyi haber. Ancak yoğun sezon, son on iki ayın abartısının üstünü örttüğü bir ayrımı ortaya çıkarmak üzere: yapay zekanın nasıl kullanıldığı, kullanılıp kullanılmadığından daha önemlidir.
Testinizi bir kez yazan yapay zeka ile testinizi her çalıştığında doğaçlayan yapay zeka arasında gerçek bir fark vardır.
Canlı bir akışı genel amaçlı bir modele verip her adıma anında kendisinin karar vermesine izin verirseniz, izlemesi etkileyici ama güvenmesi imkansız bir şey elde edersiniz. Aynı koşu art arda iki kez farklı bir yol izleyebilir. Benzeyen yanlış butona tıklar. Daha sıkı bir kontrolün yakalayacağı bir adımı geçti sayar ya da aslında sorunsuz olan bir adımı kaldı sayar. Bu deterministik olmayan bir davranıştır ve yeni bir akışı keşfederken bir güçtür. Black Friday'de ödeme adımınızı koruyan bir regresyon paketi için ise yeni ve daha ikna edici bir kararsızlık kaynağıdır, çünkü artık yanlış pozitifler yapay zekanın itibarını kuşanmış olarak gelir.
Çözüm daha az yapay zeka değil. Doğru yerde yapay zeka. Onu ekranı anlamak ve testi yazmak için kullanın. Sonra bunu her seferinde aynı şekilde çalışan deterministik adımlara derleyin ki sonuç, her koşuda yenilenen bir fikir değil, güvenebileceğiniz bir iddia olsun. Uyum gereken yerde akıl yürütme, kanıt gereken yerde determinizm.
Yoğun trafik her boşluğun maliyetini katlar
Sakin bir haftada gözden kaçan hata bir hatadır. Aynı hata Black Friday'in ortasında bir olaydır. Sezonu değerli kılan trafik, küçük bir kapsam boşluğunu büyük, herkesin gözü önünde ve pahalı bir arızaya çeviren trafiğin ta kendisidir. Üstelik bu çoğu zaman yalnızca yük altında gerçekten zorlanan akışlarda olur: dolu sepet, promosyon kodu, üçüncü ödeme denemesi, dakikada üç kişi elle test ederken hiç ortaya çıkmayan uç durum.
Yoğun sezonun sessiz tuzağı budur. Risk artar, değişim hızı artar ve güvenlik ağının güvenilirliği düşer. Hepsi aynı anda.
Dürüst bir test neye benzer
Dürüst bir test, ürün hata verdiğinde ve yalnızca o zaman kalır. Bir sınıf adı değiştiğinde değil. Bir buton yer değiştirdiğinde değil. Sayfa düzeni tatil öncesinde yeni bir kat boya yediğinde değil.
Oraya varmak, kablolamayı değil davranışı test etmek demektir. Test, seçici değildir. Test, davranıştır. Bir test ürünün yapması gerekene göre yazıldığında, kozmetik bir değişiklik içinden sorunsuz geçer, gerçek bir regresyon ise hattı durdurur. Bütün mesele budur: yok saymayı öğrendiğiniz gürültü olmadan, üzerine harekete geçebileceğiniz sinyal.
Text2Test bu fikrin etrafında kuruldu. Testler ekranı bir insan test uzmanının okuduğu gibi, kırılgan seçicilerle değil anlamıyla okur. Bu yüzden adı değişen bir element ya da yeniden düzenlenen bir sayfa sahte bir hata üretmez. Bir akışta gerçekten bir şey değiştiğinde koşu çökmek yerine uyum sağlar. Testinizi her koşuda tahmin eden yapay zeka ile ekranı bir kez okuyan, onu her seferinde aynı şekilde davranan adımlara derleyen ve yalnızca akış gerçekten değiştiğinde uyum sağlayan yapay zeka arasındaki fark budur. Zirveye giden haftaları, hiç bozulmamış testleri yeniden yazarak değil, gerçek regresyonları inceleyerek geçirirsiniz.
Trafik gelmeden önce üç soru sorun
Bundan fayda sağlamak için test paketinizi bu hafta baştan kurmanız gerekmiyor. Dürüst olup olmadığını bilmeniz gerekiyor. Buradan başlayın:
- Geçen ay bir test kaldığında, ürün ne sıklıkla gerçekten bozuktu? Yanıt "nadiren" ise ekibiniz kırmızıyı yok saymaya çoktan alışmıştır ve gerçek bir hata da yok sayılacaktır.
- Testlerinizi en sık ne bozuyor, ürün değişiklikleri mi yoksa kod değişiklikleri mi? Yeniden adlandırmalar ve yeniden tasarımlar gerçek hatalardan daha fazla test bozuyorsa, paketiniz davranışı değil kablolamayı test ediyordur.
- Sezon öncesi zamanınızın ne kadarı hata bulmaya, ne kadarı test onarmaya gidiyor? Çoğu onarıma gidiyorsa, test paketi bir güvenlik ağı değil, bir maliyet merkezidir.
Bu yanıtlar sizi rahatsız ediyorsa, bu işe yarar bir şey. Bunu şimdi hissetmek, Black Friday günü saat 14.00'te hissetmekten çok daha iyidir.
Sıkça sorulan sorular
Kararsız (flaky) test nedir?
Kararsız (flaky) test, test edilen üründe hiçbir değişiklik olmadığı halde bazen geçen, bazen kalan testtir. Tutarsız sonuç üretir, çünkü zamanlamaya, kırılgan seçicilere ya da ürünün gerçekten çalışıp çalışmadığıyla ilgisi olmayan koşullara bağlıdır. Kararsız testler bir test paketine duyulan güveni aşındırır, çünkü hataları gerçek hatalarla birebir aynı görünür.
Testte yapay zeka kullanmak testleri daha kararsız hale getirir mi?
Bu tamamen yapay zekanın nasıl kullanıldığına bağlıdır. Her koşuda sıfırdan karar veren bir yapay zeka doğası gereği deterministik değildir: aynı ürün durumu için farklı yollar izleyip farklı sonuçlar üretebilir, bu da yeni bir kararsızlık kaynağıdır. Ekranı okuyarak testi bir kez yazan, ardından onu her seferinde birebir aynı şekilde çalışan deterministik adımlara derleyen bir yapay zeka bu sorunu yaşamaz. Akıl yürütme, gerçek değişikliklere uyum sağlamak için değerlidir. Bir regresyon paketinin güvenilir olması için gereken şey ise determinizmdir.
Test paketleri bir web sitesi yeniden tasarımı sırasında neden bozulur?
Pek çok test, element ID'leri, sınıf adları ya da sayfa yapısı gibi uygulama detaylarına bağlıdır. Yeniden tasarım, ürünün ne yaptığını değiştirmek zorunda olmadan bu detayları değiştirir. Bu yüzden aslında hiçbir şey bozulmadığı halde testler kalır. Uygulama detayları yerine ürün davranışına göre yazılan testler yeniden tasarımlara karşı çok daha dayanıklıdır.
Bir test paketini Black Friday'e ya da yoğun trafiğe nasıl hazırlarım?
Önce mevcut sonuçlarınızın ne kadar güvenilir olduğunu ölçün: hataların ne sıklıkla gerçek olduğunu, bozulmaların çoğuna neyin yol açtığını ve zamanın ne kadarının hata bulmaya, ne kadarının bakıma gittiğini. Ödeme adımı, ödemeler ve promosyonlar gibi yük altındaki akışların kapsamına öncelik verin ve kozmetik değişikliklerde bozulan testlerden uzaklaşın. Böylece ekibiniz yoğunluk sırasında her kırmızı sonuca güvenebilir.
Bir testi "dürüst" yapan nedir?
Dürüst bir test, ürün hata verdiğinde ve yalnızca o zaman kalır. Kod ya da tasarım değişiklikleri yüzünden sahte hata üretmez, gerçek kusurların üzerinden de geçip gitmez. Yeşil bir test paketini anlamlı kılan şey dürüstlüktür.
Demo Talep Edin ve kendi akışlarınızın bir insanın okuyacağı gibi test edildiğini görün, yoğun sezon bunu sizin yerinize yapmadan önce.
