• Werbung

    Unabhängige Unterstützung bei Software Microsoft Lizenzprüfung
  • Automatisierbarkeit von Softwaretests 5

    6. Grafische Oberflächen
    Auch Grafische Oberflächen lassen sich automatisiert Testen. Hierfür kann z.B. ein Makrorekorder verwendet werden, der die Interaktion des Testers mit der Oberfläche beim erstellen des Tests aufzeichnet. Diese Aufzeichnung kann anschließend ausgeführt werden, und das Testprogramm klickt automatisch die vorher aufgezeichneten Schaltflächen und Bedienelemente. In dem vom Makrorekorder aufgezeichneten Quellcode kann man nach dem Aufzeichnen des Tests die Testabfragen einbauen, wie etwa die Überprüfung, ob der richtige Text auf einem Button steht, oder ob die Software bei Klick auf beenden auch geschlossen wird. Durch den Einsatz eines solchen Rekorders kann sehr viel Testaufwand automatisiert werden, jedoch ist die Erstellung eines solchen Tests relativ aufwändig und die Ausführung dauert entsprechend lange. Weiterhin sind für das Implementieren der Testabfragen Programmierkenntnisse erforderlich.

    7. Weboberflächen mit testen
    Das Testen von Webseiten kann z.B. durch Selenium unterstützt werden. Hierfür wird ein Selenium Server gestartet zu dem per TCP eine Verbindung hergestellt werden kann. Dieser Server steuert einen Webbrowser entsprechen der gesendeten Befehle und sendet Ergebnisse für die gestellten Abfragen. Hierbei kann z.B. eine Webseite automatisch aufgerufen werden und beispielsweise der Title-Tag der Seite abgefragt werden. Es können auch einzelne Elemente per Id oder Klasse angesprochen werden und deren Texte ausgelesen werden, oder ein Klick auf ein Steuerelement ausgeführt werden. Es gibt zahlreiche Möglichkeiten, diesen Selenium Server sinnvoll einzusetzen. So gibt es beispielsweise eine Java-Anwendung, welche die Bedienbarkeit einer Webseite automatisch überprüft. Hierzu gehört unter anderem, die Reihenfolge der Tab-Taste durch die Webseite auf eine logische Gliederung zu testen. Durch das automatische Erstellen von Screenshots, nachdem die Farbe einzelner Elemente geändert wurde, wird ermittelt, ob sich Elemente überschneiden. So kann z.B. ein Text gefunden werden, der in einem Eingabefeld nicht Platz hat, wie etwa der Standarttext in einer Suchbox. Über Selenium kann der selbe Test auch in verschiedenen Browsern durchgeführt werden. Das ist bei Webseiten insbesondere wichtig, da die verschiedenen Browser auf verschiedenen Plattformen die Webseite gegebenenfalls anders darstellen. So läuft beispielsweise ein Text im Firefox unter Linux länger als der selbe Text im Internet Explorer unter Windows. Daher kann es sein, dass der Text unter Windows in der Navigation platz hat, unter Linux jedoch umbricht und vom nächsten Element überdeckt wird. Es ist natürlich möglich, für Selenium auch eigene Tests zu schreiben, beispielsweise mit php-unit-selenium, einer Erweiterung für php-unit. Hierbei kann ein Unit-Test den Selenium Server ansprechen und die Webseite nach den definierten Vorgaben testen. Es kann z.B. geprüft werden, ob ein Artikel vorhanden ist, und ob dieser von der aktuellen Position verschwindet, wenn in der Datenbank etwas geändert wird, wie etwa die Sortierreihenfolge oder das Erstellungsdatum. Somit kann nach einer Änderung festgestellt werden, ob die neuesten Artikel nach der Anpassung immer noch oben auf der Webseite stehen.

    8. Selektives Testen
    Bei großen Projekten ist es unter Umständen nicht möglich, alle Tests nach jeder Änderung durchzuführen, da deren Ausführung mehrere Stunden dauern würde. Wenn ein kritischer Fehler gefunden wird, der sofort behoben werden muss, kann nicht der gesamte Test durchgeführt werden, weil dieser zu lange dauern würde. Daher ist es nötig, selektiv zu testen und die richtigen Tests für die Änderung zu finden, um sicherzustellen, dass die Software fehlerfrei ist, ohne alle Tests auszuführen. Die Selektion der richtigen Tests kann schwierig sein, da sich die Änderung gegebenenfalls auf verschiedene Stellen auswirkt. Zur Auswahl der richtigen Tests gibt es Algorithmen, die sich an den Changelogs des Versionskontrollsystems orientieren. Ein Mapping von Dateien, Tests und Features kann verwendet werden, um die Tests für die involvierten Features der geänderten Dateien zu finden.

    nächster Teil

    Dieser Beitrag wurde unter Sonstiges, Webserver abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.