Rolle: Automatisierung QA
Domäne: Fintech
- Stack -
Python3, Django3.2, PyUnit, Docker, PostgreSQL, Postman, Swagger
- Projektübersicht -
Kreditmanagement-Lösungssoftware – ist ein Projekt zur Automatisierung jedes einzelnen Schritts der Kreditvergabe und zur Bereitstellung durchgängiger Kreditlösungen für Kreditgenossenschaften, Finanzinstitute und alternative Kreditgeber, mit erweiterter Automatisierung für das Kreditlebenszyklusmanagement, sofortigen Kreditentscheidungen und optimiertem Risikomanagement.
Die End-to-End-Lösung für das Kreditmanagement rationalisiert den Kreditvergabeprozess, indem sie alle Kreditfunktionen in einem einzigen System konsolidiert. Sie ermöglicht es Finanzunternehmen, ihren Kunden ein nahtloses, digitales Echtzeit-Erlebnis zu bieten, und ermöglicht es Finanzinstituten, Kreditprodukte in verschiedenen Segmenten anzubieten, darunter Privat- und Geschäftskunden.
- Verantwortlichkeiten -
Auflistung meiner Aufgabenbereiche in übersichtlicher, aufgabenorientierter Form:
- Teststrategie und -planung:
- Entwickeln einen umfassenden Testplan mit Umfang, Zielen, Ressourcen und Zeitplan.
- Legen Test-KPIs fest, um die Testabdeckung, die Fehlerdichte und den Fortschritt der Testausführung zu messen.
- Testdokumentation:
- Entwerfen positive, negative und Grenzwert-Testszenarien.
- Dokumentieren automatisierte Testfälle mit Schritten, erwarteten Ergebnissen und Zielen.
- Testvorbereitung und -durchführung:
- Bereiten realistische Testdaten für gründliche Szenariotests vor.
- Automatisierte Testskripte schreiben, warten und ausführen.
- Berichterstattung und Kommunikation:
- Verfolgen und melden Test-KPIs, um sicherzustellen, dass die Ziele erreicht werden.
- Fehler dokumentieren und melden.
- Bereiten detaillierte Testergebniszusammenfassungen vor und generieren managementorientierte Testberichte.
Wenn das Team keine anderen QA-Mitglieder hat, können Sie Entwickler in Sachen Testverfahren, Codequalität und Automatisierungstechniken anleiten und so den Grundstein für zukünftige QA-Mitglieder legen.
- Herausforderungen & Lösungen -
Die größte Herausforderung bestand darin, mehrschichtige Tests – darunter Funktions-, Integrations- und anwendungsfallbasierte End-to-End-Tests – für ein schlecht konzipiertes, fehlerhaftes monolithisches Projekt durchzuführen, um sicherzustellen, dass die Software sowohl die funktionalen als auch die geschäftlichen Anforderungen erfüllt.
Dafür musste ein Refactoring durchgeführt werden. Eine modulare monolithische Architektur mit einer geschichteten Struktur ermöglicht die Kommunikation zwischen Modulen über eine zentrale Datenbank. Dieser Ansatz ermöglicht eine saubere Trennung der Belange bei gleichzeitiger Beibehaltung einer überschaubaren Komplexität innerhalb einer einzigen, einheitlichen Codebasis.
Wenn das Team mehr Freiheit und Ressourcen hätte, um weiter zu gehen, könnte sich die Architektur zu einem auf Microservices basierenden Design entwickeln. Dies würde modulare Dienste wie Loan Origination Service, Credit Decisioning Service, Loan Management Service, Debt Collection Service, Loan Servicing Service und Reporting and Analytics Service umfassen. Darüber hinaus würden gemeinsame Dienste Benutzerauthentifizierung und -autorisierung, einen Event Broker, verteiltes Datenmanagement, eine Daten- und Integrationsschicht für API-Interaktionen und DTOs und möglicherweise sogar ein maschinelles Lernen für prädiktive Modelle oder eine Entscheidungsmaschine für regelbasierte Entscheidungen umfassen.
- Reflexionen & Erkenntnisse -
- Schlussfolgerungen:
- Wenn Sie bei einem Projekt unterbesetzt sind, kann dies die Entwicklung von Hard- und Soft Skills beschleunigen, da Sie häufig gleichzeitig Rollen wie Leiter der Qualitätssicherung, Manager und DevOps übernehmen. Diese intensive Arbeitsbelastung kann jedoch zu Burnout führen.
- Übermäßiges Arbeiten macht wenig Sinn, insbesondere wenn Unternehmen ihre eigenen Interessen über das Wohl der Mitarbeiter stellen.
- Wenn den Gründern selbst die echte Leidenschaft für das Produkt fehlt, reicht möglicherweise selbst ein konkurrenzfähiges Gehalt nicht aus, um die Ingenieure zu einem vollen Engagement bei der Zusammenarbeit zu motivieren.
- Was gut funktioniert hat:
- Verwenden von Domain-Driven Design (DDD) zum Strukturieren eines geschichteten Systems.
- Anwendung von Test-Driven Development (TDD) während Teilen des Refactorings und Backend-Tests.
- Eine gut ausgeführte Frontend-Schicht, die es den Gründern ermöglichte, das Produkt an Kunden in entfernten Regionen zu vermarkten und zu verkaufen.
- Was könnte verbessert werden:
- Bessere Planung und Verwaltung, effizienterer Code, robustere Tests und Infrastruktur.