Junior
Uygulamaların istemci tarafı testleri hakkında bana bilgi ver.
sobes.tech yapay zeka
AI'dan gelen yanıt
Müşterek tarafın (ön uç) testlerinin, kullanıcı arayüzü (UI) ve onun etkileşimine odaklandığını söylemekle başlayalım. Bu, fonksiyonellik, performans, kullanılabilirlik (UX), güvenlik ve tarayıcılar arası uyumluluğu içerir.
Müşteri tarafı testleri türleri:
- Fonksiyonel testler: Arayüzün spesifikasyon gereksinimlerine uygunluğunun kontrolü.
- Düğmelerin, formların, bağlantıların doğru çalıştığının kontrolü.
- Veri girişlerinin doğrulamasının kontrolü.
- Verilerin doğru görüntülendiğinin kontrolü.
- UI testi: Arayüzün görsel kontrolü.
- Düzen, yazı tipleri, renkler, öğelerin boyutları.
- Farklı ekran çözünürlüklerinde görüntüleme (duyarlı tasarım).
- UX testi: Uygulamanın kullanım kolaylığının değerlendirilmesi.
- Navigasyonun sezgisel olup olmadığının kontrolü.
- Kullanıcının görevleri kolayca yapıp yapmadığının kontrolü.
- Kullanıcı geri bildirimlerinin toplanması (bazen).
- Performans testi: Sayfa yükleme hızı ve arayüz yanıt verme hızının değerlendirilmesi.
- Yükleme hızını analiz etmek için araçların kullanılması (örneğin, Lighthouse).
- Yük altında test (bu daha çok backend için, ancak frontend'i de etkileyebilir).
- Güvenlik testi: Müşteri tarafındaki açıkların kontrolü.
- XSS (Cross-Site Scripting) kontrolü.
- CSRF (Cross-Site Request Forgery) kontrolü.
- Kod enjeksiyonlarının kontrolü.
- Tarayıcılar arası uyumluluk testi: Farklı tarayıcılar ve sürümlerde doğru görüntüleme ve çalışma kontrolü.
- Çok platformlu test: UI'nin farklı işletim sistemleri ve cihazlarda çalışmasının kontrolü (bilgisayarlar, tabletler, akıllı telefonlar).
Test yaklaşımları:
- Manuel test: Kullanıcıyı taklit eden bir kişi tarafından yapılır. UI ve UX testleri için etkilidir.
- Otomatik test: Test senaryolarını otomatik olarak çalıştırmak için araçlar ve çerçeveler kullanılır. Regresyon ve fonksiyonel testler için etkilidir.
Müşteri tarafı otomasyon araçları:
- Selenium: Tarayıcıları otomatikleştirmek için yaygın kullanılan çerçeve. Çeşitli programlama dillerini destekler.
- Cypress: Web için özel olarak geliştirilmiş, ön uç testleri çerçevesi. Hızlı ve kullanımı kolay.
- Playwright: Microsoft'un güvenilir uçtan uca testler için çerçevesi. Farklı tarayıcıları ve dilleri destekler.
- Jest, Mocha: JavaScript kodu için modüler test çerçeveleri.
Selenium ile basit bir test örneği (Python):
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
import time
# Chrome sürücüsünü kurma
service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
try:
# Sayfayı aç
driver.get("https://www.example.com")
# Sayfa başlığını kontrol et
assert "Example Domain" in driver.title
# Bağlantı metnine göre elementi bul
link_element = driver.find_element(By.LINK_TEXT, "More information...")
assert link_element.is_displayed() # Elementin görünürlüğünü kontrol et
# Bağlantıya tıkla (örnek)
# link_element.click()
# time.sleep(2) # Yeni sayfanın yüklenmesini bekle
finally:
# Tarayıcıyı kapat
driver.quit()
Cypress ile test örneği:
// cypress/integration/example_spec.js
describe('İlk Testim', () => {
it('Örnek web sitesini ziyaret et', () => {
// Sayfayı aç
cy.visit('https://www.example.com')
// Sayfa başlığını kontrol et
cy.title().should('include', 'Example Domain')
// Metin ile elementi kontrol et
cy.contains('More information...').should('be.visible')
// Bağlantıya tıkla (örnek)
// cy.contains('More information...').click()
// cy.url().should('include', '/moreinfo') // Tıklamadan sonra URL'yi kontrol et
})
})
Müşteri tarafı testlerinin özellikleri:
- Arayüzün dinamikliği: UI, kullanıcı veya verilere bağlı olarak değişebilir.
- Asenkron işlemler: Sunucuya yapılan istekler ve yanıtlar asenkron olabilir.
- Çeşitli ortamlar: Farklı cihazlar, tarayıcılar ve çözünürlüklerde test edilmesi gerekebilir.
- Backend'e bağımlılık: Frontend'in düzgün çalışması, genellikle backend'in yanıtlarının erişilebilirliği ve doğruluğuna bağlıdır.
- Sık değişiklikler: Frontend, geliştirme sürecinde sık sık değişebilir.
Genel olarak, müşteri tarafı testleri, web uygulamalarının kalite ve kullanılabilirliğini sağlamak için kritik bir adımdır. Tam kapsamlı bir test için hem manuel hem de otomatik yaklaşımlar gereklidir.