Category: Qualitätssicherung

SSD Festplatte wird nicht mehr erkannt – Crash!

Ohne jede Vorwarnung oder irgend ein Anzeichen wird meine SSD Vertex 2 nicht mehr in meinem Notebook erkannt. Ich muss zugeben, dass mir das Risiko bekannt war und nach über 4 Jahren in Benutzung und immer treuen Diensten kann ich der Festplatte auch keinen Vorwurf machen. Da ich im Keller noch die Original-Festplatte liegen hatte, welche sich ohne Probleme starten ließ und auf der auch noch das ursprüngliche Betriebssystem, ein Windows 7 Home, installiert ist, ging der Umstieg / Austausch relativ schnell. Wobei schnell relativ ist, denn man merkt schon bzw. hat das Gefühl, dass die Festplatte mit ihren 5.400 Umdrehungen deutlich langsamer reagiert als die SSD. Die Installation von Updates hat gefühlt 3 Tage gedauert, weil ich auch immer nur morgens und abends auf den Update-Button klicken konnte. Andererseits muss ich mir um den Speicherplatz erstmal keine Sorge mehr machen, denn mit 285 GB habe ich 2,5 mal so viel wie bei der SSD. Ausgehend von diesem Post bzw. dem Ereignis habe ich mir eine Reihe von Gedanken gemacht wie grundsätzlich mit Daten umzugehen ist. Wenn ich die Zeit finde, werde ich es hier im Blog entsprechend protokollieren.

Tipp für den nächsten Festplatten Crash: Bei der Installation kein Windows Passwort setzen, denn die ganzen Updates brauchen immer wieder einen Neustart und wenn sich keiner anmeldet, glaube ich, sucht der PC nicht nach weiteren Updates. Daher zur Beschleunigung des Update-Prozesses erstmal auf ein Passwort verzichten, welches später man immer noch setzen kann.

JavaScript Frameworks: HEADLESS WEBSITE TESTING

Über einen Artikel im Spiegel bin ich auf PhantomJS (http://phantomjs.org/) aufmerksam geworden, welches nach eigener Aussage die Lösung für folgende Herausforderungen ist: Headless Website Testing, Screen Capture, Page Automation und Network Monitoring. Neben den Herausforderungen nennt die Seite noch weitere Vertreter seiner Art:

  • Jasmine (http://pivotal.github.com/jasmine/): a behavior-driven development framework for testing JavaScript code
  • QUnit (http://qunitjs.com/): A JavaScript Unit Testing framework
  • Mocha (http://visionmedia.github.com/mocha/): is a feature-rich JavaScript test framework running on node and the browser, making asynchronous testing simple and fun.
  • Capybara (https://github.com/jnicklas/capybara): helps you test web applications by simulating how a real user would interact with your app.

Eine Übersicht gibt es hier: https://github.com/ariya/phantomjs/wiki/Headless-Testing

Selenium PHP Browser Window Size

Oftmals öffnet sich das Browser-Window zu klein oder zu groß bzw. gibt es ggf. Anforderungen, dass der Browser mit einer bestimmten Größe geöffnet werden soll. Auch dies kann in Selenium RC bzw. dem Selenium Server hinterlegt werden. Gesteuert wird die Größe über die bekannten JavaScript Funktionen. Somit müssen nur die entsprechenden JavaScript Befehle innerhalb des Fensters ausgeführt werden. In PHP umgesetzt sieht dies wie folgt aus:

[PHP]
public function setUp()
{
$this->setBrowser(‘*googlechrome C:/Programme/Google/Chrome/Application/chrome.exe’);
$this->setBrowserUrl(‘http://www.example.com’);
$this->setSpeed(500);
}

public function testMyTestCase()
{
$this->getEval(“window.resizeTo(1280, 768); window.moveTo(0,220);”);
$this->open(“/login”);
}
[/PHP]

Neben der Window Size habe ich außerdem noch die Position des Fensters angegeben. Dabei habe ich 220 Pixel Abstand von oben gelassen, damit ich die Befehlsausgabe im Selenium Proxy weiterhin im Blick habe.

Selenium Elemente zählen

Angenommen ein Formular soll überprüft werden. Der Testfall würde nacheinander alle Felder ausfüllen, das Formular abschicken und auf der Bestätigungsseite überprüfen ob die eingetragenen Werte auch angezeigt werden. Sobald ein Feld entfernt werden würde schlägt der Testfall fehl. Was ist aber wenn ein oder mehrere Felder hinzukommen? Der Testfall würde, angenommen er adressiert die Felder alle mittels einer ID und keines der Felder wurde entfernt weiterhin reibungslos funktionieren. Um dies zu vermeiden, sollte der Testfall vor Testbeginn überprüfen das die Anzahl Felder mit der Anzahl übereinstimmt, wofür das Selenium Skript entwickelt wurde. Dies kann mittels folgender Funktion erreicht werden:

[html]

verifyXpathCount //input 36

[/html]

Sollte neue Input-Felder hinzukommen würde der Testfall fehlschlagen. Alternativ kann der Parameter “//input” auch weiter eingegrenzt werden, im bestehenden Fall müssten auch Testfälle einer Seite aktualisiert werden, wenn beispielsweise ein globales Suchenfeld eingeblendet wird.

Selenium: Eindeutige Werte erzeugen mit aktuellem Datum

Zur Kontrolle bzw. zur Erhöhung der Übersichtlichkeit ist es in automatisierten Testfälle erforderlich, das die eingetragenen Werte eindeutig sind. Dies ist ggf. sogar durch die Anwendung erwünscht. Zur Erzeugung eines individuellen Wertes kann in Selenium beispielweise die Datumsfunktion genutzt werden. Selenium selbst stellt keine eigene Datums-Variable zur Verfügung, aber JavaScript tut dies und Selenium führt beliebigen JavaScript Code aus. Somit kann eine einmalige Variable schnell erzeugt werden.

[HTML]

store javascript{var d=(new Date()).getTime(); "myName" + d.toString()} uniqueName

[/HTML]

Für die spätere Verifizierung wird der per JavaScript erzeugte eindeutige Idenfifiert in einer Variable gespeichert und im nächsten Beispiel eingefügt. Grundsätzlich erhöht es die Lesbarkeit bzw. auch die Wartung, wenn alle Variablen, wie in der Programmierung üblich, am Anfang definiert werden.

[HTML]

type id=name ${uniqueName}

[/HTML]