Da Geräte immer komplexer werden, stehen Testteams unter zunehmendem Zeitdruck, um Produkte zur Verfügung zu stellen, wodurch eine optimierte Teststrategie wichtiger denn je ist. Testingenieure haben die schwierige Aufgabe, den Prüfling für das nachfolgende Produkt zu entwickeln, während die vorherigen Prüflinge funktionstüchtig gehalten werden. In diesem Artikel werden die großen Herausforderungen untersucht, mit denen Testingenieure konfrontiert sind, und erläutert, wie ein Test-Framework das Problem durch Erhöhung der Produktivität, Reduzierung von erforderlichen Überarbeitungen und Reduzierung des Wartungsaufwands löst. Schließlich wird NI TestStand als Standardlösung zum Erstellen und Pflegen eines Test-Frameworks eingeführt, wobei die zusätzlichen Vorteile der Risikominderung, der flexiblen Entwicklung und der Implementierung von Funktionen hervorgehoben werden.
Die Priorität eines Testingenieurs besteht darin, sicherzustellen, dass ein funktionierendes Produkt an den Endkunden geliefert wird. Aber je komplexer Produkte werden, desto komplexer wird auch das Testen. Nehmen wir zum Beispiel eine Glühbirne. Intelligente Glühbirnen verfügen über integrierte WLAN- und Bluetooth-Funktionen – und manchmal sogar über Lautsprecher. Das bedeutet, dass in den letzten Jahren ein Testteam Tests für Leistungselektronik, drahtlose Konnektivität und akustische Tests hinzugefügt hat.
Abbildung 1: Fortgeschrittene Produktfunktionen haben die Entwicklungszeiten verlängert, wodurch die Zeit für die Testentwicklung verkürzt wurde.
Abbildung 1 zeigt den Unterschied zwischen der geplanten Zeit für jede Phase und der Realität. Da die Fristen gleich bleiben, führt jede Verzögerung in den früheren Phasen zu einer verkürzten Testentwicklungszeit – Testingenieure sind angehalten, mehr Funktionalitäten in kürzerer Zeit zu testen. Wenn wir Zeit aus der Testentwicklungsphase herausnehmen, zwingen wir Testingenieure, reaktiver und nicht proaktiver zu sein. Sie haben einfach keine Zeit, sich zu überlegen, wie das effizient angegangen werden kann.
Dieser Trend, mehr in kürzerer Zeit zu testen, ist seit Jahren im Gange, wird aber selten als Problem erkannt, da die Kosten für diese Art der reaktiven Entwicklung nicht sofort ersichtlich sind. Ein wesentlicher Nebeneffekt der reaktiven Entwicklung ist ein Mangel an Flexibilität, der zu Produktivitätsverlusten für Testingenieure führen kann, da sie Zeit damit verschwenden, Wege zu finden, um einem überladenen, starren Prüfling neue Funktionen hinzuzufügen. Ab einem bestimmten Punkt wird es ineffizient, auf demselben Prüfling zu bauen, und Ingenieure sind gezwungen, von vorne zu beginnen und Zeit damit zu verschwenden, dieselben Funktionen wie zuvor neu zu erstellen.
Dies führt nicht nur zu einer großen Nachbearbeitung, sondern erhöht auch die Anzahl der Prüflinge, die gewartet werden müssen. Die Wartungsphase bringt ihre eigenen Herausforderungen mit sich, besonders wenn der Ingenieur, der den Prüfling erstellt hat, das Unternehmen verlässt, ohne ihn angemessen zu dokumentieren. Sein oder ihr Abgang kann auch zu einer Neustrukturierung des gesamten Systems führen.
Eine Möglichkeit, diesem Kreislauf der Reaktivität zu entkommen, besteht darin, ein Test-Framework zu erstellen. Ein Test-Framework ist eine High-Level-Softwareanwendung zum Entwickeln, Ausführen, Bereitstellen und Erstellen von Berichten über automatisierte Testsequenzen.
Abbildung 2: Prozentsatz der Zeitersparnis von NI-Kunden, die TestStand in ihre Organisation integriert haben.
Weitere Informationen finden Sie im Leitfaden „Kaufen oder selbst erstellen?“.
Wenn Unternehmen diese Art von Framework einsetzen, sparen sie bis zu 75 Prozent der Entwicklungszeit und reduzieren den Zeitaufwand für die Wartung um 67 Prozent.
Wenn Sie sich eine Reihe von Prüflingen ansehen, sehen Sie gemeinsame und eindeutige Elemente. Diese gemeinsamen Elemente bilden nach ihrer Identifizierung die Grundlage für das Wiederverwendungsmodell für Ihre Testorganisation. Beispielsweise erfordern die meisten Prüflinge eine Benutzeroberfläche. Bestimmte Aspekte der Benutzeroberfläche müssen jedoch den Präferenzen und Kompetenzen des Benutzers entsprechen.
Gemeinsam:
Testmanagement-Software
Einzigartig:
Entwicklungssoftware für die Testentwicklung
Liste 1: Beispiel für eine Aufschlüsselung allgemeiner und eindeutiger Elemente eines Prüflinge
Um die immer wieder erforderliche Erstellung von Testsystemen zu stoppen, müssen Sie alle gemeinsamen Elemente identifizieren und in ein Framework einfügen, das Sie für alle Prüflinge wiederverwenden können. Das Framework ist nicht nur wichtig, um die gemeinsamen Elemente zu unterstützen, sondern es muss auch flexibel genug sein, um die einzigartigen Elemente jetzt und in Zukunft zu unterstützen.
Nachdem sich alle Ihre Testteams auf ein einziges Test-Framework eingestellt haben, können sie einfacher Code austauschen. Dieses Zugänglichmachen funktioniert sowohl für die gemeinsamen Elemente als auch für die einzigartigen Elemente.
Abbildung 3: Drei verschiedene Varianten einer Platine, wobei die wesentlichen Unterschiede darin bestehen, dass die zweite Platine Bluetooth-Funktionalität enthält und die dritte Wi-Fi-Funktionalität.
In Abbildung 3 sind beispielsweise drei Platinenvarianten dargestellt. Obwohl die in den Varianten 2 und 3 hinzugefügten Funktionen möglicherweise noch einige Jahre später hinzugefügt werden, bleiben die Grundlagen für die Art und Weise, wie die Platine getestet wird, unverändert. In einer reaktiven Testorganisation könnten Sie dasselbe grundlegende Testsystem dreimal entwickeln. Dieser Ansatz erhöht die Kosten für den vorgelagerten Prüfling und wirkt sich auch langfristig auf die Wartungskosten aus.
Die Produktivität ist am höchsten, wenn Ingenieure Zeit damit verbringen, was sie am qualifiziertesten tun können. Oft müssen Ingenieure jedoch viel Zeit für andere Aufgaben wie das Erstellen von Benutzeroberflächen oder das Erstellen von Berichten aufwenden. Die Entwicklung neuer Prüflinge gelingt viel schneller, wenn Sie ein gemeinsames Framework für alle Ihre Prüflinge erstellen. Alle Standardkomponenten sind bereits erstellt, wodurch sich die Testingenieure auf das Erstellen der zum Testen des Geräts erforderlichen Funktionen konzentrieren können – was die Zeit für die Markteinführung neuer Produkte verkürzen kann.
Die Wartungsphase ist die längste Phase im Leben eines Prüflings. Die Wartung umfasst das Hinzufügen neuer Tests, die Aufrechterhaltung der Kompatibilität zwischen Software- oder Betriebssystem-Upgrades oder das Beheben von erkannten Fehlern. Die Wartung einer Test Executive-Lösung erstreckt sich sogar auf den Bereich der Dokumentation. Entscheidungen, die in der Entwicklungsphase eines Prüflings getroffen werden, bestimmen, wie zeitaufwendig oder frustrierend die Wartungsphase sein wird.
Ein Hindernis beim Erstellen von Test-Frameworks besteht darin, jemanden zu finden, der die Zeit und Qualifikationen dafür hat. Aus diesem Grund hat NI TestStand entwickelt, einen im Handel erhältlichen und doch anpassbaren Test Executive für alle Ihre Testvorgänge. TestStand bietet ein gemeinsames Framework für alle Ihre Prüflinge, wodurch die Entwicklung zukünftiger Prüflinge vereinfacht wird. Mit allen Standardkomponenten können sich Testingenieure darauf konzentrieren, einzigartige Testfunktionen zu entwickeln, die Verschwendung zu reduzieren und Produkte schneller auf den Markt zu bringen.
Testingenieure verfügen über Kenntnisse in verschiedenen Sprachen, und es ist wichtig, dass sie sich befähigt fühlen, sich auf die Erstellung der Schritte zu konzentrieren, die den Test in ihrer bevorzugten Sprache durchführen. TestStand ist sprachunabhängig, d. h. Testorganisationen können in verschiedenen Sprachen, einschließlich Python, C/C++ und .NET, programmieren und alles in dasselbe Framework integrieren und zusammenarbeiten.
Die Entwicklung Ihrer Testmanagement-Lösung ist nur der Anfang der Aufgabe. Software ist schließlich kein einmaliger Kostenfaktor, sondern ein kontinuierlicher Aufwand. Software muss gewartet werden, um folgende Ziele zu erfüllen:
Dieser Wartungsaufwand kann oft erheblich werden und monatelange Entwicklungszeit in Anspruch nehmen. Auf der anderen Seite werden einsatzbereite Test Executive-Pakete wie NI TestStand regelmäßig von NI aktualisiert, um wettbewerbsfähig und rentabel zu bleiben. Mit diesem Ansatz können Sie die neuesten Technologien zu einem Bruchteil der Kosten nutzen (und Fehlerbehebungen und neue Funktionen erhalten). Lesen Sie unseren Leitfaden Test Executive-Software – Kaufen oder selbst erstellen?, um mehr zu erfahren.
Die offensichtlichsten Kosten, die mit dem Erstellen eines benutzerdefinierten Test Executive verbunden sind, sind die anfänglichen Entwicklungskosten für die Implementierung aller Funktionen des Test Executive. In der folgenden Tabelle werden einige der Funktionen aufgeführt, die mit Test-Frameworks verbunden sind. Die Tabelle zeigt eine Schätzung der Zeit, die für die Implementierung jeder Funktion von Grund auf benötigt wird, und vergleicht sie mit der Zeit, die für die Implementierung derselben Funktionen mit NI TestStand benötigt würde.
Abbildung 4: NI arbeitete mit Testfachleuten zusammen, um sicherzustellen, dass Standardfunktionen einfach mit TestStand implementiert werden konnten.
Weitere Informationen finden Sie im Leitfaden „Kaufen oder selbst erstellen?“.
Nicht alle sind zu jedem Zeitpunkt für jedes Unternehmen relevant, aber das heißt nicht, dass sie in Zukunft nicht relevant sein werden.
In diesem Abschnitt besprechen wir einige wertvolle Funktionen, die Sie leicht in TestStand hinzufügen können, wie z. B. parallele Ausführung, Protokollerstellung, Datenbankkonnektivität, Benutzeroberflächen und Fehlersuch-/Verteilungswerkzeuge.
Abbildung 5: Dieses Diagramm veranschaulicht die Fähigkeit von TestStand, Sequenzen in der Pipeline zu verarbeiten und Ressourcen automatisch zu planen, um das gleichzeitige Testen mehrerer Prüflinge (UUTs) zu ermöglichen.
Eine Möglichkeit, den Testdurchsatz zu erhöhen, ist die gleichzeitige Ausführung von Tests auf verschiedenen Geräten. Wenn wir uns ansehen, wie viel Zeit die Entwicklung von Software für die parallele Ausführung in Anspruch nimmt, wird klar, warum Testorganisationen die Entwicklung dieser Funktion nur dann angehen, wenn dies unbedingt erforderlich ist. Das Problem besteht darin, dass die parallele Ausführung einen erheblichen Entwicklungsaufwand erfordert. Wenn ein Unternehmen also erkennt, dass diese Fähigkeit erforderlich ist, ist es oft zu spät, um sie zu implementieren. Mit TestStand ist die Entwicklung parallel testender Systeme viel einfacher, wodurch der größte Teil dieses Aufwands entfällt und parallele Systeme sehr kostengünstig werden.
Beim Erstellen eines Testsystems muss unbedingt berücksichtigt werden, wie die Testergebnisse verarbeitet werden. Aus diesem Grund verfügt TestStand über integrierte Funktionen, die die Datenbankanbindung und die Protokollerstellung vereinfachen. Das Anpassen von Protokollen in TestStand ist eine häufige Aufgabe, und TestStand bietet viele Funktionen zum Anpassen des Protokollinhalts, der Funktionalität und des Stils.
Obwohl ein Testprotokoll hervorragend dazu geeignet ist, eine Momentaufnahme der bestandenen und fehlgeschlagenen Testläufe bereitzustellen, ist es nicht praktisch, wenn Sie historische Testergebnisse von einer oder mehreren Teststationen abfragen möchten. Stattdessen kann NI TestStand schnell und sofort in fast jedem ODBC-System (Open Database Connectivity) wie Oracle, SQL Server oder MySQL protokollieren.
Reduzieren Sie die Zeit, die Sie für das Fehlerbehandlung Ihres Testcodes aufwenden müssen, indem Sie die integrierten Funktionen von TestStand verwenden. Nutzen Sie Werkzeuge, mit denen Sie Testwerte in einer Sequenz überwachen können, und Haltepunkte, um die Ausführung anzuhalten, um einen Abschnitt Ihres Testcodes weiter zu untersuchen.
Abbildung 6: Bei der Bereitstellung werden alle erforderlichen Testsystemkomponenten mithilfe eines Bereitstellungstools oder Servers gepackt, bevor sie an die gewünschten Teststationen verteilt werden.
Sie können auch die Bereitstellung Ihres Testcodes auf Produktionscomputern mit Dienstprogrammen vereinfachen, die das Erstellen von Installationsprogrammen und Distributionen automatisieren.
Die Bedienoberfläche ist die Anzeige, über die der Bediener mit dem Testsystem interagiert. Die Entwicklung einer benutzerdefinierten Benutzeroberfläche kann ein nicht ganz trivialer Zeitaufwand sein, insbesondere wenn es um Benutzerfreundlichkeit und Konsistenz geht. TestStand bietet einfache Bedienoberflächen zum Konfigurieren und Ausführen von Tests auf verteilten Systemen. Sie können auch benutzerdefinierte Benutzeroberflächen in mehreren Programmierumgebungen entwickeln, um mehr Kontrolle darüber zu haben, wie Bediener mit Testsystemen interagieren.
Gemeinsam: Testmanagement-Software
| Einzigartig: Entwicklungssoftware für die Testentwicklung
|