smartfactory_166

Jedes Produkt, dass wir bei Smartfactory entwickeln, durchläuft mehrere Testphasen bevor es final der Kundin übergeben wird. Sobald unser Produkt aus Entwicklersicht fertig ist, prüfen wir es auf Herz und Niere mit dem Ziel, es möglichst «kaputt» zu machen. Dadurch versuchen wir die echte Welt zu simulieren und den realen Nutzern zuvor zu kommen. Nur so haben wir die Möglichkeit ein qualitativ hochwertiges Produkt zu schaffen. Unsere Produkte durchlaufen folgende Prüfstufen:

«Unit Testing»: Der Code für den Code

Die ersten Tests die unsere Produkte durchlaufen sind sogenannte «Unit-Tests». Bei dieser Form des Softwartestings werden einzelne Einheiten oder Komponenten einer Software getestet. Das Ziel ist zu validieren, ob jede Einheit des Software-Codes die erwartete Leistung erbringt. Unit Testing wird während der Entwicklung (Codierungsphase) einer Anwendung von den Entwicklern durchgeführt.

Wozu Unit Tests?

  • Unit-Tests helfen, Fehler früh im Entwicklungszyklus zu beheben und Kosten zu sparen.
  • Sie helfen den Entwicklern, die Testcodebasis zu verstehen und ermöglichen es ihnen, Änderungen schnell vorzunehmen
  • Gute Unit-Tests dienen als Projektdokumentation
  • Unit-Tests helfen bei der Wiederverwendung von Code.

Was für Tools nutzt Smartfactory?

Die Android-Entwickler arbeiten hauptsächlich mit junit und mockito. iOS verwendet XCTest builtin in Xcode und das Web-Team nutzt das built-in Django Unit Test Module für Backend und das built-in Python Test Module.

Schnittstelle Projektmanager

Unsere Produkte und dessen Komponenten werden grundsätzlich auf Basis von Stories in einem ClickUp Board gebaut. Das heisst, sobald der Entwickler eine Aufgabe erledigt hat, wird sie an die Projektleiterin zur Prüfung übergeben. Sie schaut sich dann genau an, ob die gewünschten Aufgaben korrekt und vollständig umgesetzt wurde und schiebt die Story gegebenenfalls wieder zurück an den Entwickler mit Kommentaren. Die Projektleitung ist die Schnittstelle zwischen Kunde und Entwicklerin und hat hier besonders die Aufgabe abzustimmen, dass die vom Kunden geäusserten Bedürfnisse erfüllt werden.

Unsere Kunden sind Teil des Teams

Ganz unterschiedlich handhaben wir das Testing mit den Kunden. Angepasst an das jeweilige Bedürfnis können unsere Kunden alle Stories selber testen oder über den Projektleiter die wichtigsten Komponenten filtern lassen. Teilweise sind die Aufgaben für die Entwicklerinnen sehr technisch formuliert, was nicht für jeden Kunden nachvollziehbar ist. Solche Stories weisen Projektleiter direkt weiter an unsere Testerin.

Natalija, unsere Testerin des Vertrauens

Sobald das Produkt «Feature Complete» ist, d.h. alle Komponenten gebaut wurden, kommt unsere In-House-Testerin Natalija in Spiel. Sie überprüft das Produkt mit dem Ziel es «kaputt» zu machen. In diesem Schritt wollen wir nämlich nicht nur herausfinden, ob Bugs vorhanden sind, sondern auch erkennen, ob Denkfehler in der Usability vorliegen. Natalija dokumentieren alle Test Cases in einem speziell von uns entwickelten Tool. Dieses Dokument wird nach Projektabschluss an den Kunden übergeben.

Optionales Closed User Group Testing

Besonders bei Produkten mit mehreren Schnittstellen oder einem grossen Nutzervolumen empfehlen wir unseren Kunden ein sogenanntes «Closed User Group Testing» durchzuführen. Dabei wird einer definierten Gruppe von Nutzern der Zugang zum neuen Produkt gegeben. Diese Gruppe testet dann in einem definierten Zeitraum die Software unter echten Bedingungen und gibt abschliessend ein konsolidiertes Feedback. darauf basierend werden zusätzliche Korrekturen oder Änderungen vorgenommen.

Die finale Abnahme durch den Kunden

Nachdem das Produkt alle Testphasen erfolgreich durchlaufen hat, nimmt die Kundin in einer finalen Abnahme das Produkt ab.