Spezifikation, Konformitäts-, Kompatibilitäts-Tests ... Was sie alle zu werden?

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

Es gibt eine Vielzahl von Spezifikationen oder Normen um uns herum. Webster Dictionary beschreibt Standard als etwas von der Autorität, Gewohnheit oder allgemeine Zustimmung als Modell oder Beispiel gegründet. Also im Grunde ist es die Liste der Regeln, die bei der Verwendung anderer zu gehorchen haben.

Lassen Sie uns eine Programmiersprache. Vor allem die Spezifikation erforderlich ist, wird die beschreiben, das ganze Konzept Modell, sagen, was man als Entwickler ein Programm geschrieben werden, wie sie sich verhalten wird, was wird erstellt, durchgeführt und usw. Nach der Erstellung aller erforderlichen Unterlagen diese - das ist es, kann man halten direkt dort. Wenn die Idee gut genug ist, mehrere andere Unternehmen sollten sich an ihren Implementierungen zu erstellen: zB Compiler und Ausführung Umgebungen. Aber sie müssen die Spezifikation gehorchen. Ansonsten gelten die gleichen Programme werden auf einer läuft und läuft anders oder gar auf der anderen Seite die Umsetzung scheitern. Erfüllung durch eine Umsetzung aller genannten Anforderungen heißt Konformität.

Warum ist es so wichtig? money coins Specification, conformance, compatibility, tests... What are they all about? Nun, sagen wir diese neue Sprache verwendet wurde, um ein Programm für die Börse zu schaffen. Stellen Sie es in den USA geschrieben, gut getestet und an der NYSE verwendet. Es war so gut, dass andere Länder der ganzen Welt gekauft haben eine Lizenz und begann, setzt es auf die Umsetzung dieser neuen Sprache. Wenn eine Anwendung nicht der Spezifikation gehorchen, könnte das gleiche Programm andere Dinge zu tun mit dem Geld der Kunden. Im Grunde Börse Programm kann verkaufen, wenn Handelsvertreter schob die Schaltfläche "Kaufen", oder Stahl zu kaufen statt der Früchte.

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

Der zentrale Punkt ist, dass mehrere unterschiedliche Implementierungen genau das gleiche und nach der Spezifikation arbeiten müssen. Wenn sie das tun, werden als kompatibel. Das Schlimme ist, dass niemand sicher sein kann. Deshalb ist der Bestätigungs-Mechanismus erforderlich ist. Normalerweise ist es ein Test-Suite, die die Konformität und Kompatibilität überprüft. Und in diesem Fall ist es falsch zu sagen, dass etwas nicht kompatibel oder fast 99% kompatibel. Es könnte entweder ja oder nein.

no bug2 Specification, conformance, compatibility, tests... What are they all about? Let's move auf ein Beispiel. Sun Microsystems Java-Sprache erfunden. Um genauer zu sein mehrere Java-Versionen für verschiedene Märkte geschaffen. Die bekanntesten sind Java ME , Java SE und Java EE . Und ist für jeden von ihnen gibt es eine eigene Spezifikation. Sun Microsystems hat seine eigene Implementierung, die am häufigsten verwendet wird. Allerdings ist die Sprache so gut, dass es eine ganze Reihe anderer Unternehmen und deren Implementierungen. Aus Gründen der Kompatibilität und Konformität Zwecke gibt es TCKs (Conformance Test Kit). TCK ist ein Produkt, das eine Reihe von Tests, die zu überprüfen sind, wenn eine korrekte Umsetzung ist nach den Regeln von der Spezifikation.

Meine Absicht war es, eine Vorstellung davon, was Spezifikation, Konformität, Kompatibilität und TCK geben sind und warum sie so wichtig sind.




  • Share / Bookmark
Print This Post Drucken Sie diese Post

99% - ist es genug oder nicht?

99% Heute ist ein großer Tag. Ich werde versuchen zu erklären, warum. Wie ich bereits in meiner intro-post-Team schafft verschiedene TCK ist. Der Bereich, der ich arbeite ist das so genannte LANG - Ich entwickle Tests für die Programmiersprache Java. Vor langer Zeit, mehr als 2 Jahren, haben wir begonnen, die Arbeit an JLS-3-Spezifikation . Wir hatten zu viele Probleme, die auftreten, oft während spec ändern zu lösen (Ich verspreche Ihnen, mehr darüber zu schreiben). Unser Team ist Finishing JCK 6a, lang Tests ist Teil dieses JCK. Heute habe ich die Abdeckung Skripte ausgeführt und können wir endlich sagen, dass wir 99% Behauptung Abdeckung haben JLS 3. Um genauer zu sein haben wir 99,4%. Das bedeutet, dass wir Tests schrieb für 99% der sentances in der JLS-3, daß wir als potenziell überprüfbar markiert. Ist das nicht cool ist? Ich wette, es ist!

Die Arbeit ist sicher noch nicht vorbei und wird nicht so - es gibt viele Gründe, warum mehr Tests erforderlich sind:

  • Detaillierte Berichterstattung verbessern - mehr Tests für mehrere Behauptungen erforderlich sind;
  • Es gibt sentances dass überprüfbar sind, aber aus verschiedenen Gründen hatten wir nicht markiert sie als potenziell überprüfbar;
  • es wird bald JLS 4, sollten wir anfangen, daran zu arbeiten so schnell wie möglich.

Verschiedene Menschen könnten gegenüber Antworten auf eine Frage in einem Titel haben. Die meisten würden sagen: "Ja, natürlich." In der Tat 99% liegt bei nahezu 100%. Und was ist zu 100% - es ist eine Perfektion. 99% sieht gut aus, und es ist großartig. Aber wir müssen verstehen, was diese Nummer steht, und was verbessert werden kann. Meine Meinung ist: "Ja, es ist großartig, kolossal, gewaltige, aber nein, es ist nicht genug, ich will mehr, noch mehr als 100%", dass, warum ich ein Skript für tiefergehende Behandlung Berechnung erstellen Plan.

Vielen Dank an alle Entwickler, die SO JCK-Lang Werkes, hatte dank der Menschen, die (vor allem dazu beigetragen, Compiler-Team) und natürlich großen Dank an alle Entwickler, die Java verwenden :-)

Java-Welt wurde noch kompatibel und sicherer!




  • Share / Bookmark
Print This Post Drucken Sie diese Post