Assertion Färbung

rainbow Assertion coloring Conformance-Test Entwicklung beinhaltet die Ermittlung Behauptungen in einer Spezifikation, schriftlich Conformance-Tests, dass die identifizierten Behauptungen zu überprüfen und die Verknüpfung der Test zu der Behauptung, dass es Tests.
Fangen wir von den folgenden Punkten:
- Behauptung ist markiert
- Tatsächliche Behauptung ist schwierig, in der spec (view derzeit sind es nur kleine Behauptung gif's am Ende jeder Behauptung)
- Abschluss der Behauptungen sind nur durch das Lesen der HTML direkt oder Blick auf die einzelnen Tests angesehen
- Beginn der Behauptungen sind schwer in den HTML-Code zu sehen
- Bereitstellung eines visuellen Weg, um die Behauptung Blick leicht ist das Problem, das wir zu lösen versuchen.

Der wichtigste Punkt ist die Farbe der Behauptungen (Spezifikation Text selbst) mit HTML-Tags. Die Untersuchung wurde vorgenommen, welche HTML-Tags zu verwenden. Div, span, Tisch und font-Tags wurden betrachtet. Die beste Lösung ist das font-Tag. So wird der Text mit font-Tags umgeben. Die Klasse Attribut des font-Tag entspricht dem Typ der Behauptung. Fe, wenn die neue asserion ist es mit rot gefärbt ist, um anzuzeigen, dass Prüfungen geschrieben werden müssen, sind alte Behauptungen mit grüner Farbe, um anzuzeigen, dass Tests gibt es bereits. Es sollte ein Programm (Script oder Java-Programm) werden bis Scan-Spezifikation markiert und automatisch die Tags für die Einfärbung benötigt. Die Hintergrundfarbe des Textes wird durch das title-Attribut Farbe der Behauptung bestimmt werden. Diese Methode wurde umgesetzt und funktioniert gut. Für Zwecke Usability, sollte es einen Mechanismus zu verbergen Färbung werden, zB ein JavaScript.

Ein Nachteil dieser Lösung ist, dass die Farbe statisch ist, da sie auf das title-Attribut basiert. Eine zweite Lösung wäre, dass das Tool wäre für ein Bestehen einer Prüfung (auf die Behauptung, ID oder den Link in der Behauptung aus, überprüfen). Wenn ein Test existiert, würden wir etwas tun, um die Farbe dieser Behauptung gesetzt. Man könnte so einfach sein wie Festlegung eines title-Attribut. Ein Nachteil dieser Lösung wäre, dass die Behauptung Färbung wäre immer noch statisch, sondern basierend auf, wenn der Benutzer die Skripts ausführen.

Eine Variation der gegebenen Lösung ist, dass wir dynamisch erzeugen die Coverage-Daten, wenn das spec in einem Browser angezeigt wird. Wir möchten feststellen, ob ein Test in der Test-Verzeichnis für eine bestimmte Aussage und Farbe entsprechend der Behauptung existiert. Dies könnte durch ein JavaScript getan werden / VBScript mit Objekten, die Zugriff auf Datei-System zu ermöglichen. Diese Methode wäre, dynamischen und sollte immer auf dem neuesten Stand Behauptung Abdeckung.

Hier sind einige Beispiele aus JLS3 Kapiteln "Conversions und Promotions" und "Schnittstellen":

JLS3 colored Assertion coloring

JLS3 colored2 Assertion coloring

Assertions conv063, conv047, conv065, conv48, conv66 conv049 und sind von den vorherigen Version von spec, waren sie nicht verändert und Tests Update ist nicht erforderlich - Farbe ist Aquamarin (neurtal grün). Conv155 conv156 und neu sind, sollten neue Tests entwickelt werden, Behauptungen sind in grellen rot gefärbt. Conv064 geändert wurde, Test-Update notwendig - Farbe orange. Annot019 ist ein neues, Tests existieren, aber sie sind notwendig, um geändert werden - Lachs Farbe. Annot020 ist neu, aber кудумфте Tests bestehen - Farbe hellgrün.

Der Hauptvorteil des spec Färbung ist, dass die spec visualisiert wird. User können Sie die gesamte Aussage und ihre Titel. Man kann, indem man die spec, wo gibt es Bereiche mit geringer Reichweite, bei denen einige oder viele Tests hinzugefügt oder geändert werden sollte erzählen. Es besteht grundsätzlich die Möglichkeit zu sehen, wie gut ein spec up ist und markiert, wie gut es ist, getestet.



, , , , , , ,
  • Share / Bookmark
Print This Post Print This Post

Markup Metadaten

11 Markup metadata Die einfachste Definition von Metadaten ist, dass sie Daten über Daten ist. Metadata sehr nützlich sein könnte. Als für das Markup gab es einige Metadaten eingebettet: id, kleine Beschreibung der Behauptung, Link zu testen. Während der Übertragung Markup Ich erkannte, dass mehr Metadaten wäre sehr hilfreich. In der neuen Version der Spezifikation gab es mehrere Arten von Aussagen:

  • alt:
    nicht verändert Text, tun Tests benötigen keine Veränderungen;
  • oldToBeChanged:
    Text verändert, Tests machen müssen geändert werden;
  • neu:
    total neuen Text, neue Prüfungen erforderlich sind;
  • newWritten:
    neuen Text, Tests, sondern bereits vorhanden (weil die Entwicklung von Tests Prozess begann, sobald der Entwurf der Spezifikation zur Verfügung stand);
  • newWrittenToBeChanged:
    neuen Text gibt es Tests, Entwurf spec verändert, so dass die Tests müssen geändert werden oder die vorhandenen Tests sind nicht genug.

Addiert man diese Art von Daten an das Markup erheblich vereinfachen würden die Zukunft der Arbeit - die Entwicklung von Tests. Denn nur durch das Betrachten einer Behauptung in der spec kann man leicht sagen, ob weitere Tests erforderlich sind, oder mehrere aktualisiert werden soll.

Mit den gegebenen Markup-Architektur ist, wurde beschlossen,) nutzen das title-Attribut in einem href-tag (der zweite Anker. Also das Markup aussehen würde:

<a name=assertionID> <! - shord Beschreibung als HTML-Kommentar ->
Assertion hier
<img src="pics/assert.gif"> <a href="path zu test" title=assertType> Test-ID, das ist das gleiche wie Behauptung ID </ a>

Das title-Attribut kann in einem Browser als Hinweis angesehen werden.

JLS3 html Markup metadata

JLS3 html code Markup metadata



, , , , , , , , , ,
  • Share / Bookmark
Print This Post Print This Post

Markup Transfer - Alptraum oder ein Stück Kuchen?

train Markup transfer   nightmare or a piece of cake?
Der gesamte Prozess der Schaffung einer Markup und der Entwicklung von Tests ist zeitaufwändig. Und wenn es scheint, dass die Arbeit getan ist, eine neue Version der Spezifikation ist freigegeben. Was passiert als nächstes? Natürlich besteht die Notwendigkeit einer neuen Version des Test-Suite. Neue Tests müssen geschrieben werden und die alten aktualisiert oder sogar gestrichen.

Der beste Weg zu beginnen ist, das Markup zu tun. Diese Aufgabe kann in zwei Teilaufgaben unterteilt werden:

  • Transfer alten Markup aus früheren spec auf die neue Spezifikation (dies ist nötig, weil viele Tests bereits geschrieben wurden, sind sie zu spec-ID verknüpft ist, alle möglichen Tests Wiederverwendung ist eine gute Idee);
  • Markup neue und aktualisierte Behauptungen.

Übertragen der Markup ist einfach genug, um es von Hand machen:

  1. Finden Sie die Markup-Tag in der alten spec.
  2. Finden Sie den besten Platz zum Einfügen des Tags in der neuen Version des spec.
  3. Stecken Sie den Tag.

Wenn es nur 10 Behauptungen sind - dieses Werk ist ein Stück Kuchen. Aber es gibt Tausende, wenn es ein harter Job, dass automatisiert werden soll. Der schwierigste Teil ist, eine neue geeignete Stelle für Markup-Tags finden. Es ist schwer, nur weil die Spezifikation geändert wurde. Für JLS2 zu JLS3 Migrationsprozess der flollowing alrorithm verwendet wurde:

Jede Behauptung ist mit HTML Anker abgerundet. Beide sollten mit solchen Algorithmus übertragen werden.

Hin 1t: Wenn einige tag übertragen wird, gibt es eine große Möglichkeit, dass nächsten Tag im alten spec wird nach der einen, die übertragen wird positioniert werden.

Tipp 2: Algorithmus sollte überprüfen, ob die zweite Anker sollte nach dem ersten Teil und nicht allzu weit davon entfernt positioniert werden.

  1. Schauen Sie sich den Text vor und nach tag in alten spec. Finden Sie es in den neuen spec. Wenn einer von ihnen 72s Markup transfer   nightmare or a piece of cake? wurde nicht verändert - die Antwort ist gefunden. Die Länge sollte in der Regel 1-2 sentances werden, mindestens 60 Zeichen lang sein. Wenn keine oder mehrere sentances gefunden - diesen Schritt überspringen.
  2. Versuchen Sie, die gleiche wie zu tun in (1), sondern entfernen Sie alle HTML-Tags aus dem Text, der in der Nähe von dem Tag umgibt. Wenn keiner gefunden - diesen Schritt überspringen.
  3. Probieren Sie den Algorithmus zu erlassen, die zu ähnlichen Text in der neuen Spezifikation zu finden versucht.
    ein. Verwenden Sie die Schritte (1) und (2), aber desrease die Länge der Benutzer Text in einer Schleife, bis die Sentance gefunden wird oder die Länge zu kurz ist. Die praktische Arbeit hat gezeigt, dass diese Zahl sollte nicht kleiner als 20 sein.
    b. Wenn die Schritte (1) und (2), oder (3a) fand mehrere sentances Erhöhung der Länge des Textes bis zur Volltextsuche ist in der neuen Spezifikation entsprechen, oder die obere Grenze (zB 140 Zeichen) erreicht ist gefunden. Verwenden Sie Hinweise zu den am besten passenden Text zu finden.

Adopt-Algorithmus kann sowohl mit HTML-Tags ignoriert und unter Ausnutzung von ihnen verwendet werden. Algorithmus gilt für Angaben im Klartext geschrieben, HTML oder XML.

Dieser Algorithmus wurde in JLS2-> JLS3 Markup Transfer Tool implementiert. 84% der Markup-Tags wurden automatisch übertragen. Der Rest von ihnen wurden manuell durchgeführt.



, , , , , ,
  • Share / Bookmark
Print This Post Print This Post