Was macht gute Software aus? (AAU – anonyme Apple User zur Qualität)

 

Hallo, ich bin Andreas und ich bin Mac-User!
Was für den einen oder anderen abfälligen Blick im Team sorgt..
Doch, dass ich Apple-Produkte nutze hat einen Grund!
Und der liegt in der Software-Qualität.

Ein kleiner Blick in die Vergangenheit:

2008; nach meinem ersten Jahr der Selbstständigkeit (Vertriebsaussendienst, Road-Warrior) reichte mein 1,6k€ teures Windows-Notebook, nach 2 Jahren imtäglichem Einsatz, den Löffel. Es musste also leistungsfähiger Ersatz her. Da auch das Enterprise-Office-Paket stark angejahrt war, ging die Rechnerei los. Neues Notebook+Office-Paket+X+Y+Z= viel Geld.

Zu dieser Zeit warb Apple mächtig um Umsteiger von Windows, mit Boot Camp und Parallels Desktop. Daher wagte ich das Experiment, da auch der Windows-Ersatz teuer geworden wäre, und schaute, was die Mac-Welt zu bieten hat. Gut, das Design und die Qualität der Komponenten hatten natürlich auch einen gewissen Einfluss. So kam ich zu meinem ersten MacBookPro mit iWork.
Die Feststellung nach wenigen Wochen? Große Verwunderung. Es war tatsächlich möglich an einem System zu arbeiten, das stabil läuft!
Keine Abstürzenden Office-Anwendungen, die einen um Stunden zurückwerfen, weil mal wieder vergessen wurde Zwischenstände zu speichern. Kein Blue-screen. Sofortige Einsatzbereitschaft nach dem Wecken aus dem Stand-by. System-Neustart.. wie geht das?

Kurz um, das Ding lief einfach und nervte nicht.
Selbige Beobachtung machte ich beim Wechsel von meinem Motorola Milestone auf mein erstes iPhone. Snappy in der Bedienung, stabil und funktional.
Langsam zeigten sich auch die Vorteile des Öko-Systems. Smartphone und Mac-Book funktionierten einfach zusammen. Keine Schmerzen, einfach nur Funktion.

Doch warum schreibe ich das auf dieser Seite??
Diese Erfahrung war für mich prägend in Sachen Software-Qualität!

Ok, mittlerweile bin ich in dieser Richtung auch verwöhnt und ertrage geringe Qualität in Software oder dem UI nur noch schwer. Seit dieser Zeit verstand ich Michaels Job des Softwaretesters und Software Qualitätsmanagers erst richtig.
MacOS und iOS laufen in ganz weiten Strecken absolut problemlos. Man kann davon ausgehen, dass schon während der Entwicklung kontinuierliches Testing stattgefunden hat. Und dass im Team einige Software-Qualitätsmanager sich viele Gedanken gemacht haben, wie man diese Software richtig testet. Da waren sicher gigabyteweise Testpläne erstellt, die jeden noch so unwahrscheinlichen Fall abdeckten. Diese Testpläne wurden durchgearbeitet, dann wurde gefixt. Und dann wurden sie noch einmal durchgearbeitet, dann wurde gefixt, und so weiter und so fort.

Dieser Aufwand kostet natürlich Zeit und Geld, einer der Gründe warum Produkte mit dem angebissenen Apfel doch etwas teurer sind als das Plaste-Notebook mit WindowsXYZ vom ortsansässigen Elektronik-Markt.
Auf lange Frist macht sich diese Qualität aber auch bemerkbar!

Eine Bitte an alle Softwareentwickler:

Wenn Ihr Software entwickelt, dann lasst sie bitte von einer anderen Person, die nicht in der Entwicklung beteiligt war, testen. Gut wäre es wenn Ihr hier für selbst einen umfangreichen Testplan erstellt habt. Noch besser ist es, wenn dieser Testplan von jemandem, basierend auf eurer Dokumentation oder Spezifikation erstellt hat. Diese unabhängige Person sollte den Plan nur abarbeiten und testen bis sie die Nase voll hat. Und dann bittet die nächste Person das Selbe zu tun. Und dann eine dritte Person. Und den nächsten, und den nächsten. Denn nur so, durch Softwaretest und Bugfixing, wird daraus ein Stück Software, was man gerne benutzt, weil es einfach funktioniert!

Wir helfen euch hierbei gerne, wenn Ihr selbst keine Zeit, keine Lust oder nicht genügend belastbare Mitarbeiter oder Bekannte habt 😉

Schaut hierzu vorbei auf: www.qa4software.deQA4software by AugMenVis

Umfang der Testaktivitäten

Testen ist aufwändig, und scheint zunächst keinen zusätzlichen Nutzen zu bergen. Die Idee ist nicht, dass man zusätzlichen Ertrag erzeugt, sondern Schaden im Vorfeld vermeiden kann.
Doch wie viel Aufwand soll ins Testing investiert werden?
Diese Frage kann nur das Produktteam in seiner Gänze beantworten.
Eine pauschale Antwort lässt sich auf diese Frage nicht geben.
Der Umfang der Software-Tests hängt davon ab, wie viel Zeit investiert werden kann – auf der einen Seite – und auf der anderen Seite, wie hoch der Schaden ist, wenn sich im ungetesteten Teil Fehler finden. Einer Raumsonde, die Sie auf die Reise zum Mars schicken, können Sie schlechter ein Software-Update einspielen als dem Web-Shop, den Sie auf der eigenen Homepage verwenden…
Als Software-Tester / Test-Manager habe ich mir über die Jahre angewöhnt zu behaupten, dass nur Code, der durch dedizierte Test-Team-Mitglieder überprüft (und abgenickt!) wurde, als funktionierend anzusehen.
Im Umkehrschluss heißt das: Alles, was ein Tester sich nicht angeschaut hat, ist als defekt anzusehen!
Das mag im ersten Moment hart und zynisch klingen, rettet aber vor unangenehmen Überraschungen…
Insofern empfehle ich, dass der komplette Produktumfang zumindest einmal stichpunktartig geprüft werden sollte.
Je näher der Programmteil mit solchen Teilen verknüpft ist, die einer geplanten Änderung unterlagen, desto größer ist die Chance, dass sich hier Fehler ergeben. Und, je mehr Fehler sich in einem Bereich finden, desto „lohnender“ ist es, sich diesen Bereich näher anzuschauen.
Auf der einen Seite haben wir also nun die Bereiche identifiziert, die besonders wichtig zu testen sind. Wenn Sie, auf der anderen Seite, ein Produkt erweitern, gibt es sicherlich gibt es auch in Ihrer Software Programmteile, die schon seit Jahren unverändert gut laufen. Bei diesen Programmteilen kann man sich erlauben, die Tests in geringerer Intensität durchzuführen.
In meiner Rolle als Test-Managers besteht die Aufgabe auch darin, in der zur Verfügung stehenden Zeit die optimale Testabdeckung anzustreben. Daher werde ich mich hier immer wieder, gerade zu Anfang des Projekts, intensiv mit dem Entwicklungs-Leiter und dem Projekt-Manager beraten, wieviel Zeit für welche Test-Aktivitäten investiert werden kann, und wo diese Zeit am sinnvollsten investiert ist.
Auch das ist ein Prozess, der erlernt werden will.
Und wenn das Team sich zuviel vornimmt?
Dem Produkt-Verantwortlichen obliegt es dann ggf., einen Liefertermin anzupassen, den Projektumfang zu reduzieren oder mit einem (potentiell) fehlerbehafteten Produkt zu leben.
Um es nicht so weit kommen zu lassen, sollte die Entwicklung die Software-Qualitätssicherung, das Testing als Teil der notwendigen Arbeit akzeptieren.

Software-Testing – Warum und Wie?

Warum Software-Testing?

Wenn vom Software-Test die Rede ist, kommen häufig Fragen auf, warum explizite Tests erforderlich seien. Man habe doch beim Entwickler gesehen, dass die Software die gestellte Aufgabe erfüllt und auch im Prototypen sieht doch alles gut aus.
Software-testing
Software-Tester bei der Arbeit

Das muss doch reichen?

Die „Zunft“ der Software-Tester und Test-Verantwortlichen sieht diese Punkte als zwingende Testteile, doch sind noch weitere Fragestellungen im Software-Test zu beachten.
Zunächst wollen wir uns darauf einigen, dass ein Test immer einen Vergleich zwischen einem Soll-Zustand und einem Ist-Zustand darstellt.
Der Soll-Zustand sind die Anforderungen, die an die Software gestellt werden, der Ist-Zustand ist das zu liefernde / gelieferte Software-Produkt.
Die Anforderungen sind zum Teil impliziter Natur („die Software soll nicht abstürzen“, „die Software soll die umgebende Hardware nicht beschädigen“, „die Software soll sicher sein“, „die Software soll intuitiv bedienbar sein“).
Diese Anforderungen werden häufig nicht formuliert oder näher spezifiziert.

Wie funktioniert Software-Testing?

In der Spezifikation, dem Lastenheft findet man jedoch die expliziten Anforderungen.
Auf Basis Ihrer Anforderungen entwickeln wir für sie den Testplan.
Dieser Testplan soll reproduzierbare Testergebnisse liefern, sowohl jetzt wie auch in 5 Jahren.
Abgrenzen muss man noch den Begriff des Testens von der Fehlersuche:
Der Test ist ein Soll-/Ist-Vergleich, dessen Detailgrad von der Tiefe des Testplans abhängig ist. Der Test kann Abweichungen („Bugs“) zu Tage führen, die der Entwickler dann untersuchen kann. Ein Test ist aber in der Regel keine detaillierte Fehlersuche oder eine Bereitstellung einer Lösung. Diese obliegt dem Entwickler, der Tester kann lediglich einen Vorschlag machen.
Dies dient der Wahrung des 4-Augen-Prinzips und der Objektivität des Testers.
Umfang des Software-Testing
Angebotsübersicht zur Software-Qualitätssicherung