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

Spezifikation, Konformität, Verträglichkeit, Tests ... Was sind sie überhaupt?

Manchmal all diese Begriffe scheinen ziemlich verwirrend. Oder ist es besser zu sagen, dass sie meistens oder sogar immer. abstract Specification, conformance, compatibility, tests... What are they all about? Vor allem, wenn verschiedene Personen und Firmen die Situation um sie zu verstehen in unterschiedlicher Weise. Also fangen wir von Anfang an.

Es gibt viele Spezifikationen oder Normen um uns herum. Webster Dictionary beschreibt Norm als etwas etabliert Beispiel durch Autorität, Sitte oder allgemeine Zustimmung als Modell oder. Also im Grunde ist es die Liste der Regeln, die während der Verwendung anderer haben zu gehorchen.

Lassen Sie uns eine Computer-Sprache. Vor allem der Spezifikation ist erforderlich, dass das gesamte Konzept Modell, sagen die Entwickler, was als ein Programm geschrieben werden können, beschreiben wird, wie es sich verhalten, was wird kompiliert, ausgeführt werden und etc. Nach der Erstellung aller notwendigen Unterlagen diesen - das ist es, kann man genau dort zu stoppen. Wenn die Idee gut genug ist, mehrere andere Unternehmen wünschen konnte, um ihre Implementierungen zu erstellen: Fe-Compiler und Ausführung Umgebungen. Aber sie gehorchen müssen der Spezifikation. Ansonsten gelten die gleichen Programme werden auf einer laufen und laufen unterschiedlich oder sogar auf der anderen die Umsetzung scheitern. Fulfillment durch eine Umsetzung aller genannten Anforderungen genannt wird Konformität.

Warum ist es so wichtig? money coins Specification, conformance, compatibility, tests... What are they all about? Nun, sagen wir mal diese neue Sprache verwendet wurde, um ein Programm für die Börse zu schaffen. Stell dir vor es in den USA geschrieben wurde, gut getestet und verwendet an der NYSE. Es war so gut, dass andere Länder in der ganzen Welt eine Lizenz gekauft und begann es zu benutzen für ihre Umsetzung dieser neuen Sprache. Wenn eine Anwendung nicht gehorchte der spec, könnte das gleiche Programm verschiedene Dinge mit Kunden Geld zu tun. Grundsätzlich diesem Programm Börse zu veräußern, wenn der Handelsvertreter "buy"-Taste, oder kaufen Stahl anstelle von Obst geschoben.

Die gute Frage könnte lauten: "Warum unterschiedliche Implementierungen? Lassen Sie uns ein und es nutzen. ". Es gibt verschiedene Antworten. Mehrere Unternehmen Vielleicht möchten Sie diese Sprache auf verschiedenen Plattformen (Solaris, Linux, Windows) und Geräte (Desktop, Handy, PDA, Taschenrechner Studenten, etc) zu verwenden. Andere wollen Algorithmen für ihre Bedürfnisse zu optimieren, zB so setzen sie die großen Datenbank-Programm werden 10-mal schneller.

Der entscheidende Punkt ist, dass verschiedene Implementierungen müssen genau die gleiche Arbeit und nach dem spec. Wenn sie sich so nennt man sie kompatibel. Das Schlimme ist, dass niemand sicher sein kann. Deshalb ist die Überprüfung Mechanismus benötigt wird. Normalerweise ist es ein Test-Suite, die Kompatibilität überprüft die Konformität und. Und in diesem Fall ist es falsch zu sagen, fast etwas kompatibel oder 99% kompatibel ist. Es könnte entweder Ja oder Nein.

no bug2 Specification, conformance, compatibility, tests... What are they all about? Let's move Richtung ein Beispiel. Sun Microsystems Java erfunden Sprache. Um genauer zu sein mehrere Versionen von Java für verschiedene Märkte geschaffen. Die bekanntesten sind Java ME , Java SE und Java EE . Und für jeden von ihnen gibt es eine separate Spezifikation. Sun Microsystems hat seine eigene Anwendung, die am häufigsten verwendet wird. Doch die Sprache ist so gut, dass es ziemlich viele andere Unternehmen und deren Implementierungen. Für die Kompatibilität und Konformität Zwecke gibt es TCKs (Conformance Test Kit). TCK ist ein Produkt, eine Reihe von Tests, die bei einer Implementierung korrekt ist nach den Regeln von der Spezifikation zu überprüfen beinhaltet.

Meine Absicht war es, eine Idee von dem, was Spezifikation konform sind Kompatibilität und TCK und warum sie so wichtig sind, zu geben.



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