Sobes.tech
Junior

Ilovalarining mijoz qismi testlari haqida gapirib bering.

sobes.tech AI

AIdan javob

Keling, mijoz qismi (front-end) testlash UI (foydalanuvchi interfeysi) va uning bilan o'zaro ta'sirga qaratilganligini aytib o'tamiz. Bu funksionallik, ishlash tezligi, qulaylik (UX), xavfsizlik va brauzerlararo moslikni o'z ichiga oladi.

Mijoz qismi testlash turlari:

  • Funktsional testlash: Interfeysning spetsifikatsiya talablariga mosligini tekshirish.
    • Tugmalar, shakllar, havolalarning to'g'ri ishlashini tekshirish.
    • Ma'lumotlarni validatsiya qilishni tekshirish.
    • Ma'lumotlarning to'g'ri ko'rsatilishini tekshirish.
  • UI-testlash: Interfeysning vizual tekshiruvi.
    • Maket, shriftlar, ranglar, elementlar o'lchamini tekshirish.
    • Turli ekran o'lchamlarda ko'rsatishni tekshirish (moslashuvchan dizayn).
  • UX-testlash: Ilovaning qulayligini baholash.
    • Navigatsiyaning intuitivligini tekshirish.
    • Foydalanuvchi uchun vazifalarni bajarishni osonligini tekshirish.
    • Foydalanuvchilardan fikr-mulohaza yig'ish (ba'zan).
  • Ishlash tezligini testlash: Sahifalarni yuklash tezligi va interfeysning javob berishini baholash.
    • Yuklanish tezligini tahlil qilish uchun vositalardan foydalanish (masalan, Lighthouse).
    • Yuklama ostida testlash (bu ko'proq backend uchun, lekin front-endga ta'sir qilishi mumkin).
  • Xavfsizlik testlash: Mijoz tomonidagi zaifliklarni tekshirish.
    • XSS (Cross-Site Scripting) tekshiruvi.
    • CSRF (Cross-Site Request Forgery) tekshiruvi.
    • Kodinga injektsiya qilishni tekshirish.
  • Brauzerlararo testlash: Turli brauzerlar va ularning versiyalarida to'g'ri ko'rsatish va ishlashini tekshirish.
  • Platformalararo testlash: UI ning turli operatsion tizimlar va qurilmalarda ishlashini tekshirish (kompyuterlar, planshetlar, smartfonlar).

Testlash yondashuvlari:

  • Qo'lda testlash: Foydalanuvchi harakatlarini taqlid qiluvchi inson tomonidan o'tkaziladi. UI va UX testlash uchun samarali.
  • Avtomatlashtirilgan testlash: Test ssenariylarini avtomatik bajarish uchun vositalar va ramkalar foydalaniladi. Regresiya va funktsional testlash uchun samarali.

Mijoz qismi uchun avtomatlashtirilgan testlash vositalari:

  • Selenium: Brauzerlarni avtomatlashtirish uchun keng qo'llaniladigan ramka. Turli dasturlash tillarini qo'llab-quvvatlaydi.
  • Cypress: Web uchun maxsus ishlab chiqilgan front-end testlash ramkasi. Tez va oson foydalaniladi.
  • Playwright: Microsoft tomonidan ishlab chiqilgan ishonchli testlash ramkasi. Turli brauzerlar va tillarni qo'llab-quvvatlaydi.
  • Jest, Mocha: JavaScript kod uchun modul testlar ramkalari.

Selenium bilan oddiy test misoli (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 drayverini o'rnatish
service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

try:
    # Sahifani ochish
    driver.get("https://www.example.com")

    # Sahifa sarlavhasini tekshirish
    assert "Example Domain" in driver.title

    # Havola elementini matn bo'yicha topish
    link_element = driver.find_element(By.LINK_TEXT, "More information...")
    assert link_element.is_displayed() # Elementning ko'rinishini tekshirish
    
    # Havolaga bosish (misol)
    # link_element.click()
    # time.sleep(2) # Yangi sahifa yuklanishini kutish

finally:
    # Brauzerni yopish
    driver.quit()

Cypress test misoli:

// cypress/integration/example_spec.js

describe('Birinchi Testim', () => {
  it('Misol saytga tashrif buyuradi', () => {
    // Sahifani ochish
    cy.visit('https://www.example.com')

    // Sahifa sarlavhasini tekshirish
    cy.title().should('include', 'Example Domain')

    // Element mavjudligini tekshirish
    cy.contains('More information...').should('be.visible')

    // Havolaga bosish (misol)
    // cy.contains('More information...').click()
    // cy.url().should('include', '/moreinfo') // Bosishdan keyin URL ni tekshirish
  })
})

Mijoz qismi testlash xususiyatlari:

  • Dinamika: UI foydalanuvchi harakatlariga yoki ma'lumotlarga qarab o'zgarishi mumkin.
  • Asinxron operatsiyalar: Serverga so'rovlar va ularning javoblari asinxron bo'lishi mumkin.
  • Turli muhitlar: Turli qurilmalar, brauzerlar va o'lchamlarda test qilish zarur.
  • Backendga bog'liqlik: Frontendning to'g'ri ishlashi backendning mavjudligi va to'g'ri javoblariga bog'liq.
  • Tez-tez o'zgarishlar: Frontend rivojlanish jarayonida ko'p o'zgaradi.

Umuman olganda, mijoz qismi testlash veb-ilovalar sifatini va qulayligini ta'minlash uchun juda muhim bosqichdir. Bu to'liq qamrov uchun qo'lda va avtomatlashtirilgan yondashuvlarni talab qiladi.