Örnek sorular
Ta Visual Regression ReportingZorluk 1
Görsel regresyon testinin (visual regression testing) temel fikri nedir?
- aYeni bir ekran görüntüsü, istenmeyen görsel değişiklikleri tespit etmek için kaydedilmiş bir baseline görüntüyle piksel piksel karşılaştırılır✓
- bTest, bir sayfanın ne kadar hızlı render edildiğini ölçer ve render süresi sabit bir eşiği aşarsa başarısız olur
- cTest, sayfanın HTML kaynağını okur ve kaydedilmiş bir markup kopyasıyla karşılaştırır
- dTest, sayfanın önceden kaydedilmiş bir videosunu tekrar oynatır ve video dosya boyutunun değişmediğini kontrol eder
Açıklama:Görsel regresyon testi, mevcut bir ekran görüntüsünü alır ve kaydedilmiş bir baseline görüntüyle karşılaştırarak istenmeyen bir görsel değişikliği işaret eden piksel-seviyesi farkları işaretler.
Ta Visual Regression ReportingZorluk 1
Görsel regresyon testi terminolojisinde bir "baseline" görüntü nedir?
- aProjenin tarihinde alınan ilk ekran görüntüsü olup, tarihsel bir kayıt olarak sonsuza dek değiştirilmeden saklanır
- bDoğru render olarak kabul edilen ve sonraki çalıştırmaların karşılaştırıldığı referans ekran görüntüsü✓
- cKullanıcının attığı her tuş vuruşundan sonra otomatik olarak alınan bir ekran görüntüsü
- dYalnızca disk alanından tasarruf etmek için kullanılan, bulanık ve düşük çözünürlüklü bir ekran görüntüsü kopyası
Açıklama:Baseline, doğru/beklenen arayüz durumunu temsil eden kabul edilmiş referans görüntüdür; her yeni test çalıştırmasının ekran görüntüsü değişiklikleri tespit etmek için bu baseline ile karşılaştırılır.
Ta Visual Regression ReportingZorluk 1
Bir görsel regresyon aracının ürettiği "diff" tipik olarak neyi gösterir?
- aSayfanın stylesheet'inde bulunan her CSS özelliğinin metinsel bir listesini
- bSayfanın yüklenirken yaptığı toplam HTTP istek sayısını
- cMevcut ekran görüntüsünün baseline'dan tam olarak nerede farklılaştığını gösteren vurgulanmış bir görüntü✓
- dSayfa yüklenirken çağrılan her JavaScript fonksiyonunun bir listesini
Açıklama:Diff çıktısı genellikle görsel bir üründür: baseline ile mevcut ekran görüntüsü arasında farklılaşan piksellerin işaretlendiği bir görüntü, değişikliğin bir bakışta fark edilmesini sağlar.
Ta Visual Regression ReportingZorluk 2
Görsel regresyon araçları görüntüleri karşılaştırırken neden tam piksel eşleşmesi yerine yapılandırılabilir bir "threshold" (tolerans) değeri kullanır?
- aÇünkü tam piksel eşleşmesi hiçbir karşılaştırma kütüphanesinde teknik olarak uygulanamaz
- bÇünkü threshold, görüntünün çoğunu atlayarak testi daha hızlı çalıştırır
- cÇünkü threshold, diskte kaç baseline görüntü saklanacağını belirler
- dÇünkü aksi takdirde anti-aliasing gibi küçük render farkları her çalıştırmada yanlış başarısızlıklara neden olur✓
Açıklama:Bir tolerans eşiği, anlamsız küçük render varyasyonlarını (anti-aliasing, font hinting, GPU farkları) yutar; böylece test yalnızca gerçek bir regresyon sayılacak kadar büyük görsel fark olduğunda başarısız olur.
Ta Visual Regression ReportingZorluk 2
Sadece görüntülerin ötesinde daha geniş bir kavram olarak "snapshot testing" nedir, örneğin render edilmiş bir component'in serileştirilmiş çıktısını karşılaştırırken?
- aÇıktının serileştirilmiş halini bir kez yakalayıp saklamak ve sonraki çalıştırmaların çıktısını değişiklikleri yakalamak için bu kopyayla karşılaştırmak✓
- bHer test çalıştırmasından önce uygulamanın kalıcı verisinin tam bir yedeğini almak, böylece bir test veriyi bozarsa durum sonradan geri yüklenebilir
- cTest çalıştırıcı makinenin tam CPU ve bellek kullanımını tek bir anda kaydetmek
- dAynı testi art arda iki kez çalıştırıp iki sonucu birlikte ortalamak
Açıklama:Snapshot testing, baseline-diff fikrini sadece görüntülerle sınırlı kalmadan serileştirilebilir herhangi bir çıktıya genelleştirir: referans bir snapshot bir kez saklanır ve sonraki çalıştırmalar istenmeyen değişiklikleri yakalamak için bununla karşılaştırılır.
Ta Visual Regression ReportingZorluk 1
Cypress'te bir cypress run (headless) çalıştırması sırasında bir test başarısız olduğunda varsayılan olarak ne olur?
- aCypress, başarısız test için önerilen bir düzeltmeyle otomatik olarak bir pull request açar
- bCypress, başarısızlık anında bir ekran görüntüsü yakalar ve artifact olarak kaydeder✓
- cCypress, gelecekteki çalıştırmalarda tekrar başarısız olmaması için test dosyasını siler
- dCypress, yürütmeyi süresiz olarak durdurur ve bir geliştiricinin manuel müdahale etmesini bekler
Açıklama:Cypress'in cypress run sırasında yerleşik bir screenshot-on-failure davranışı vardır: bir test başarısız olduğunda, o anda tarayıcının bir ekran görüntüsünü otomatik olarak yakalar ve bunu bir CI artifact'i olarak saklar.