- 1 Abschnitt
- 11 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
alles ausklappenalles einklappen
- Softwaretests12
- 1.1Einführung in das Testen von Software
- 1.2Testkonzepte und -strategien
- 1.3Testplanung und Testdesign
- 1.4Durchführung von Tests
- 1.5Bewertung und Dokumentation der Testergebnisse
- 1.6Testautomatisierung
- 1.7Testmetriken und Testmanagement
- 1.8Best Practices und Fallstricke
- 1.9Multimediale Aufbereitung
- 1.10Testkonzepte8 Fragen
- 1.11Aufgaben
- 1.12Lösungen
Testautomatisierung
Einführung in die Testautomatisierung
Vorteile und Herausforderungen der Testautomatisierung:
Vorteile:
- Effizienz: Automatisierte Tests können schnell und wiederholt ausgeführt werden, was die Testdurchlaufzeit verkürzt.
- Genauigkeit: Automatisierte Tests eliminieren menschliche Fehler bei der Testausführung.
- Kontinuierliche Integration: Ermöglicht kontinuierliches Testen und Integration, wodurch Fehler frühzeitig erkannt werden.
- Kostenersparnis: Langfristig kostengünstiger, da weniger manueller Testaufwand erforderlich ist.
Herausforderungen:
- Initiale Einrichtung: Hohe Anfangsinvestitionen in Tools und Schulungen.
- Wartung: Automatisierte Tests müssen regelmäßig gewartet und aktualisiert werden.
- Komplexität: Komplexe Anwendungen erfordern oft aufwändige und sorgfältig geplante Testskripte.
Werkzeuge für die Testautomatisierung
Überblick über gängige Testautomatisierungswerkzeuge:
| Werkzeug | Beschreibung | Programmiersprachen unterstützt |
|---|---|---|
| Selenium | Framework für Webanwendungen, bietet Funktionen zur Browser-Automatisierung | Java, Python, C#, Ruby, JavaScript, etc. |
| JUnit | Beliebtes Testframework für Unit-Tests in Java | Java |
| TestNG | Erweiterbares Testframework, ähnlich wie JUnit, aber flexibler | Java |
| pytest | Framework für Unit-Tests in Python, bietet einfache Syntax und starke Erweiterbarkeit | Python |
| Appium | Automatisierungswerkzeug für mobile Anwendungen | Java, Python, Ruby, etc. |
Beispiel: Automatisierte Webtests mit Selenium und Python:
Installation von Selenium:
pip install selenium
Beispielcode für einen automatisierten Test:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# Webdriver für den Chrome-Browser initialisieren
driver = webdriver.Chrome()
# Webseite öffnen
driver.get("https://example.com")
# Element suchen und Aktion ausführen
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Testautomatisierung" + Keys.RETURN)
# Überprüfen, ob die Ergebnisseite geladen wurde
assert "Keine Ergebnisse gefunden" not in driver.page_source
# Browser schließen
driver.quit()
Implementierung von automatisierten Tests
Einführung in die Implementierung von automatisierten Tests:
Testskripte schreiben:
- Entwickle Testskripte, die spezifische Funktionen oder Szenarien testen.
Testumgebung einrichten:
- Stelle sicher, dass die Testumgebung stabil und reproduzierbar ist.
Tests ausführen:
- Automatisierte Tests regelmäßig und automatisch ausführen, z.B. durch CI/CD-Pipelines.
Beispiel: Implementierung eines Unit-Tests mit pytest:
Installation von pytest:
pip install pytest
Beispielcode für einen Unit-Test:
# my_module.py
def add(a, b):
return a + b
# test_my_module.py
from my_module import add
def test_add():
assert add(2, 3) == 5
assert add(-1, 1) == 0
assert add(0, 0) == 0
if __name__ == "__main__":
pytest.main()
Tests ausführen:
pytest test_my_module.py
Testautomatisierung in CI/CD-Pipelines
Einbindung von automatisierten Tests in CI/CD-Pipelines:
Beispiel: GitHub Actions Workflow für automatisierte Tests:
Erstellen einer Workflow-Datei:
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: |
pytest
Integration in das Repository:
- Füge die Datei
.github/workflows/ci.ymlzu deinem Repository hinzu. - Bei jedem Push oder Pull Request wird der Workflow ausgelöst und die Tests werden ausgeführt.
- Füge die Datei
