Chrono Mock
DilTürkçe

Test etmeye değer tarihler

Yazılım sıradan bir Salı günü bozulmaz. Çeyreğin son gününde, 29 Şubat’ta, bir yılın döndüğü anda ve bir lisansın bitmesinden bir saniye sonra bozulur. Bu hataları bulan tarihler bunlar - 14 tanesi adlandırılmış senaryolar olarak gelir.

Dönem sınırları

Bir dönemi kapatan, bir belgeyi yıla göre numaralandıran ya da bir kesim tarihine kadar tahakkuk eden her şey bunlarda ilk önce yanlış yapar.

  • Ayın son günü - ay sonu kapanışı ve dönem tahakkuku ayın son gününde doğru çalışıyor mu?
  • Çeyreğin son günü - çeyrek sonu kapanışı ve raporlaması çeyreğin son gününde doğru çalışıyor mu?
  • Mali yılın son günü - uygulama mali yılı doğru günde, mali yılın başlamasından önceki günde kapatıyor mu?
  • Canlı yıl dönümü - belge numaralandırması, addaki yıl ve yıllık raporlama, yıl dönümünü sonradan yeniden başlatılmak yerine olurken doğru ele alıyor mu?

Sonuncusu insanların çoğunlukla hiç test edemediği olandır; çünkü uygulama çalışırken saatin 31 Aralık gece yarısını geçmesini gerektirir. Hızlandırılmış bir saatle bu on saniyelik bir iştir.

Takvim ve gösterim sınırları

  • 29 Şubat - yalnızca dört yılda bir var olan artık gün; şaşırtıcı miktarda doğrulama kodu onu doğrudan reddeder.
  • Unix epoch sıfır - uygulama 1 Ocak 1970’i gerçek bir tarih olarak mı, yoksa saklamayı reddetmesi gereken boş bir değer olarak mı ele alıyor?
  • 2038 sınırı - işaretli 32 bitlik bir time_t’nin tükendiği an, 2038-01-19T03:14:07Z’de. Bir saniye sonra sayaç taşar ve 1901’e düşer.

Lisanslar, denemeler ve kurulum

Bunlar kendi lisanslamanızı test etmek içindir; yazıldıkları durum da budur.

  • Denemenin son günü - uygulama denemenin tam son anında hâlâ çalışıyor mu?
  • Deneme bitişinden sonraki ilk gün - deneme biter bitmez erişimi reddediyor mu ve nasıl? Anlamlı bir mesajla mı, yoksa bir yığın izi ile mi?
  • Lisansı bir yıl önce dolmuş - yalnızca dün değil, çoktan dolmuş bir lisansı ele alıyor mu?
  • Kurulumdan önceki tarih - saat kendi kurulum tarihinden önceye ayarlandığında doğru davranıyor mu? Bu, hedefin kendi dosya tarihini okur; bu yüzden parametre gerektirmez.

İş kuralları ve saat davranışı

  • Vadesi gelen ödeme, +N iş günü - N iş günü sonrası vadeli bir ödeme, hafta sonlarını ve doğru ülkenin tatillerini atlayarak doğru güne düşüyor mu? Takvim gerektiren tek senaryo ve cevap pazarlar arasında değişir.
  • Reşit olma sınırı - uygulama tam sınırdaki birini kabul ediyor, bir gün eksik olanı reddediyor mu?
  • Saat sapması, +90 s - saati gerçek zamandan doksan saniye ileri giden bir uygulama başa çıkabiliyor mu? Zamana dayalı tek kullanımlık parolaları ve belirteç doğrulamasını bozan durum budur.

Birini kullanmak

Bir senaryo, adlandırılmış bir tarih ifadesidir. Hesap makinesi ne anlama geldiğini hesaplar, değişiklik de bir uygulamayı o tarihte çalıştırır - iki yerde de aynı ad.

# Tarih ne ve bu tarih neyi test ediyor?
chrono calc --preset month-end

# Bir uygulamayı o tarihte çalıştırın
chrono run "C:\apps\test.exe" --preset year-rollover --report session.txt

# Deneme senaryoları başlangıç tarihini hedefin kendi dosya tarihinden alır
chrono run "C:\apps\test.exe" --preset trial-first-day-after

Pencerede bunlar tarih alanının üzerinde çiplerdir - bir tıklama onu doldurur. Her biri neyi yakaladığını söyleyen kendi cümlesini taşır; çevrimiçi bir tarih hesaplayıcının size veremeyeceği kısım budur.

Chrono Mock kurulum ekranı, Scenarios bölümü açık: listenin üzerinde bir arama alanı, ardından yanıtladığı soruyla birlikte her hazır tarih - 2038 sınırı, 29 Şubat, doksan saniye ileri giden bir saat, ayın son günü - ve listenin altında, üç tanesinin sizin seçeceğiniz bir değere ihtiyaç duyduğunu söyleyen bir satır. Alt çubuk, Start düğmesinin üzerinde anı sade bir dille geri okuyor.
Her senaryo yalnızca bir tarih değil, yanıtladığı soruyu da taşır. Sizin seçeceğiniz bir değere ihtiyaç duyan üç tanesi gizlenmek yerine listenin altında adlarıyla belirtilir.

Burada olmayanlar

Yaz saati uygulaması geçişleri. Bir uygulamayı ileri ya da geri saat geçişinden geçirmek gerçekten yararlı bir testtir ve bilerek yoktur; çünkü oturum saat dilimi, yaz saati uygulaması olmayan sabit bir kaymadır - henüz simüle edilecek bir geçiş yok. Sessizce hiçbir şey yapmayan bir senaryo sunmak, hiç sunmamaktan daha kötü olurdu.

Saat dilimi kurallarının bir modeliyle geri gelecek. Saat diliminin ne yapıp ne yapmadığı →

Deneyin