Ürün
Archito YeniMerge request'lerinizden öğrenir, takılanı gösterir Entegrasyonlar 25
Çözümler
Rolünüze göre
Neden AppArch
Kaynaklar
Müşteriler Fiyatlandırma İletişim
Dil
İletişime geç

Testlerinizin aklına gelmeyen hatalar, istekten veritabanına kadar izlenir.

SmartScan her giriş noktasını - bir web aksiyonu, bir job, bir mesaj tüketicisi, uygulamadaki bir ekran - servisler ve handler'lar üzerinden veritabanına ya da giden isteğe kadar izler ve yolda neyin kırılabileceğini işaretler: boş dönebilecek bir arama, yarım kalabilecek iki yazma, girdinin taşırabileceği bir sütun. Her risk, kendisine götüren zincirle gelir.

Çalışan bir kurulumdan ekranlar

Neyi arar

Dört tür risk; her biri birinin yazdığı bir kalıpta değil, kodunuzdaki gerçek bir yolda bulunur.

Kayıt bulunamadı

İstek verisiyle yapılan bir arama boş dönebilir ve kod sonucu kontrol etmeden kullanır: 404 yerine 500 ya da yanıltıcı bir mesaj.

Yarım yazma

Bir akışta, etrafında transaction olmayan iki ayrı commit: ikincisi başarısız olursa birincisi yazılı kalır.

Sözleşme boşlukları

İstek sütunun alabileceğinden fazlasını taşıyabilir, zorunlu bir sütunun yolda kontrolü yoktur ya da tekil bir sütun tekillik kontrolü olmadan yazılır.

Ön yüz ve mobil

Hatasını kimsenin ele almadığı bir istek, başarı sanılan bir hata, kontrol edilmeden kullanılan bir yanıt: ekran çöker ya da sessiz kalır.

SmartScan tek bir istekte neyi görür

Bir sipariş altı adımda oluşturulur. Her adım koddaki gerçek bir çağrıdır; SmartScan bunları izler ve bir şeyin kırılabileceği yerde durur.

  1. Giriş noktası POST /api/orders OrdersController.Create
  2. Mediator isteği mediator.Send(CreateOrderCommand)
  3. Handler CreateOrderHandler.Handle
  4. Arayüzden gerçeklemeye ICustomerRepository.FindAsync CustomerRepository Kayıt bulunamadı: sonuç kontrol edilmeden kullanılıyor
  5. Yazmalar SaveChangesAsync() ×2 Yarım yazma: iki commit, transaction yok
  6. Veritabanı orders · order_lines

Nasıl çalışır

Birim bir zincirdir: isteğin girdiği yerden veriye dokunduğu yere kadar.

  1. 01

    Her giriş noktasından başlar

    Web aksiyonları, zamanlanmış job'lar ve mesaj tüketicileri; ön yüz ve uygulamalarda olaylar, effect'ler, route'lar ve ekranlar.

  2. 02

    Zinciri izler

    Arayüzden gerçeklemeye, override'lar, mediator isteklerinden handler'lara - ORM'e ya da HTTP çağrısına kadar.

  3. 03

    Korunanı eler

    Yazmanın kendi yolundaki bir kontrol, kayıt bulamayınca hata fırlatan bir arama ya da uzunluğu doğru sınırlayan bir doğrulayıcı koruma sayılır. Risk taşımayan zincir raporlanmaz.

  4. 04

    Yolu gösterir

    Her risk adımlarını dosya ve satırıyla, giriş noktasından sütuna kadar listeler.

Uyarır, durdurmaz

SmartScan bir kural seti değildir: skoru asla düşürmez, pipeline'ı asla kırmaz. Her risk, her bulgu gibi tek tek kapatılabilir. Proje bazında açılır, varsayılan olarak kapalıdır ve yalnızca tam taramalarda çalışır; böylece merge request kontrolleri hızlı kalır.

Collector'ın dokuz dilinin hepsinde

.NET Java Python Go PHP Ruby TypeScript Kotlin Swift

Bir kural ile bir SmartScan riski aynı şey değildir

İkisi de aynı panelde görünür ama farklı sorulara cevap verir ve farklı davranır.

Kural bulgusuSmartScan riski
Neye bakarBirinin yazdığı bilinen bir kalıpKodunuzun içinden geçen gerçek bir yol
SkorÖnem derecesine göre düşürürAsla etkilemez
PipelineFail-on eşiğiyle durdurabilirAsla durdurmaz
Ne zaman çalışırMerge request incelemeleri ve tam taramalarYalnızca tam taramalar, proje bazında açılır
Ne verirDosya, satır ve kuralın gerekçesiZincirin tamamı, adım adım, dosya ve satırıyla

SmartScan hakkında sorular

Bir kural seti daha mı?
Hayır. Kural seti, birinin aklına gelen her senaryoyla büyür; SmartScan bunun yerine kodun kendi yollarını izler. Uyarır; skoru asla düşürmez, pipeline'ı asla kırmaz.
Yanlış alarmlar nasıl azaltılıyor?
Bir koruma yalnızca yazmanın kendi yolundaysa sayılır: açık bir kontrol, kayıt bulamayınca hata fırlatan bir arama, uzunluğu doğru sınırlayan bir doğrulayıcı. Her risk türü yayına girmeden önce gerçek kod tabanlarında elle kontrol edildi.
Merge request incelemelerini yavaşlatır mı?
Hayır. SmartScan yalnızca tam depo taramalarında çalışır; merge request kontrolleri hızlı yolunu korur.
Hangi diller ve çatılar?
Collector'ın dokuz dilinin hepsi: .NET, Java, Python, Go, PHP, Ruby, TypeScript (React ve Next.js ön yüzleri dahil), Kotlin (Android ve Spring) ve Swift (iOS).

Hataları kullanıcılarınızdan önce bulun

PoC sırasında SmartScan'i bir proje için açın; bir sonraki tam tarama risk taşıyan her zinciri gösterir.