Deutsche Version des Test-Glossars hinzugefügt

Als weiteren Service für unsere Leser wurde die deutsche ISTQB Glossar-Version hinzugefügt. Diese kann hier gefunden werden: Glossar deutsch

Die englische und die russische Version folgen demnächst.

Geschrieben in Allgemein | Keine Kommentare

MTM Testdurchführung über TFS API starten

Um einen automatisierten Testrun über die TFS API zu erstellen, kann die CreateTestRun Methode der Schnittstelle ITestPlan verwendet werden.
Das Erstellen von einem neuen Testlauf funktioniert (zumind. für die Basis-Workflows) ziemlich einfach.

1. Herstellen einer Verbindung zum Testprojekt:

TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs:8080/tfs/DefaultCollection"));
ITestManagementTeamProject project = tfs.GetService<ITestManagementService>().GetTeamProject("dummy");

2. Zusammenstellen von relevanten Informationen (hier anhand von plan, suite und settingsid)

int planID = 12;
ITestPlan testPlan = project.TestPlans.Find(planID);

int suiteid = 22;
ITestPointCollection tpc = testPlan.QueryTestPoints("SELECT * FROM TestPoint WHERE SuiteId = " + suiteid.ToString());

int settingsid = 12;
ITestSettings testSettings = project.TestSettings.Find(settingsid);

3. Ermittelte Informationen dem TestRun zuweisen und durch Save() Methode den Testlauf starten:

ITestRun testrun = testPlan.CreateTestRun(true);
testrun.CopyTestSettings(testSettings);

string build = "C:\\testassemblies";
testrun.BuildDirectory = build;

testrun.Title = "TestRun";
testrun.AddTestPoints(tpc, null);
testrun.Save();
Geschrieben in How To,Microsoft Test Manager,VS UI Automatisierung | 1 Kommentar

Aufbau TFS Testtabellen

Wer sich mit Qualitätssicherung in TFS beschäftigt, wird früher oder später mit den dazugehörigen Testtabellen in Kontakt kommen (Query in tcm.exe, TFS API).
Folgender Blog Eintrag bietet eine gute Übersicht über die einzelnen einzelnen Tabellen und dazugehörigen Interfaces:
http://blogs.msdn.com/b/duat_le/archive/2010/02/25/wiql-for-test.aspx

Geschrieben in Microsoft Test Manager,Visual Studio 2012,Visual Studio Testframework | Keine Kommentare

Selenium WebDriver – MouseOver erzeugen

Um auf dynamische Untermenüs zugreifen zu können, ist es oft Notwendig ein “MouseOver-Event” auf ein bestimmtest Element zu erzeugen. Alles andere führt bei Selenium zu der “Element is not currently visible and so may not be interacted with” – Exception.

Wenn auch das Eltern-Element mit einer Seite im Hintergrund belegt ist, kann der Zugriff auf das Untermenü, nicht mit einem Klick realisiert werden.
Selenium bietet hier die Möglichkeit mit Actions zu arbeiten. Aus dem Driver wird ein Actions Builder erzeugt, dieser kann dann eine MoveToElement Methode auf das gewünschte Webelement ausführen.


Hier ein einfaches Beispiel mit einem InputFeld auf der Google Seite:

IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.google.com/");
IWebElement query = driver.FindElement(By.Name("q"));

new Actions(driver).builder.MoveToElement(query).Build().Perform();
Geschrieben in Selenium,Webautomatisierung | Keine Kommentare

Neue Seleniumversion verfügbar

Seit etwa 2 Wochen steht die neue Selenium C# Assembly (Version 2.33.0) zur Verfügung.
Diese kann wie gewohnt von der Seite seleniumhq geladen werden:

http://docs.seleniumhq.org/download/

Geschrieben in Selenium | Keine Kommentare

VS 2010 Testcontroller überfüllt die Partition

Sollte der Testcontroller über eine, im Verhältnis zu den durchzuführenden Testfällen, zu kleine “C” Partition (ggf. auch andere Partition, auf der sich das Users Verzeichnis befindet) verfügen, kann es während der Durchführung zu “Problemen” führen.
Grund dafür ist ein fehlendes, bzw. fast nicht vorhandenes Aufräumen des Users Verzeichnisses “QTController”.

Dieses Fehlverhalten kann während der Testdurchführung folgende “Symptome” aufweisen:

  • Ein Teil der Testfälle wird nicht mehr ausgeführt, Testfälle werden als “not executed” markiert – .tr File enthält keine Fehlermeldung oder Hinweis. Je länger die Partition nicht aufgeräumt wird, desto weniger Testfälle einer Suite werden durchgeführt.
  • Logfile vom Testagent / Testmanager / Testcontroller zeigen keine Warnungen oder Fehlermeldungen, unabhängig von dem Detailgrad des Logs
  • Auf manchen Rechnern taucht die Fehlermeldung “The test assembly ‘C:\Users\..\AppData\Local\VSEQT\QTAgent\..\test.dll’ cannot be loaded. Error details: Could not find file ‘C:\Users\..\AppData\Local\VSEQT\QTAgent\..\Deployment\test.dll’” angezeigt

Das QTController Verzeichnis liegt auf dem Testcontroller unter dem Pfad “C:\Users\{Benutzer}\AppData\Local\VSEQT\QTController”.
Seitens Microsoft gibt es für dieses Problem keine “saubere” Lösung, in MSDN Foren wird empfohlen ein Batch-Datei aufzusetzen, die das Aufräumen in regelmäßigen Abständen übernimmt.
Batch File Inhalt

rmdir /s /q "C:\Users\{user}\AppData\Local\VSEQT\QTController"

Das Batch-File kann dann von der Aufgabenplanung (taskschd.msc) in benötigten Zeitintervallen aufgerufen werden, bei uns hat sich ein Aufruf alle 2 Wochen, als ausreichend erwiesen. Das hängt aber von der Größe der Partition und der Anzahl der Testfälle ab (bzw. Größe der mitgegebenen Assembly- / Testfiles).

Geschrieben in Microsoft Test Manager,Visual Studio Testframework,VS UI Automatisierung | Keine Kommentare

Unittest / Coded UI Testmethoden mit WorkItem TestCase in Visual Studio 2012 verknüpfen

Durch Visual Studio 2012 haben sich einige Menüs und Funktionen im Testbereich geändert.
Mehrere Dialoge, wie Test View und Test List Editor, wurden jetzt zu einem Test Explorer zusammengefasst.

Menu “Test”-”Fenster” Visual Studio 2010

Menu “Test”-”Fenster” Visual Studio 2012

Leider hat der neue Testexplorer nicht mehr die Funktionen, die in der Test View möglich waren. Neben der fehlenden Gruppierung der Testfälle nach Klassen oder Projekt, gibt es im Testfall Contextmenü in Visual Studio 2012 keine Möglichkeit mehr, eine Testmethode mit einem Testfall in TFS zu “verknüpfen”.

Kontextmenü Testfall Visual Studio 2010 

Kontextmenü Testfall Visual Studio 2012 

Um die Testmethoden mit einem Test Case zu verknüpfen sind folgende Schritte in Visual Studio 2012 notwendig:

  1. Button “Gehe zu Arbeitsaufgabe” auswählen:
  2. WorkItem ID des zu verknüpfenden Testfalls eintippen:
  3. Im geöffneten Testfall Tab (seit neuestem Link) “ASSOCIATED AUTOMATION” auswählen
  4. Button … auswählen
  5. gesuchten Testfall auswählen.

    Leider gibt es hier keine Suchfunktion, eintippen der ersten drei Buchstaben des Testfallnamens hilft den Testfall schneller zu finden. Bei einer großen Anzahl von Testfällen hilft eine einheitliche Namenskonvention.
  6. Testfall speichern – fertig!

    Der Automatisierungsstatus des Testfalls hat sich automatisch in “automated” geändert. Testfall kann in Microsoft Testmanager als automatisierter Test ausgewählt werden.
Geschrieben in Allgemein,Microsoft Test Manager,Visual Studio 2012,Visual Studio Testframework | Keine Kommentare

Ranorex: Pixelfarbe ermitteln

Bei manchen Testfällen ist es notwendig die aktuelle Hintergrundfarbe eines Oberflächenelements zu ermitteln.
WinForms / VB6 / usw. Oberflächen stellen diesen Wert nicht als Eigenschaft bereit, aus diesem Grund muss dieser Wert über einen anderen Weg abgefragt werden.

Der einfachste Weg ist es, ein Screenshot des Elements zu erzeugen und diesen dann mit der GetPixel Methode abfragen.
Ranorex stellt dazu z.B. die Methode

Report.Screenshot(element);

bereit.
Bei dieser Methode wird allerdings das Bild lokal gespeichert, dieses Vorgehen ist etwas fehleranfällig und vor allem unnötig.
Nach einer längerer Suche, bin ich auf die Methode Imaging.CaptureCompressedImage() gestoßen, diese liefert ein Bitmap Objekt zur Laufzeit zurück, ohne dass Bilder lokal gespeichert werden müssen.
Als Parameter kann ein Element vom Typ Adapter oder Element übergeben werden.

Hier ist eine Beispiels-Methode, mit der vom übergebenen Control die Hintergrundfarben ermittelt werden können.
Natürlich können auch die Pixel verändert bzw. parametrisiert werden.

public static string Color(Adapter ui_control)
{
   Bitmap bmp = Imaging.CaptureCompressedImage(ui_control);
   Color cElementColor = bmp.GetPixel(2, 2);
   return cElementColor.Name;
}
Geschrieben in How To,Ranorex | Keine Kommentare

Lesetipp: Automated Software Testing Magazine

Leider ist die Kultur der Testautomatisierung in Deutschland (noch?) nicht so sehr verbereitet wie in anderen Ländern. So gibt es, neben gut ausgebauten und “lebendigen” Foren, auch Magazine, die sich speziell dem Thema Testautomatisierung widmen.
Unter dem folgenden Link ist ein gutes “Testautomatisierungs – Magazin”, der Webseite automatedtestinginstitute.com, zu finden:
Automated Software Testing Magazige – PDF Datei
Themen u.a. sind:

  • So easy even a child can use it – Is Your Test Automation Architecture Usable?
  • Cells, Selenium, XPath and Labels – Using Labels to identify Dynamic Objects
  • Test Automation Experiences
  • Selenium vs. Watir… And the Winner is Webdriver
Geschrieben in Allgemein,Selenium,Webautomatisierung | Keine Kommentare

Microsoft Test Manager: TimeOut für die Testdurchführung ausschalten

Manchmal ist es notwendig, dass einzelne Testfälle länger als 30 Minuten laufen. Die Durchführungszeit wird aber, per default, von MTM auf 30 Minuten festgelegt

Default TimeOut der Testdurchführung aus Microsoft Testmanager, wird in den Test Settings festgelegt.

Mit folgenden Schritten, kann die TimeOut Zeit angepasst werden:

  • MTM starten
  • Oben den Bereich von “Testing Center” auf “Lab Center” umschalten
  • im “Lab Center” den Reiter “Test Settings Manager” auswählen
  • Im “Settings Manager” eine neue Test Setting anlegen oder eine bestehende öffnen
  • Im Bereich “Steps”, Oberknoten “Advanced” auswählen, dann den Unterknoten “Timeouts”
  • “Set Mark an individual test as failed if its execution time exceeds: 30″ deaktivieren
  • Speichern
  • Fertig!
Geschrieben in How To,Microsoft Test Manager,VS UI Automatisierung | Keine Kommentare