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

Qualitätssicherung

Damit ein digitales Produkt am Markt erfolgreich ist, reicht es nicht aus, die richtigen Features in Apps und Software zu entwickeln - sie müssen auch funktionieren. Qualität ist also eine bedeutende 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 schon am Anfang des Projekts 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 ein vielfaches mehr, als wenn dieser bereits in der initialen Phase eines Projekts erkannt und behoben oder verhindert werden kann.

Bild eines Gestells mit Smartphones und Tablets. Das Gestell ist angeschrieben mit "Kepp Bugs out of Production"

Anforderungen als Herzstück des Testings

Testing gehört bei allen (digitalen) Lösungen dazu, egal ob es sich dabei um eine Mobile App, eine progressive Web App, eine Webseite oder ein IoT-Gadget handelt. Um zu wissen, was überhaupt getestet werden soll, braucht es klar definierte Anforderungen. Wir unterscheiden dabei zwischen funktionalen und nicht-funktionalen Anforderungen. Beim Erheben und Definieren der Anforderungen an dein Produkt, sogenanntes Requirement Engineering, sind wir gerne für dich da. 


Funktionale Anforderungen

Bei funktionalen Anforderungen handelt es sich in der Regel um Features, also zum Beispiel: Was passiert genau, wenn Button XY geklickt wird. Abgeleitet von diesen Anforderungen erstellen wir User Stories und definieren die Akzeptanzkriterien.User Stories und Akzeptanzkriterien sind die Grundlage für das Erstellen von Testcases, anhand derer 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 und lassen sich in Leistungs- und Qualitätsmerkmale sowie Randbedingungen einteilen. Dazu gehören also zum Beispiel Anforderungen an die Standorte oder die Performance von Servern, Datenschutzbestimmungen oder Anforderungen an die Kompatibilität von Systemen. Die Liste kann je nach Produkt schier endlos sein. Wir unterstützen dich gerne dabei die Anforderungen in deinem Vorhaben zu identifizieren.

Die richtigen Testmethoden für deine Bedürfnisse

Um sicherzustellen, dass dein Produkt gemäss Anforderungen funktioniert, wenden wir verschiedenste Methoden an. Einige davon sind Pflicht: Zum Beispiel Unit Tests, funktionales Testing, End-To-end-Tests oder Design Reviews gehören bei jedem Projekt dazu. In vielen Projekten wird diese “Test-Palette” ergänzt, und manchmal kommen ganz aussergewöhnliche Methoden zum Einsatz. Alles zu unseren Testing Services erfährst du hier:

  • 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 und Geräte. Vor allem Smartphones mit iOS oder Android als Betriebssystem, aber auch Tablets, Windows-Devices, Smartwatches und AR-Brillen wie die Apple Vision Pro. Von uns entwickelte Softwareprodukte testen wir auf diesen Geräten - zusätzlich zu Tests in der Cloud mit virtuellen Devices.

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.

App und Web Testing Tools

Wichtig für die Qualitätssicherung ist die Nachvollziehbarkeit und Dokumentation: Was hat wann unter welchen Bedingungen wie funktioniert? Die Dokumentation hilft, neu auftretende Probleme effizient zu beseitigen, aber auch Qualität nachweisen zu können.

Zu den wesentlichsten Tools gehören dabei die Entwicklungsumgebungen (integrated development environments, IDEs) selbst wie Apple Xcode, Android Studio, Visual Studio Code und weitere. Für die Verwaltung von Testfällen und das Durchführen von Testruns verwenden wir Testrail. Bugs die beim Testen, oder schlimmer: im laufenden Betrieb auftauchen, werden anschliessend im jeweiligen Projektmanagement-Tool erfasst und behoben.  

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. Deshalb sind wir auch nach ISO 27001 zertifiziert.

Zur Übersicht
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.
Ariani Nui Luh
Ariani Ni Luh
Quality Assurance
Ihr Blick für Ästhetik zeigt sich in ihrer Vorliebe für Sukkulenten und dem stets schön angerichteten Zmittag, das sie jeweils dabei hat. Dieser Blick ist als Testerin natürlich Gold wert und erlaubt ihr, jede noch so kleine Unregelmässigkeit zu entdecken. Obwohl sie von sich sagt, dass sie eher ein Katzen- als eine Hundemensch sei, sichert sie nicht nur die Qualität unserer Projekte, sondern bringt Bürohund Bruno auch die besten Tricks bei.
Marc Loup
Marc Loup
Quality Assurance
Früher hat er seine Gegner im Tennis vom Platz gefegt, heute testet er mit der gleichen Präzision unsere Software. Als Vize-Schweizermeister im (namentlich sehr passenden) Spiel «Mindbug» hat er ein Händchen für strategische Züge, gutes Timing und das aufmerksame Studieren seines Gegenübers. Diese Skills nutzt er auch bei der Qualitätsprüfung unserer Projekte. Er spielt Bugs gekonnt aus und sorgt dafür, dass unsere Entwicklungen fehlerfrei in die nächste Runde gehen.
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