Tests und Codequalität mit Copilot

Softwareentwicklung mit GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Was du gelernt hast

 

  • Code Completions — Vorschläge beim Tippen
  • Copilot Chat — Fragen stellen, Erklärungen erhalten, Code refaktorisieren
  • Agent Mode — autonome, mehrstufige Tasks
  • Custom Tools — Copilot erweitern
Softwareentwicklung mit GitHub Copilot

Jetzt anwenden

nanobanana: half: Die Reise einer Entwicklerin als Pfad mit drei Meilensteinen für Testing, Sicherheit und Performance, vom Code-Editor zur veröffentlichten App, flache Vektorillustration

 

  • Testing — Bugs abfangen, bevor sie in Produktion gehen
  • Security — Schwachstellen früh erkennen
  • Performance — Code schreiben, der skaliert
Softwareentwicklung mit GitHub Copilot

Copilot macht Testen leichter

nanobanana: half: Ein KI-Assistent generiert Testcode auf dem Bildschirm einer Entwicklerin, mit grünen Häkchen neben Testergebnissen, flache Vektorillustration

 

  • ✔ Ganze Test-Suites generieren
  • 💡 Edge Cases finden
  • 🤖 Boilerplate erledigen
Softwareentwicklung mit GitHub Copilot

Die übersehenen Edge Cases

 

def calculate_discount(price, discount_pct):
    discount = price * (discount_pct / 100)
    return price - discount

calculate_discount(50, 20)  # → 40.0 ✓

 

Aber was ist mit ...

  • Negativem price
  • discount_pct > 100
  • Bestellung mit Menge 0
Softwareentwicklung mit GitHub Copilot

[screencast]

Softwareentwicklung mit GitHub Copilot

[screencast]

Softwareentwicklung mit GitHub Copilot

Wann tiefer gehen

nanobanana: half: Eine fokussierte Softwareentwicklerin an einem Laptop, die eine Nachricht in einer KI-Chatoberfläche verfasst

Einfache Fälle

  • /tests

 

Spezialfälle

Write pytest unit tests for calculate_discount covering: negative price, discount > 100%, and empty item list. Use parametrize for edge cases.

Softwareentwicklung mit GitHub Copilot

Mehr als Unit-Tests

nanobanana: half: Eine Testpyramide mit drei gestapelten Ebenen: breite Basis „Unit-Tests“, mittlere Ebene „Integrationstests“, schmale Spitze „End-to-End-Tests“

 

  • Unit — /tests oder kurzer Prompt
  • Integration — Verbindungen der Komponenten beschreiben
  • End-to-end — gesamten Codekontext nutzen
Softwareentwicklung mit GitHub Copilot

Integrationstests

 

  • Jede relevante Datei mit #file: anhängen
  • Interaktionen und Mocking-Strategie beschreiben
  • /fixTestFailure nutzen, wenn ein Test bricht

 

Write integration tests for the checkout flow. Use #file:cart.py and #file:payment.py. Mock the payment gateway and assert that order status updates correctly.

Softwareentwicklung mit GitHub Copilot

End-to-End-Tests

 

  • @workspace findet relevanten Code automatisch
  • Funktioniert gut mit Playwright und Cypress
  • #terminalLastCommand zum Debuggen von Fehlern nutzen

 

@workspace Schreibe Playwright-End-to-End-Tests für den Registrierungsflow. Prüfe, dass die Bestätigungs-E-Mail ausgelöst wird.

Softwareentwicklung mit GitHub Copilot

[screencast]

Softwareentwicklung mit GitHub Copilot

Lass uns üben!

Softwareentwicklung mit GitHub Copilot

Preparing Video For Download...