Mülakat soruları · Kitap 10
Test ve Kalite mülakat soruları
37 sayfadan 135 soru, her birinin kısa bir cevabıyla. Önce kendi cevabınızı söyleyin, sonra soruyu açıp kontrol edin.
s. 1 · 4 soru
A/B Testi
1
A/B testi nedir?
A/B testi, bir özelliğin iki sürümünü gerçek kullanıcıların rastgele gruplarına gösterip seçilen metrikte hangisinin daha iyi sonuç verdiğini ölçen deneydir.
2
Bir A/B testi ne kadar sürmeli?
Önceden hesapladığınız örneklem büyüklüğüne ulaşacak kadar uzun ve hafta içi ile hafta sonu davranışlarının ikisinin de dahil olması için genellikle en az bir ila iki tam hafta. Sonuçlar iyi görünür görünmez bir testi bitirmek çoğu zaman yanlış sonuçlara yol açar.
3
A/B testinde istatistiksel anlamlılık nedir?
İki sürüm aslında aynı performansı gösterseydi gözlenen farkın ne kadar düşük olasılıklı olacağının bir ölçüsüdür. Ekipler bir kazananı ilan etmeden önce genellikle yüzde 5'lik bir anlamlılık düzeyi arar.
4
A/B testi ile canary sürümü arasındaki fark nedir?
Canary sürümü, herkese yaymadan önce hataları yakalamak için yeni bir sürümü trafiğin küçük bir bölümüne sunar. A/B testi ise hangisinin daha iyi sonuç verdiğini öğrenmek için kullanıcıları iki çalışan sürüm arasında böler.
s. 2 · 3 soru
Assertion
1
Programlamada ve testte assertion nedir?
Assertion, kodun o noktasında bir koşulun doğru olması gerektiğini bildiren ve koşul yanlışsa testi ya da programı bir hatayla durduran ifadedir.
2
Bir assertion başarısız olduğunda ne olur?
Assertion, Python'daki
AssertionErrorya da JavaScript'innode:assertmodülü gibi bir hata fırlatır. Bir testte çalıştırıcı o testi başarısız olarak işaretler ve beklenen ile gerçek değerleri gösterir; bir programda ise hata yakalanmadıkça yürütme durur.3
Assertion'lar üretim kodunda kullanılmalı mı?
Evet, imkânsız bir durum gibi kendi kodunuzdaki bir hataya işaret eden koşullar için. Assertion'lar kapatılabileceğinden, doğru doğrulama ve hata yönetimi gerektiren kullanıcı girdisi ya da diğer beklenen hatalar için kullanmayın.
s. 3 · 4 soru
Beyaz Kutu Testi
1
Beyaz kutu testi (white-box testing) nedir?
Beyaz kutu testi, testleri kodun iç yapısına dair bilgiyle tasarlar; böylece kodun ifadeleri, dalları ve yolları doğrudan çalıştırılıp kontrol edilir.
2
Beyaz kutu testini kim yapar?
Çoğunlukla geliştiriciler, çünkü kodu okuyup anlamayı gerektirir. Güvenlik test uzmanları da açıklar için kod incelerken onu kullanır.
3
Dal kapsamı (branch coverage) nedir?
Her if ifadesinin hem doğru hem yanlış tarafı gibi karar sonuçlarından testlerin çalıştırdığı yüzdedir. Düz satır kapsamından daha katı ve daha faydalıdır.
4
Gri kutu testi nedir?
İki yaklaşımın karışımıdır: testler kara kutu testleri gibi dışarıdan tasarlanır, ama olası sorunları hedeflemek için veritabanı şeması ya da mimari gibi iç yapı hakkında kısmi bir bilgiyle.
s. 4 · 4 soru
Birim Testi
1
Birim testi nedir?
Birim testi, bir fonksiyonun, metodun ya da sınıfın programın geri kalanından yalıtılmış olarak doğru davrandığını doğrulayan küçük ve otomatik bir kontroldür.
2
Birim testi ile entegrasyon testi arasındaki fark nedir?
Birim testi, bir kod parçasını genellikle bağımlılıkları mock'larla değiştirilmiş hâlde yalıtılmış olarak kontrol eder. Entegrasyon testi ise kodunuz ve bir veritabanı gibi birkaç gerçek bileşenin birlikte doğru çalıştığını kontrol eder.
3
İyi bir birim testi nasıl olur?
İyi bir birim testi hızlıdır, diğer testlerden bağımsızdır, tekrarlanabilirdir ve net bir adla tek bir davranışı kontrol eder. Başarısız olduğunda adı ve mesajı, hata ayıklamaya gerek kalmadan neyin bozulduğunu söylemelidir.
4
Kaç tane birim testi yazmalıyım?
Sabit bir sayı yoktur. İyi bir kural, genel (public) fonksiyonlarınızın her önemli davranışını; boş girdiler, sınır değerler ve hata yolları gibi uç durumlar dahil test etmektir.
s. 5 · 4 soru
Cypress
1
Cypress nedir?
Cypress, web uygulamalarının uçtan uca ve bileşen testlerini tarayıcıda yürüten, otomatik bekleme ve etkileşimli çalıştırıcı sunan JavaScript framework'üdür.
2
Cypress mi Playwright mı?
İkisi de moderndir ve otomatik bekler. Cypress çok kullanıcı dostu bir etkileşimli çalıştırıcı sunar ve tarayıcının içinde çalışır. Playwright ise birden çok sekmeyi ve bağlamı, daha fazla dili ve ücretli bir servise gerek kalmadan paralel çalıştırmayı destekler. Birçok yeni proje Playwright'ı seçiyor, Cypress ise ön yüz ekipleri arasında popüler olmaya devam ediyor.
3
Cypress ücretsiz mi?
Evet. Cypress test çalıştırıcısı açık kaynaklı ve ücretsizdir. Kayıt, paralelleştirme ve analitik ekleyen Cypress Cloud ise ücretsiz bir katmanı olan ücretli bir servistir.
4
Cypress bileşen testi nedir?
Bir React ya da Vue bileşeni gibi tek bir ön yüz bileşenini gerçek bir tarayıcıda bağlayıp bütün uygulamayı çalıştırmadan yalıtılmış olarak test etmektir.
s. 6 · 4 soru
Davranış Odaklı Geliştirme
1
Davranış odaklı geliştirme nedir?
Davranış odaklı geliştirme, geliştiricilerin, test uzmanlarının ve iş tarafının otomatik testlere dönüşen sade dilli örneklerde anlaştığı bir pratiktir.
2
BDD ile TDD arasındaki fark nedir?
TDD, koddan önce başarısız bir birim testi yazmaya dayanan bir geliştirici pratiğidir. BDD benzer bir önce-test fikrini özellik düzeyine uygular ve iş tarafının, geliştiricilerin ve test uzmanlarının birlikte yazdığı sade dilli senaryolar kullanır.
3
Gherkin nedir?
Gherkin,
Feature,Scenario,Given,WhenveThengibi anahtar sözcüklerle BDD senaryoları yazmak için kullanılan basit, yapılandırılmış bir dildir. BDD araçları Gherkin dosyalarını okur ve eşleşen adım tanımlarını test olarak çalıştırır.4
Given-When-Then ne anlama gelir?
Given başlangıç durumunu, When eylemi ya da olayı, Then ise beklenen sonucu tanımlar. Bu desen her senaryoyu tek bir davranışa odaklı tutar.
s. 7 · 3 soru
Entegrasyon Testi
1
Entegrasyon testi nedir?
Entegrasyon testi, kod, veritabanı ve API gibi bir sistemin birkaç parçasının birlikte doğru çalışıp çalışmadığını kontrol eden otomatik bir testtir.
2
Entegrasyon testi ile uçtan uca test arasındaki fark nedir?
Entegrasyon testi, bir servis ve veritabanı gibi birkaç bileşenin birlikte çalıştığını kontrol eder. Uçtan uca test ise tam bir kullanıcı yolculuğunu, genellikle gerçek bir kullanıcı gibi arayüz üzerinden, uygulamanın tamamında kontrol eder.
3
Entegrasyon testleri gerçek bir veritabanı kullanmalı mı?
Genellikle evet, çünkü amaç gerçek bağlantıyı test etmektir. Pek çok ekip, sonuçların gerçekçi olması ve verinin testler arasında sıfırlanması için her test çalıştırmasında bir konteynerde tek kullanımlık bir veritabanı başlatır.
s. 8 · 3 soru
Flaky Test
1
Flaky test nedir?
Flaky test, koda hiçbir değişiklik yapılmadan bazen geçen bazen başarısız olan ve sonuçlarına güvenmeyi zorlaştıran otomatik bir testtir.
2
Flaky testlere ne sebep olur?
En yaygın nedenler asenkron koddaki zamanlama sorunları, veriyi paylaşan ya da çalışma sırasına bağlı testler, gerçek ağlara ya da servislere yapılan çağrılar ve rastgele değerlere veya geçerli zamana bağımlılıktır. Her çalıştırmada aynı olmayan herhangi bir şey bir testi kararsız hâle getirebilir.
3
Flaky testleri sadece yeniden denemek yeterli mi?
Yeniden denemeler kısa vadede hattın akmasını sağlayabilir, ancak sorunu gizler ve kodunuzdaki gerçek aralıklı hataları maskeleyebilir. Flaky testleri takip edin, gerekirse karantinaya alın ve asıl nedeni düzeltin.