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

99% - il est suffisant ou pas?

99% Aujourd'hui est un grand jour. Je vais essayer d'expliquer pourquoi. Comme je l'ai mentionné dans mon intro-post notre équipe est la création de plusieurs différents de TCK. La région que je travaille sur LANG est soi-disant - je développe des tests pour langage Java. Il ya bien longtemps, plus de 2 ans à partir de maintenant, nous avons commencé à travailler sur JLS 3 des spécifications . Nous avons dû résoudre de nombreux problèmes qui se produisent souvent lors du changement de technique (je promets d'écrire plus à ce sujet). Notre équipe est arrivée JCK 6a, lang tests fait partie de cette JCK. Aujourd'hui, je exécuter les scripts de couverture et nous pouvons enfin dire que nous avons 99% pour la couverture affirmation JLS 3. Pour être plus précis, nous avons 99,4%. Cela signifie que nous avons écrit des essais pour 99% des sentances dans JLS 3 que l'on a marqué comme potentiellement testables. N'est-ce pas cool? Je parie que c'est!

Le travail n'est certainement pas encore terminée et ne le sera pas - il ya plusieurs raisons pour lesquelles d'autres tests sont nécessaires:

  • améliorer la couverture de profondeur - tests plus pour plusieurs affirmations sont nécessaires;
  • Il ya sentances qui sont vérifiables, mais pour plusieurs raisons que nous ne les avait pas marqués comme potentiellement vérifiables;
  • il y aura bientôt 4 JLS, nous devrions commencer à travailler dessus dès que possible.

Différentes personnes peuvent avoir des réponses face à une question dans un titre. La plupart des gens dire: «Oui, bien sûr". En effet, 99% est presque 100%. Et ce qui est 100% - il est une perfection. 99% ressemble beaucoup, et c'est formidable. Mais nous devons comprendre ce que ce nombre représente, et ce qui peut être amélioré. Mon avis est "oui, il est grand, colossal, immense, mais non, il ne suffit pas, je veux plus, encore plus de 100%", c'est pourquoi j'ai l'intention de créer un script pour le calcul de la couverture en profondeur.

Merci à tous les développeurs SUN qui fait un travail JCK-Lang, Merci aux personnes qui ont aidé (surtout au compilateur d'équipe) et certainement Merci beaucoup à tous les développeurs qui utilisent Java :-)

monde Java est devenu encore plus compatibles et plus sûr!



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

Bonjour tout le monde.

Je lis les blogs. J'ai commencé à lire les beaucoup plus. Pourquoi fais-je cela? Eh bien .. Je suis un croyant que le partage d'informations ne se moquer du travail des autres plus. Et non seulement le travail, mais les gens la vie en général. Le partage des connaissances et des pensées est un grand pas vers la création de communautés. Weblog permet de publier des pensées, des opinions, des idées, des préoccupations pour les lecteurs. Tandis que les lecteurs peuvent ouvrir un dialogue sur un sujet abordé à l'aide des commentaires.
Je voulais créer mon blog personnel depuis longtemps, mais je suppose que je l'ai finalement fait.
Je travaille comme ingénieur logiciel dans un groupe qui crée un produit très important. Ce produit n'est pas aussi connu que Java ou Solaris. Je dirais que la plupart des ingénieurs en logiciels dans ce vaste monde ne sais pas ce sujet. Toutefois, sans ce produit, il y aura pas de Java que nous connaissons. Au moins Java ne sera pas aussi bonne, aussi populaire et aussi répandu tel qu'il est et que nous voulons qu'elle soit. Sans ce produit il n'y aura pas WORA (Write Once exécuter partout). Oui, je parle de compatibilité. Et le produit est un TCK (Technology Compatibility Kit) pour Java. En deux mots TCK est une suite de tests, ce qui permet de s'assurer que les implémentations de Java conformes à la spécification. Mon groupe travaille sous plusieurs TCK. Mais le principal est de Java SE plate-forme.
Il ya plusieurs zones différentes dans JCK (TCK pour Java SE): API, langage Java et VM.
Mon domaine que je travaille sur plus de 2 ans est «langage Java". J'écris compilateur et d'exécution des tests afin de s'assurer que Sun et les implémentations d'autres entreprises se comportent exactement comme il est dit dans la JLS (Java Language Specification).
Dans ce blog je vais essayer de partager mes connaissances, mes opinions et mes pensées au sujet de mon travail.
PS: l'anglais n'est pas ma langue maternelle. C'est pourquoi je tiens à m'excuser pour les éventuelles erreurs (je suis sûr qu'il ya déjà beaucoup d'entre eux) et sentances bizarre dans mon blog. Je vais essayer de faire de mon mieux.



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