Software TestingQualitätssicherung und Testen
 

Qualitätssicherung und Testen

Wir leisten hohe Qualität unserer Produkte, und diese Tätigkeit ist standardisiert. Manchmal nehmen wir aber diese Tätigkeit als ein separates Projekt auf Auftrag unserer Kunden vor. Es gibt zwei Type solcher Projekte:

Automatisches Testen

Das automatische Testen ist nur dann aktuell, wenn das Programm umfangreich und kompliziert ist und manuelles Testen deswegen zu aufwändig wird. Wenn sich das Programm ständig ändert und die Notwendigkeit eines regressiven Testens von bereits entwickelten Teilen besteht, ist das automatische Testen die einzige vernünftige Lösung. Man muß es aber berücksichtigen, daß die Testsentwicklungsaufwände wesentlich höher als Aufwände für manuelles Testen sind. Außerdem braucht man entsprechende Fachkräfte für die Testscriptsentwicklung. Aus diesen Gründen lohnt sich das Outsourcing des automatischen Testens.

Wir haben Erfahrung in der Testscriptsentwicklung. Sie können entsprechende Projekte in unserem Portfolio kennenlernen.

Die Testscriptsentwicklung besteht aus folgenden Etappen:

  • Installierung. Manchmal kann die Installierung zu einem komplizierten Problem werden, insbesondere wenn nur eine einzige Programminstallierung vorhanden ist oder die Installationsdokumente fehlen. In diesem Fall werden Dienstreisen für die Installierung der zu portierenden Software oder für eine Schulung notwendig.
  • Schulung. Hiermit wird eine Personalschulung über den Tätigkeitsbereichs, wofür die Software entwickelt wird, und über die Software gemeint. Öfters reichen allein Dokumente wie User Guide nicht, weil bestimmte Besonderheiten des betroffenen Tätigkeitsbereichs offen bleiben. In komplizierten Fällen ist ein unmittelbares Zusammenwirken mit dem Auftraggeber erforderlich.
  • Einschätzung und Planung. In dieser Etappe werden die Testziele festgelegt, nämlich für welche Programmteile mit welcher Deckung man Funktionstests entwickeln muß. Der Arbeitsumfang und die Erfüllungsfristen werden eingeschätzt. Es ist zu merken, daß der Testentwicklungsplan mit dem Softwareentwicklungsplan verbunden ist, wenn beides parallel geschiet. In diesem Fall ist eine enge Zusammenarbeit mit dem Entwicklungsteam erforderlich (s. weiterfolgende Anmerkungen).
  • Entwicklung der Funktionstests und Testdaten.

Unterwassersteine. Bei der Übergabe der Testskriptsentwicklung an die andere Firma ist es zu berücksichtigen, daß die Änderung der Benutzerschnittstelle (user interface) zur Änderung der Testskripts und somit zur Erhöhung der Aufwendungen führt. Deswegen muß man die änderungsbeständigen Programmteile für die Entwicklung der Funktionstests übergeben. Die operative Kommunikation spielt hier auch eine wichtige Rolle.

Belastungstesten

Beim Belastungstesten muß man die Durchsatzrate, Verläßlichkeit und Skalierbarkeit des Programms prüfen. Dafür simuliert man das Verhalten einer großen Zahl von Clients, die mit dem zu testenden Programm arbeiten, mittels spezieller Belastungstestsysteme. Solche Simulator des Verhaltens realer Systemnutzer nennt man Testclients. Für das Belastungstesten muß man Testclients und Testdaten erstellen, den Test durchführen und seine Ergebnisse auslegen. Wegen eines großen Arbeitsumfangs und des Bedarfs an entsprechenden Fachkräften kann sich das Outsourcing des Belastungstestens als eine vorteilhafte Lösung erweisen.

Mit den Projekten, wo wir das Belastungstesten geleistet haben, können Sie sich in unserem Portfolio bekannt machen.

Das Belastungstesten besteht aus folgenden Etappen:

  • Installierung, Schulung, Einschätzung und Planung. Diese Etappen entsprechen etwa den gleichen im automatischen Testen.
  • Testscripteentswicklung. Das ist die meist komlizierte Etappe. Mit einem komlizierten System können Clients arbeiten, die diverse Ziele haben. Ihr Verhalten wird somit auch unterschiedlich. Um eine wirklichkeitsnahe Testbelastung des Systems zu modellieren, muß man typische Szenario des Benutzerverhaltens feststellen und entsprechende Testscripts entwickeln. Sehr behilflich können dabei die Daten bez. Userhandlungen sein, die auf dem Server akkumuliert werden. Wenn solche Daten fehlen, muß man es versuchen, wirklichkeitsnahe Testscripts selbständig zu entwickeln. Die Wahrscheinlichkeit der Ergebnisse des Belastungstestens bestimmt den Erfolg.
  • Testclientsentwicklung. Die Belastungstestsysteme sind visuelle Mittel oder API, womit Serverabrufe vom Client programmiert und die Antworte abgelesen werden. Somit werden die Testclients entwickelt.
  • Testcase-Entwicklung. Ein Testcase enthält folgende Daten:
    • die Testclientsanzahl für jedes Testscript;
    • die Pausendauer für die Imitation der Denkenzeit;
    • der Arbeitsmode der Testclients (z.B. alles arbeitet gleichzeitig oder gruppenweise in bestimmten Zeitabschnitten).
  • Durchführung des Belastungstestens. Beim Testen wird das Belastungstestsystem gestartet, das die Arbeit von Testclients regelt. Die Arbeitsergebnisse werden in die Testdatenbank eingespeichert.
  • Ergebnisanalyse. Die Ergebnisse werden mit Hilfe des Belastungstestsystems analysiert, das die Testergebnisse aus der Testdatenbank abliest und sie anschaulich darstellt. Für die Analyse werden gewöhnlich solche Daten gebraucht, wie die Antwortzeit, Clientsanzahl, Abrufezahl pro Sekunde usw.

Unterwassersteine. Es hat Sinn, das Belastungstesten bei der Technikkonfiguration durchzuführen, die auch im Betrieb eingesetzt wird. Es ist kaum wahrscheinlich, daß solche Technik bei uns zu finden wird. Deswegen sollte das Belastungstesten beim Auftraggeber vor Ort mit der für das Testen bestimmten Technik (Anlagen) geschehen.