Quality

Qualität ist für Apps with love, wenn unsere Kunden mit unserem Service über den ganzen Entwicklungsprozess eines Produkts zufrieden sind. Qualitätsmanagement und die Qualitätssicherung sind Erfolgsfaktoren für Apps with love. 

Qualitätssicherung

Um am Markt erfolgreich zu sein, reicht es nicht nur aus die richtigen Tools, Apps und Software zu entwickeln. Qualität ist eine bedeutender Komponente für den Erfolg eines digitalen Produkts. 

Unser interner Qualitätssicherungsprozess hilft uns, frühzeitig die wichtigsten Fragen zu Verantwortlichkeiten, Risiken, Anforderungen, Akzeptanzkriterien und Systemzusammenhänge zu klären und die Qualitätssicherungsmassnahmen zu planen, um das Auftreten von Fehlern im System schon während einer frühen Projektphase zu verhindern. 

Keep Bugs out of Production

Stell dir vor du hast nicht nur eine gute Idee, sondern das passende Budget, ein gutes Entwicklungsteam und das Projekt liegt gut in der Zeitplanung. Obwohl Konzepte, Design und Technologien passen, kommt es immer wieder zu Fehlern während der Entwicklung. Je später solche Fehler in der Entwicklungsphase entdeckt und behoben werden, desto grösser werden die Kosten. Einen Fehler in einem produktiven System zu beheben kostet beispielsweise bis zu 500 Mal mehr, als wenn dieser bereits in der Initialen-Phase eines Projekts erkannt und behoben werden kann. Aus diesem Grund liegt uns Quality Assurance bereits ab Beginn einer guten Idee, während der Konzeption und Design sowie in der Entwicklung und im operativen Betrieb am Herzen.

Anforderungen als Herzstück des Testings

Wir testen sowohl funktionale als auch nicht funktionale Anforderungen deines digitalen Produkts, egal ob es sich dabei um eine Mobile App, eine progressive Web App, eine Webseite oder ein IoT-Gadget handelt.


Funktionale Anforderungen

Deine funktionalen Anforderungen bringst du eventuell bereits in die Entwicklung mit. Beim Erheben und Definieren deiner Anforderungen, sogenanntes Requirement Engineering, sind wir gerne für dich da. Aus den Anforderungen heraus erstellen wir User Stories und definieren die Akzeptanzkriterien. Diese funktionalen Anforderungen sind die Grundlage für das Erstellen von Testcases, anhand deren wir das Testing durchführen und dokumentieren.


Nicht funktionale Anforderungen

Nicht funktionale Anforderungen beschreiben die Art und Weise und unter welchen Bedingungen sich eine Funktion verhalten soll. Typischerweise werden mit nicht funktionalen Anforderungen ein zugrunde liegendes Bedürfnis an eine Anforderung bestimmt. Funktionale Anforderungen lassen sich in Leistungs- und Qualitätsmerkmale sowie Randbedingungen einteilen.

Ein typisches Leistungsmerkmal wäre zum Beispiel: ein System kann 1000 Anfragen pro Minute ohne Einschränkungen der verfügbaren Ressourcen verarbeiten.

Ein typisches Qualitätsmerkmal wäre zum Beispiel: Für die Qualitätssicherung werden die Qualitätsmodelle nach ISO 25000 eingesetzt. 

Ein typische Randbedingung wäre zum Beispiel: Das System muss vollumfänglich GDPR konform entwickelt werden. 

Keine Angst, wir helfen dir gerne, die nicht funktionalen Anforderungen gemeinsam zu erheben.

Die richtigen Testmethoden für deine Bedürfnisse

Fürchtest du dich vor schlechten Bewertungen und Feedbacks zu deinem digitalen Produkt? Muss euer Produkt den internen Firmen Qualitätsstandards entsprechen? Soll gegen Ende euer Entwicklung eine Absicherung her, dass euer Produkt den Usability Anforderungen entspricht? Been there, done that. 

Wir helfen dir gerne mit einer gezielten Auswahl an Tests, die Kundenzufriedenheit deiner Endnutzer zu erhöhen und stellen sicher, dass alle Funktionalitäten auf Herz und Nieren überprüft werden.

  • Funktionales Testing

    Beim funktionalen Testen wird überprüft, ob die Funktion eines Produkts das tut, was in den Anforderungen und den dazugehörigen Akzeptanzkriterien definiert wurde. Eingaben werden getätigt und Abläufe durchgespielt, um zu vergleichen ob das Resultat dem erwarteten Ergebnis entspricht.

  • End-to-End Testing

    Die sogenannte End-to-End-Tests ist eine Technik um zu testen, ob sich Abläufe innerhalb eines digitalen Produkts aus Sicht eines Users von Anfang bis Ende wie erwartet verhalten. Dabei werden mehrere User Stories zusammenhängend getestet, mit dem Ziel, Systemabhängigkeiten festzustellen und die Datenintegrität zwischen verschiedenen Systemen sicherzustellen. Dabei werden auch Schnittstellen, die Kommunikation mit anderen Systemen sowie Datenbanken in das Testing einbezogen.

  • Compatibility Testing

    Ein wichtiger Teil des Testings ist die Kompatibilität einer Applikation oder einer Webseite. Die Funktionalitäten und das Design sollten auf unterschiedlichen Geräten, Browsern, mit verschiedenen Betriebssystemen und Plattformversionen funktionieren. Beim Compatibility Testing wird überprüft, ob sich die Funktionalitäten gleich verhalten, ob Abweichungen auftreten oder die Funktion gar nicht ausgeübt werden kann. Da es viele verschiedene Bildschirmgrössen und - Auflösungen gibt, sollte überprüft werden, wie sich das Design und Layout auf den mobilen Geräten und Browsern verhält. Neben der Displaygrösse, variieren je nach Gerät oft die CPU und RAM. Insbesondere auf alte Geräten können schnell einmal Fehler auftauchen. Bevor die Entwicklung gestartet wird, sollte die Zielgruppe klar sein, um definieren zu können auf welchen Geräten, Betriebsystemen, Plattformversionen und Browsern die Applikation bzw. Webseite laufen soll.

  • Performance Testing

    Möchtest du wissen ob deine Software auch unter erhöhter Nutzung noch einwandfrei läuft?

    Performance Testing kann in zwei Kategorien eingeteilt werden: Load- und Stresstesting.

    Nach Definition messen wir beim Loadtest die Performance des System unter einer definierten Last (User Abfragen). Dabei wird eine bestimmte Anzahl an Nutzern (zum Beispiel 1000) simuliert, die parallel auf bestimmte Komponenten der Software zugreifen und Aktionen ausführen. Daraus kann analysiert werden, wie Applikationen und Server mit einer erhöhten Anzahl an Anfragen (zum Beispiel zu Stosszeiten) umgehen und ob das System unter erhöhter Last fehlerfrei funktioniert.

    Im Gegensatz zum Loadtest wird während eines Stresstests das zu testende System mit einer maximalen Last getestet, um Erkenntnisse über mögliche Optimierungen des System zu erlangen. Das Ziel eines Stresstests ist es, das System mit einer sehr hohen Anzahl an Nutzer zu beeinträchtigen und langsam bis zum Totalausfall zu bringen. Dabei wird beobachtet wie sich das System nach dem Ausfall verhält und ob es sich von selbst wiederherstellen kann. Zusätzlich ist es so möglich eine Aussage zu treffen, unter welcher Anzahl an gleichzeitigen Interaktionen, ein System zu erliegen kommt.

  • Security Testing

    Mit Security Tests überprüfen wir Applikationen und Systeme auf Schwachstellen und Sicherheitslücken, welche Hacker oder unautorisierte Personen ausnutzen könnten. Wir zeigen mögliche Bedrohungen und Risiken auf, um Verluste von vertraulichen Informationen zu vermeiden. Mögliche Security Tests sind beispielsweise Vulnerability Scanning, Penetration Testing, Risk Assessment, Security Audit oder Ethical Hacking.

  • Usability Testing

    Wir möchten das Leben unserer Nutzer vereinfachen. Usability bezeichnet die User Benutzerfreundlichkeit in der Anwendung von Interaktionssystemen. Bei Usability Testings werden die Effektivität und Effizienz, sowie die User Zufriedenheit gemessen und mögliche irritierende und hinderliche Issues analysiert. “Echte” User werden für einen Usability Test eingeladen, um die Produkte und Systeme auf ihre Usability zu überprüfen. In einer früheren Entwicklungsphase eignen sich auch heuristische Evaluationen mit Usability Experten. Mit Usability Testings können die überwiegende Mehrheit an Issues frühzeitig erkannt und kostensparend(er) umgestaltet beziehungsweise benutzerfreundlich umgesetzt werden.

  • Test Automation

    Automatisiertes Testen lohnt sich insbesondere für grosse und umfangreiche Projekte. Mit automatisierten Tests lassen sich die Aufwände für Regression Tests sowie sich oft wiederholende Tests reduzieren. Wichtig ist es, eine Automatisierungsstrategie über die zu erreichende Qualität der Software zu erarbeiten bevor mit Automatisierungen gestartet wird. Bei Testautomatisierungen wird oft der Fokus zu stark auf das GUI gelegt, weshalb wir empfehlen grundsätzlich die Automatisierungsebenen der Testpyramide zu berücksichtigen. Dabei ist ein Grossteil der zu automatisierenden Tests auf unterster Ebene (Unit-Test) und zweit unterster Ebene (API- und Integrationstests), auf der oberstersten Ebene (GUI-Ebene) sollte wenn möglich nur wenig automatisiert werden, da der Wartungsaufwand der Testskripte äusserst hoch und das Ausführen der Tests sehr aufwändig ist. Zudem müssen das richtige Framework/ Tool aufgesetzt und die Automatisierungsumgebung vorhanden sein.

    Mit Automatisierungen kann die Qualität einer Software massiv gesteigert werden. Aber Automatisierungen sind aufwendig und werden oftmals unterschätzt. Zögere nicht alle deine Fragen zu stellen, wir beraten dich gerne.

  • Unit Testing

    Das Unit-Testing ist eine Software-Testmethode, bei der einzelne Einheiten des Quellcodes (sogenannte “Units”) getestet werden, um festzustellen, ob sie funktionstüchtig sind. Unit Tests spielen bei Smart Contracts eine zentrale Rolle, da der Quellcode nachgehend nicht mehr geändert werden kann.

  • In-The-Wild-Testing

    Ziel des In-The-Wild-Testing ist es, eine Applikation unter realen Bedingungen zu verwenden. Wir versetzen uns beim Testen deiner Applikation oder Webseite in die Lage des Endusers. Stell dir vor, du entwickelst eine Sport App, und die App wird beispielsweise nur im Office unter Laborbedingungen getestet. Wir gehen mit deiner App und den dazugehörigen Sportuhren und Trackern in die Natur zum Sport, wir probieren die Features aus oder Testen diese anhand von definierten Szenarien und Testfällen, um alle Funktionen unter realen Bedingungen zu prüfen. Mit Hilfe des In-The-Wild-Testings testen wir das gesamte digitale Erlebnis.

Mobile Device Lab

In unserem Mobile Device Lab befinden sich weit über 100 Android und iOS Geräte, zudem haben wir etliche Smartwatches. Unsere entwickelten Softwareprodukte, testen wir unter anderem auch auf echten Geräten. Das Testen unter realen Bedingungen mit echten Geräten und unterschiedlichen Betriebssystemversionen ist relevant, um beispielsweise die Interaktion mit Gerätesensoren, GPS, Bluetooth oder die Schnittstellen mit externen Geräten und Maschinen zu prüfen. Zudem ist es wichtig auch einen visuellen Eindruck des digitalen Produkts zu erhalten und Funktionen wie Scrolling, Transitioning, Gesten und Bewegungen prüfen zu können.

Wir überprüfen regelmässig die Verkaufs- und Nutzungszahlen der wichtigsten und am meisten genutzten Geräte und Betriebssystemversionen des Marktes. Ein guter Mix zwischen echten Geräten, Simulatoren und Emulatoren sollte in jeder Qualitätsstrategie definiert werden, um eine hohe Geräteabdeckung zu erreichen.

Zertifizierte Qualitäts- und Umwelt- und Informationssicherheits-managementsysteme

Damit die Prozess-, Produkt- und Servicequalität kontinuierlich überprüft und verbessert werden, hat Apps with love ein etabliertes Qualitätsmanagementsystem (QMS), welches nach ISO 9001 zertifiziert ist. Hauptziel des QMS ist es, die angebotenen Dienstleistungen zu verbessern und die Einhaltung von Qualitäts- und Sicherheitsstandards sicherzustellen. 

Da uns bei der Erreichung dieser Qualitätsstandards und im Rahmen der kontinuierlichen Verbesserung unserer Prozesse auch die Umwelt am Herzen liegt, verfügen wir ausserdem über ein zertifiziertes Umweltmanagementsystem nach ISO 14001.

Und selbstverständlich ist das Management der Informationssicherheit für uns als Digitalagentur zentral. Dehalb sind wir auch nach ISO 27001 zertifiziert.

Zur Übersicht
Martin Mattli
Martin Mattli
Head of Operations & Quality Management
Theoretisch kann er Flugzeugturbinen auseinandernehmen und wieder zusammenbauen – während des Fluges. Dies wurde ihm aber zu langweilig und er ist nun bei uns für die technische Qualitätssicherung zuständig. Wir sind save!
Fabienne Meister
Fabienne Meister
Quality Management & People Development
Probleme lösen gehört zu ihren leichtesten Übungen. Sie kann mit acht brennenden Bällen jonglieren während sie auf ihrem blinden Shetland Pony Geländesprünge übt. Easy!
Simon Gottstein
Simon Gottstein
Project Management & Lead QA Team
Er mag nicht nur in Gewässer aller Art abtauchen, sondern auch in die Tiefen unserer Projekte. Nebst Dive-Master ist er auch Master der guten Laune, Überzeugungsarbeit und Kaffee & Kuchen Pause. Mit seinem breiten Erfahrungsschatz hat er gut lachen - wer Projekte mit ihm umsetzt, ist stets bestens unterhalten.
Wir haben grad gemerkt, dass du mit Internet Explorer surfst. Unsere Webseite sieht damit leider nicht so schön aus.

Du willst erfahren warum das so ist?
Wir haben darüber geschrieben.

Zum Blog

Du brauchst Hilfe bei der Umstellung?
Melde dich. Wir helfen gern.

Kontakt

Einen neuen Browser installieren?
Hier gibt es Auswahl.

Browser