Assertion colorier

rainbow Assertion coloring l'élaboration de tests de conformité consiste à identifier les affirmations contenues dans un cahier des charges, l'écriture des tests de conformité qui vérifient les assertions identifiés et reliant le test à l'affirmation selon laquelle il teste.
Commençons par les points suivants:
- L'affirmation est marquée
- L'affirmation réelle est difficile de voir dans les spécifications (actuellement il n'y a que l'affirmation de petit gif à la fin de chaque affirmation)
- Assertions complète ne sont consultés par la lecture du html directement ou regarder chaque test
- Début de la affirmations sont difficiles à voir dans le code html
- Fournir un moyen visuel pour afficher l'affirmation est facilement le problème que nous tentons de résoudre.

Le point principal est de couleur les assertions (texte spécification elle-même) en utilisant des balises HTML. La recherche a été faite qui balises HTML à utiliser. Div, span, table et balises de police ont été examinées. La meilleure solution est la balise de police. Ainsi, le texte est entouré de balises de police. L'attribut class de la balise de police correspond au type de l'affirmation. Fe si le asserion est nouveau, il est de couleur rouge, pour indiquer que les tests doivent être écrites, les affirmations anciennes sont colorés en vert pour indiquer que les tests existent déjà. Il devrait y avoir un utilitaire (script ou un programme java) pour balayer marqué cahier des charges et d'ajouter automatiquement les balises nécessaires pour la coloration. La couleur de fond du texte sera déterminé par la couleur attribut title de l'affirmation. Cette méthode a été appliquée et fonctionne correctement. Aux fins de facilité d'utilisation, il devrait y avoir un mécanisme pour cacher les colorants, Fe un javascript.

Un inconvénient de cette solution est que la couleur est statique car elle est basée sur l'attribut title. Une deuxième solution serait que l'outil vérifier une existence d'un test (basé sur l'ID affirmation ou un lien dans l'affirmation). Si il existe un test, nous ferions quelque chose pour régler la couleur de cette affirmation. Il pourrait être aussi simple que la fixation d'un attribut title. Un inconvénient de cette solution serait que la coloration affirmation serait encore statique, mais sur la base lorsque l'utilisateur exécuter les scripts.

Une variante de la solution donnée est que nous générer dynamiquement les données de couverture lorsque la spécification est visualisé dans un navigateur. Nous déterminer si un test existe dans le répertoire de test pour une affirmation donnée et la couleur l'affirmation en conséquence. Cela pourrait se faire grâce à un javascript / vbscript en utilisant des objets, qui permettent l'accès aux systèmes de fichiers. Cette méthode serait dynamique et devrait toujours avoir le dernier état affirmation de couverture.

Voici quelques exemples de JLS3 chapitres "Conversions et promotions" et "interfaces":

JLS3 colored Assertion coloring

JLS3 colored2 Assertion coloring

Assertions conv063, conv047, conv065, conv48, conv66 et conv049 sont de la version précédente de la spécification, ils n'ont pas été modifiées et mise à jour des tests n'est pas nécessaire - de couleur aigue-marine est (vert neurtal). Conv155 et conv156 sont nouveaux, de nouveaux tests devraient être développés, les affirmations sont colorés en rouge éclatante. Conv064 a été modifié, mise à jour de test est nécessaire - de couleur orange. Annot019 est un nouveau, des tests existent, mais ils sont nécessaires pour être changé - couleur saumon. Annot020 est nouveau, mais кудумфте tests existent - de couleur vert clair.

Le principal avantage de la coloration spec est que la spécification est visualisé. L'utilisateur peut voir l'affirmation entier et son titre. On peut dire en regardant les spécifications, où il ya des zones où la couverture est faible et où certains lots ou des tests devraient être ajoutés ou modifiés. Il est essentiellement la possibilité de voir à quel point une spécification est marqué et la façon dont il est testé.



, , , , , , ,
  • Share / Bookmark
Print This Post Imprimer cet article

Spécification, la conformité, de compatibilité, tests ... Que font-ils au juste?

Parfois, tous ces termes semblent assez confus. Ou il est préférable de dire qu'ils en général ou même toujours. abstract Specification, conformance, compatibility, tests... What are they all about? Surtout quand différentes personnes et les entreprises à comprendre la situation autour d'eux de différentes manières. Commençons donc dès le début.

Il ya beaucoup de spécifications ou des normes qui nous entoure. Le dictionnaire de Webster décrit comme quelque chose de standard établi par l'autorité, la coutume ou le consentement général comme un modèle ou un exemple. Donc, fondamentalement, c'est la liste des règles, qui ont d'autres lors de l'utilisation d'obéir.

Nous allons créer un langage informatique. Tout d'abord le cahier des charges est nécessaire, qui décrira le modèle de concept, les développeurs dire ce qui peut être écrit comme un programme, comment il se comportera, ce qui sera compilé, et exécuté etc Après avoir créé tous ces documents nécessaires - c'est ça, on peut s'arrêter là. Si l'idée est assez bonne plusieurs autres entreprises peut-être envie de créer leur mise en œuvre: des compilateurs et des environnements d'exécution Fe. Mais ils doivent obéir à la spécification. Sinon, les mêmes programmes qui seront exécutées sur un seul et courir différemment ou même échouer sur la mise en œuvre d'autres. Respect par une mise en œuvre de toutes les exigences spécifiées est appelé conformité.

Pourquoi est-il si important? money coins Specification, conformance, compatibility, tests... What are they all about? Eh bien, disons que ce nouveau langage a été utilisé pour créer un programme de bourse. Imaginez qu'il a été écrit aux États-Unis, bien testé et utilisé au NYSE. Il était si bon, que d'autres pays partout dans le monde ont acheté une licence et a commencé à l'utiliser sur leur mise en œuvre de ce nouveau langage. Si une mise en œuvre n'a pas obéi à la spécification, le même programme peut faire des choses différentes avec l'argent des clients. Fondamentalement ce programme d'échange d'actions pourrait vendre lorsque l'agent commercial a poussé le bouton "acheter", ou acheter de l'acier au lieu de fruits.

La bonne question pourrait être: «Pourquoi implémentations différentes? Nous allons créer un et de l'utiliser. ". Il ya des réponses différentes. Plusieurs entreprises pourraient vouloir utiliser cette langue sur les différentes plateformes (Solaris, Linux, Windows) et les dispositifs (ordinateurs, téléphones portables, PDA, calculatrice des étudiants, etc.) D'autres veulent optimiser les algorithmes à leurs besoins, leur mise en œuvre de Fe de sorte que le programme de grande base de données sera 10 fois plus rapide.

Le point essentiel est que plusieurs implémentations différentes doivent travailler exactement de la même façon et selon les spécifications. S'ils le font, ils sont appelés compatible. La mauvaise partie est que personne ne peut en être sûr. C'est pourquoi le mécanisme de vérification est nécessaire. Habituellement il s'agit d'une suite de test qui vérifie la conformité et de compatibilité. Et dans ce cas, il est faux de dire que quelque chose est presque compatible ou 99% compatible. Il pourrait y avoir ni oui ni non.

no bug2 Specification, conformance, compatibility, tests... What are they all about? Passons à un exemple. Sun Microsystems inventé le langage Java. Pour être plus précis plusieurs versions de Java pour les différents marchés ont été créés. Les plus célèbres sont Java ME , Java SE et Java EE . Et pour chacun d'eux il ya une spécification séparée. Sun Microsystems a sa propre implémentation, ce qui est le plus couramment utilisé. Toutefois, la langue est si bon, qu'il ya assez peu d'entreprises d'autres et de leurs implémentations. Pour assurer la compatibilité et la conformité des fins il ya TCKs (Test de conformité Kit). TCK est un produit qui comprend un certain nombre de tests, qui vérifier si une mise en œuvre est correcte selon les règles de la spécification.

Mon intention était de donner une idée de ce cahier des charges, la conformité, la compatibilité et TCK sont et pourquoi ils sont si importants.



, , , , , , , , , , , , , , , , , , ,
  • Share / Bookmark
Print This Post Imprimer cet article