Sobes.tech
Junior

Erzählen Sie mir von den Tests des Client-Teils der Anwendungen.

sobes.tech KI

Antwort von AI

Beginnen wir damit, dass die Tests auf der Client-Seite (Frontend) sich auf die Überprüfung der Benutzeroberfläche (UI) und ihrer Interaktion konzentrieren. Dazu gehören Funktionalität, Leistung, Benutzerfreundlichkeit (UX), Sicherheit und Browserkompatibilität.

Arten von Tests auf der Client-Seite:

  • Funktionstests: Überprüfung, ob die Oberfläche den Spezifikationsanforderungen entspricht.
    • Überprüfung der korrekten Funktion von Buttons, Formularen, Links.
    • Validierungsprüfung der Dateneingabe.
    • Überprüfung der korrekten Datenanzeige.
  • UI-Tests: Visuelle Überprüfung der Oberfläche.
    • Überprüfung des Layouts, der Schriftarten, Farben, Elementgrößen.
    • Überprüfung der Anzeige auf verschiedenen Bildschirmauflösungen (reaktives Design).
  • UX-Tests: Bewertung der Benutzerfreundlichkeit der Anwendung.
    • Überprüfung der intuitiven Navigation.
    • Überprüfung der Leichtigkeit bei der Erfüllung von Aufgaben durch den Nutzer.
    • Sammlung von Feedback von Nutzern (manchmal).
  • Leistungstests: Bewertung der Ladegeschwindigkeit der Seiten und der Reaktionsfähigkeit der Oberfläche.
    • Einsatz von Tools zur Analyse der Ladegeschwindigkeit (z.B. Lighthouse).
    • Lasttests (obwohl dies mehr den Backend betrifft, kann es das Frontend beeinflussen).
  • Sicherheitstests: Überprüfung auf Schwachstellen auf der Client-Seite.
    • Überprüfung auf XSS (Cross-Site Scripting).
    • Überprüfung auf CSRF (Cross-Site Request Forgery).
    • Überprüfung auf Code-Injektionen.
  • Browserkompatibilitätstests: Überprüfung der korrekten Anzeige und Funktion in verschiedenen Browsern und Versionen.
  • Plattformübergreifende Tests: Überprüfung der UI-Funktion auf verschiedenen Betriebssystemen und Geräten (Computer, Tablets, Smartphones).

Testansätze:

  • Manuelle Tests: Werden von einer Person durchgeführt, die die Aktionen des Nutzers imitiert. Effektiv für UI- und UX-Tests.
  • Automatisierte Tests: Einsatz von Tools und Frameworks zur automatischen Ausführung von Testszenarien. Effektiv für Regressionstests und Funktionstests.

Tools für automatisierte Client-Tests:

  • Selenium: Weit verbreitetes Framework zur Automatisierung von Browsern. Unterstützt verschiedene Programmiersprachen.
  • Cypress: Framework für Frontend-Tests, speziell für das Web entwickelt. Schnell und einfach zu verwenden.
  • Playwright: Microsoft-Framework für zuverlässige End-to-End-Tests. Unterstützt verschiedene Browser und Sprachen.
  • Jest, Mocha: Frameworks für Unit-Tests von JavaScript-Code.

Beispiel für einen einfachen Test mit Selenium (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-Treiber einrichten
service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

try:
    # Seite öffnen
    driver.get("https://www.example.com")

    # Seitentitel überprüfen
    assert "Example Domain" in driver.title

    # Element anhand des Link-Texts finden
    link_element = driver.find_element(By.LINK_TEXT, "More information...")
    assert link_element.is_displayed() # Sichtbarkeit des Elements prüfen
    
    # Link anklicken (Beispiel)
    # link_element.click()
    # time.sleep(2) # Warten auf das Laden der neuen Seite

finally:
    # Browser schließen
    driver.quit()

Beispiel für einen Test mit Cypress:

// cypress/integration/example_spec.js

describe('Mein erster Test', () => {
  it('Besucht die Beispiel-Website', () => {
    // Seite öffnen
    cy.visit('https://www.example.com')

    // Seitentitel überprüfen
    cy.title().should('include', 'Example Domain')

    // Vorhandensein des Elements anhand des Textes prüfen
    cy.contains('More information...').should('be.visible')

    // Link anklicken (Beispiel)
    // cy.contains('More information...').click()
    // cy.url().should('include', '/moreinfo') // URL nach Klick prüfen
  })
})

Merkmale der Client-Seiten-Tests:

  • Dynamik der Oberfläche: UI kann sich je nach Nutzeraktionen oder Daten ändern.
  • Asynchrone Operationen: Anfragen an den Server und deren Antworten können asynchron erfolgen.
  • Vielfalt der Umgebungen: Notwendigkeit, auf verschiedenen Geräten, Browsern und Auflösungen zu testen.
  • Abhängigkeit vom Backend: Das korrekte Funktionieren des Frontends hängt oft von der Verfügbarkeit und Korrektheit der Backend-Antworten ab.
  • Häufige Änderungen: Das Frontend ändert sich häufig während der Entwicklung.

Insgesamt sind Client-Seiten-Tests ein kritischer Schritt, um die Qualität und Benutzerfreundlichkeit von Webanwendungen sicherzustellen. Sie erfordern sowohl manuelle als auch automatisierte Ansätze für eine umfassende Abdeckung.