Um zu verstehen, was eine App Factory ist, denken Sie an das Wort „multi“. Eine App Factory ist eine multidisziplinäre Entwicklungsfunktion, die mehrere Teile des Unternehmens zusammenbringt, um eine Vielzahl von Projekten zu erstellen.
Unabhängig davon, ob die App Factory zentralisiert ist oder nicht, gibt es einige Gemeinsamkeiten. Eine dieser Hauptgemeinsamkeiten, die jede App Factory berücksichtigen muss, ist die Qualitätssicherung. Ein QA-Team stellt sicher, dass jedes Projekt, unabhängig von der Geschäftseinheit oder Disziplin, die Compliance-, Branding- und Leistungsstandards des Unternehmens erfüllt.
Neugierig, wie Sie QA am besten in Ihre App Factory implementieren? Nehmen Sie sich ein Beispiel an uns. Mendixbetreiben wir ein eigenes Mendix App Factory. So gehen wir bei unserer App an die Qualitätssicherung heran.
Was ist die Mx AppFactory?
Mx AppFactory ist eine interne Einheit in Mendix die Anwendungen erstellt für Mendix mit Mendix. Daher arbeiten bei uns interdisziplinäre Entwicklungsteams an einer Vielzahl von Projekten für verschiedene Abteilungen und Interessengruppen innerhalb Mendix und Siemens.
Über das Qualitätsteam
Das Qualitätsteam ist ein funktionsübergreifender Beschleuniger, der dazu beiträgt, die Qualität der Leistungen des Mx AppFactory-Teams zu steigern. Das im Dezember 2020 gegründete Team wuchs von einem Mitglied auf ein Team von vier Qualitätsexperten an. Das Team nähert sich der Fabriklinie mit einer klaren Aussage: „Qualität ist eine Verantwortung des gesamten Teams.“ Der Testingenieur wirkt als Qualitätsexperte Qualitätsaktivitäten im Team zu leiten und voranzutreiben.
Unsere Mission
- Um AppFactory-Teams zu befähigen, erstklassige Software zu liefern und echte Botschafter für Qualität innerhalb Mendix und seine Kunden.
Wie wir unsere Mission vorantreiben
Wir verwenden das folgende Rad, um die Qualität entsprechend den AppFactory-Richtlinien sicherzustellen.
Qualitätsprüfung
Im Rahmen der Vorbereitung eines neuen Projekts müssen wir die technischen und funktionalen Aspekte des zu erstellenden Produkts verstehen. Der nächste Schritt besteht darin, das Projekt anhand der von uns gesammelten Informationen zu bewerten und die für das Projekt erforderlichen Qualitätsmaßnahmen abzuleiten. Zur Bewertung dieser Projekte haben wir eine einfache Checkliste definiert, die die Teams ausfüllen können. Die Antworten sind auf die jeweiligen Projektanforderungen und den Projektumfang zugeschnitten.
Wichtige Schwerpunktbereiche in der Bewertungscheckliste:
- Endbenutzer/Personas, die die Anwendung verwenden
- Projektdauer
- Wissen des Teams zu Fachbereich und Technologie
- Technische Aspekte des Projekts
- Art und Qualität der in der Anwendung verarbeiteten Daten
- Nicht funktionale Aspekte der Anwendung (Beispiel: Leistung, Sicherheit usw.)
- Allgemeine qualitätsbezogene Aktivitäten, die in allen Projekten üblich sind
Die Bewertungsergebnisse werden dokumentiert und in weiteren Projektphasen verwendet.
Qualitätsstrategie
Als Ergebnis der Bewertung wird eine Qualitätsstrategie auf hohem Niveau definiert, die die folgenden Aspekte abdeckt.
- Die notwendige Unterstützung durch Qualitätsexperten im Projekt
- Personas, die beim Testen berücksichtigt werden müssen
- Erforderliche Testarten (APIs/Web/Native)
- Tools zur Überprüfung der Codequalität, Sicherheitslücken und anderer Aspekte
- Erforderlicher Testautomatisierungsaufwand
- Datenqualitätsprüfungen erforderlich
- Nicht funktionale Tests (Beispiel: Leistungs-, Sicherheitstests usw.) erforderlich
- Allgemeiner Testaufwand erforderlich
Diese Qualitätsstrategie ist ein lebendiges Dokument, das sich während des Projektlebenszyklus weiterentwickelt.
Tools zur Codequalität
Basierend auf der definierten Strategie werden Tools zur Überwachung und Validierung der Codequalität eingesetzt. Qualitätsexperten erleichtern die Einrichtung und Implementierung dieser Tools.
Nachfolgend sind die Tools aufgeführt, die wir hauptsächlich verwenden:
- ACR – Automatisches Code-Review-Tool für Mendix Projekte
- Snyk – Tool zum Scannen von Abhängigkeiten (3rd Party Libraries) in Mendix Projekt auf bekannte Schwachstellen und mögliche Lizenzbeschränkungen
- Veracode – Tool zum Scannen Mendix Code zur Identifikation von Risiken und Schwachstellen
Test Engineering
Im Rahmen der Qualitätsstrategie werden auch die Art und das Ausmaß der erforderlichen Tests definiert. Mit diesem Input hilft der Qualitätsexperte bei der Einrichtung und Durchführung verschiedener Testaktivitäten während des Entwicklungszyklus.
Während der Storydefinition und -entwicklung
Einige während dieser Phase durchgeführte Aktivitäten sind:
- Verfeinerung der Story, um die Testbarkeit der Story zu validieren und Testernotizen hinzuzufügen
- Überprüfung der vom Team entwickelten Unit-Tests
- Überprüfen und Validieren der Story-Akzeptanzkriterien (einige Teams führen Tests auch in Jira X-Ray als Referenz durch)
- Sicherstellen, dass Definition of Done-Elemente geschlossen sind, bevor Storys verschoben werden in Erledigt
Validierungen vor der Veröffentlichung
Einige während dieser Phase durchgeführte Aktivitäten sind:
- Überprüfen, ob alle für die Version hinzugefügten Funktionen End-to-End funktionieren
- Überprüfen, ob vorhandene Funktionen nicht beeinträchtigt werden (Regressionstests)
- Implementieren Sie nicht-funktionale Tests (dazu gehören Leistungstests, Penetrationstests usw.) gemäß den Anforderungen des Projekts.
- Sicherstellen, dass die Definition „Erledigt“ der Version eingehalten wird.
Validierungen und Produktionsüberwachung nach der Veröffentlichung
Das Team richtet einige Tests in der Produktionsumgebung ein, damit die Anwendung nach der Bereitstellung validiert werden kann. Zu den Validierungsaufgaben gehören:
- Überprüfen, ob die für die Version hinzugefügten neuen Funktionen nach der Bereitstellung funktionieren
- Beispielhafte Smoke-Tests, um zu überprüfen, ob die Kernfunktionen der Anwendung wie erwartet funktionieren
Darüber hinaus kann eine Überwachung eingerichtet werden, um Folgendes zu überprüfen:
- Anwendungsnutzung
- Anwendungsleistung
- Bewerbungsqualität
- Geschäftswert der Anwendung
Testautomatisierung
Die Testautomatisierung erfolgt je nach Projektbedarf.
- Bei Anwendungen mit REST-APIs werden Tests während der Entwicklung von Storys automatisiert.
- Bei Anwendungen ohne APIs werden Kernfunktionstests auf UI-Ebene automatisiert. Dies wird nur empfohlen, wenn die UI der Anwendung manuell getestet wird und stabil ist (keine größeren Änderungen geplant).
Alle Automatisierungstests werden in Bitbucket-Pipelines ausgeführt.
Die Tools/Frameworks, die wir für die Testautomatisierung verwenden, sind:
- Postman für die API-Testautomatisierung
- Roboter-Framework für die Testautomatisierung im Web (UI-Ebene)
Fortschritte verfolgen
Der Fortschritt der Qualitätsaktivitäten wird in einem Dashboard verfolgt und überwacht.
Praxisbeispiele
Basierend auf den Erfahrungen der Teammitglieder aus Tests Mendix und anderen Anwendungen werden Best Practices definiert und dokumentiert.
Einige im Dokument erwähnte Schlüsselbereiche sind
- Teamdenken in Richtung Qualität
- Verschiedene Testarten
- Branching- und Teststrategie für Mendix Anwendungen
- Bewährte Methoden für die Testautomatisierung
Schnelle Implementierung
Wir als Team glauben an kontinuierliche Verbesserung durch Retrospektiven und Deep-Dive-Sitzungen. Wir synchronisieren uns regelmäßig mit anderen Abteilungen innerhalb Mendix um die Arbeitsweise zu verstehen, Ideen auszutauschen und das Beste für AppFactory anzupassen.
Probleme
Auch die obige Implementierung bringt einige Herausforderungen mit sich. Hier sind nur einige davon:
- Das Mitglied des Qualitätsteams ändert seine Einstellung und ist nun ein Qualitätsexperte statt eines traditionellen Testingenieurs.
- Vermittlung einer „Qualitätsmentalität“ im gesamten Team.
- Da die Qualitätsexperten keinen Low-Code-Hintergrund hatten, mussten sie verstehen, wie Mendix Es werden Anwendungen entwickelt, um Teams besser zu unterstützen.
- Implementierung der Testautomatisierung für Teams, die keine Vorerfahrung im Testen oder in der Testautomatisierung haben.
Die zentralen Thesen
Einige wichtige Erkenntnisse aus unserer bisherigen Erfahrung:
- Beginnen Sie damit, den Prozess des Teams und seine aktuellen Qualitätsmaßnahmen zu verstehen (jedes Team hat solche).
- Produktqualität ist Teamverantwortung
- Wählen Sie Ihre Tools je nach Fachwissen und Arbeitsweise des Teams
- Qualitätsaktivitäten in die Definition of Done von Stories und Release-Prozessen aufnehmen
- Zu guter Letzt ist es sehr wichtig, dass die Qualitätskontrolle Geduld und Ausdauer erfordert.
Für weitere Einzelheiten und Fragen wenden Sie sich bitte an mich: [E-Mail geschützt]