Las afirmaciones y marcas

book Assertions and markup

Es muy importante tener un buen proceso al escribir el conjunto de pruebas. Voy a hablar de la que se utilizó para JLS.

Como se ha mencionado antes que el producto final es el número de pruebas. Existe una relación entre las pruebas y de la definición. El proceso impulsado por la afirmación da una idea de lo que cada grupo de pruebas comprueba efectivamente en el pliego de condiciones. Utilizando esta relación el desarrollador puede calcular la cobertura, obtener la lista de afirmaciones sobre las que las pruebas no fueron escritos, etc

La afirmación es una declaración de un pliego de condiciones que pueden ser probadas. Y el primer paso es identificar todas las afirmaciones contenidas en el pliego de condiciones. Después de que el desarrollador puede escribir ensayos.

Ejemplo de las afirmaciones de la Java Especificación del lenguaje: smt Assertions and markup

  • Un error en tiempo de compilación se produce si el modificador de la misma aparece más de una vez en una declaración de interfaz.
  • El nombre binaria de un tipo de miembro consiste en el nombre binario de sus inmediatamente adjuntando tipo, seguido de $, seguido por el nombre simple de los miembros.
  • Una sentencia continue se puede producir sólo en un rato, hacer o de declaración.

Podría haber muchas declaraciones que no son comprobables o se refieren a la incertidumbre. A veces tales declaraciones incluyen palabras como "posible" o "tal vez". No es cierto que si una frase tiene una palabra "podrá" no es comprobable, pero normalmente es así.

Ejemplos de declaraciones no comprobables:

  • No se recomienda como "notación mixta" para las declaraciones de matriz.
  • Situaciones en las que la clase de un objeto no es estática conocido puede dar lugar a errores de tipo en tiempo de ejecución.
  • Si, sin embargo, la evaluación de una expresión produce una excepción, entonces la expresión se dice que es completa abruptamente.

Hay muchas discusiones y controversias acerca de afirmaciones. Algunos dicen que los ejemplos no deben ser tratados como aserciones. Otros dicen que cada declaración es un afirmaciones y hay dos tipos de ellos: comprobables y no comprobables. Mi opinión personal es que una afirmación es ciertamente algo comprobable. Y en la mayoría de los casos son ejemplos afirmaciones sólo porque la prueba se pueden escribir cheques en particular el ejemplo.

El proceso de identificación de las afirmaciones en el pliego de condiciones se llama marcado. Existen muchos enfoques. Pero en cualquier caso, el usuario debe ser capaz de obtener información sobre si la declaración es una afirmación y de alguna manera distinguir una afirmación de otro. Podría haber un repositorio separado con el mapeo de las afirmaciones y sus id a declaraciones. Me gusta la idea de integrar el marcado en el pliego de condiciones. Este enfoque fue elegido para el área de lengua del Java SE serie de pruebas. El JLS fue escrito en FrameMaker. Con mecanismos de exportación de PDF y HTML fueron creados. La versión HTML se utilizó durante la creación de la serie de pruebas.

En JLS y JLS 2 algunas anclas especiales identificadas al inicio y al final de una afirmación. Información adicional fue el assertionID y breve resumen de la declaración. El fin de anclaje era una imagen y un enlace a la prueba. La vista HTML y en la vista de código se muestran en las ilustraciones correspondientes. El identificador de la afirmación son arr033, arr034, arr020, etc

JLC2 html1 Assertions and markup

JLC2 html code1 Assertions and markup

La idea general se puede describir como:

<a name=assertionID> <! - Descripción shord como comentario HTML ->
aseveración de los estados aquí
<img href="path <a src="pics/assert.gif"> a prueba test"> ID que es lo mismo que la afirmación de identificación </ a>

Si las declaraciones por separado en diferentes partes del pliego de condiciones se ponen a prueba una prueba de la primera etiqueta será algo así como arr033_0, arr033_1, arr033_2.

Este tipo de arquitectura se utilizó para JLS y JLS 2. Se ha modificado ligeramente para JLS3, pero la idea principal era mantenerse. Sé que algunos ejemplos de enfoques con ID afirmación no estáticos mantenerse en un depósito separado, donde ID es un valor hash calculado basado en el contenido. Por varias razones que se presentaron para no ser una solución muy buena. Hay siempre un proceso difícil migrar a la nueva versión de la especificación. Pero en mi opinión es mucho más fácil con el identificador estático integrado en el pliego de condiciones.



, , , , , , , , , , , , , , , , , ,
  • Compartir / Guardar
Print This Post Imprimir este mensaje

Especificaciones, conformidad, la compatibilidad, las pruebas ... ¿Para qué se trata?

A veces todo esto términos parecen bastante confuso. ¿O es mejor decir que por lo general, o incluso siempre lo hacen. abstract Specification, conformance, compatibility, tests... What are they all about? Especialmente cuando diferentes personas y empresas a comprender la situación en torno a ellos de diversas maneras. Así que vamos a empezar desde el principio.

Hay un montón de características o de las normas que nos rodea. El diccionario Webster describe como algo estándar establecido por la autoridad, la costumbre o el consentimiento general como un modelo o ejemplo. Así que básicamente es la lista de reglas, que otros al utilizar tienen que obedecer.

Vamos a crear un lenguaje de computadora. En primer lugar el pliego de condiciones es necesario, que se describe el modelo de concepto, informe a los desarrolladores de lo que se puede escribir como un programa, cómo se comportan, lo que será compilado, ejecutado y etc Después de crear todos estos documentos es necesario - que es, uno puede parar allí. Si la idea es lo suficientemente bueno a muchas otras compañías que desee crear sus implementaciones: compiladores fe y entornos de ejecución. Sin embargo, deberán cumplir las especificaciones. De lo contrario los mismos programas que puede ejecutar en uno y corren de manera diferente o incluso un error en la aplicación de otros. Cumplimiento por parte de una aplicación de todos los requisitos especificados se llama conformidad.

¿Por qué es tan importante? money coins Specification, conformance, compatibility, tests... What are they all about? Bueno, digamos que este nuevo lenguaje se utilizó para crear un programa de intercambio de acciones. Imagine que se escribió en los EE.UU., así probado y utilizado en la Bolsa de Nueva York. Fue tan bueno, que otros países de todo el mundo compró una licencia y comencé a usarlo en su aplicación de este nuevo lenguaje. Si una aplicación no obedeció la especulación, el programa mismo podría hacer diferentes cosas con el dinero de los clientes. Básicamente este programa de intercambio de valores podría vender cuando el agente comercial empujó el botón "Comprar", o comprar acero en vez de fruta.

La buena pregunta podría ser: "¿Por qué las distintas aplicaciones? Vamos a crear una y usarlo. ". Hay muchas respuestas diferentes. Varias empresas que desee utilizar este lenguaje en diferentes plataformas (Solaris, Linux, Windows) y dispositivos (computadoras de escritorio, teléfono móvil, PDA, calculadora de estudiantes, etc). Otros quieren optimizar algoritmos para sus necesidades, Fe ponerlas en práctica lo que el programa de base de datos grande será 10 veces más rápido.

El punto clave es que varias de las distintas aplicaciones que funcionan exactamente de la misma y de acuerdo con la especificación. Si lo hacen se llaman compatibles. Lo malo es que nadie puede estar seguro. Por eso, el mecanismo de verificación que se necesita. Por lo general, se trata de una serie de pruebas que verifica la conformidad y compatibilidad. Y en este caso no es correcto decir que algo es compatible o casi el 99% compatibles. No puede ser sí o no.

no bug2 Specification, conformance, compatibility, tests... What are they all about? Vamos a pasar a un ejemplo. Sun Microsystems inventó el lenguaje Java. Para ser más precisos varias versiones de Java para los diferentes mercados fueron creados. Los más famosos son Java ME , Java SE y Java EE . Y para cada uno de ellos hay un pliego de condiciones por separado. Sun Microsystems tiene su propia aplicación, que es más comúnmente utilizado. Sin embargo, el lenguaje es tan buena, que hay bastantes empresas de otros y sus implementaciones. Para fines de compatibilidad y conformidad existen TCKs (prueba de conformidad Kit). TCK es un producto que incluye una serie de pruebas, que comprobar si una aplicación es correcta de acuerdo a las normas de especificación.

Mi intención era dar una idea de lo que las especificaciones, conformidad, la compatibilidad y la TCK son y por qué son tan importantes.



, , , , , , , , , , , , , , , , , , ,
  • Compartir / Guardar
Print This Post Imprimir este mensaje

Hola, mundo.

Leo blogs. Empecé a leer ellas mucho más. ¿Por qué hago esto? Bueno .. soy un creyente de que el intercambio de información hace divertido el trabajo de otras personas más. Y no sólo el trabajo, pero la gente vive en general. Compartir los conocimientos y pensamientos es un gran paso hacia la construcción de comunidades. Weblog permite publicar pensamientos, opiniones, ideas, preocupaciones de los lectores. Si bien los lectores pueden abrir un diálogo sobre un tema discutido el uso de comentarios.
Yo quería crear mi blog personal hace mucho tiempo, pero creo que finalmente lo hizo.
Yo trabajo como ingeniero de software en un grupo que crea un producto muy importante. Este producto no es tan conocido como Java o Solaris. Yo diría que la mayor parte de los ingenieros de software en este gran mundo no conoce. Sin embargo, sin este producto no habrá Java como la conocemos. Al menos Java no será tan bueno, tan popular y tan extendida como es y como queremos que sea. Sin este producto no habrá WORA (escribir una vez ejecutado en cualquier lugar). Sí, estoy hablando acerca de la compatibilidad. Y el producto es un TCK (Technology Compatibility Kit) para Java. En dos palabras TCK es una serie de pruebas, que se asegura de que las implementaciones de Java se ajustan a la especificación. Mi grupo trabaja en varios de TCK. Pero la principal es para la plataforma Java SE.
Hay varias áreas diferentes en JCK (TCK para Java SE): API, lenguaje Java y la máquina virtual.
Mi área que trabajo desde hace más de dos años es "lenguaje Java". Escribo compilador y pruebas de tiempo de ejecución para asegurarse de que las implementaciones de Sun y otras empresas se comportan exactamente como se dice en el JLS (Java Language Specification).
En este blog voy a tratar de compartir mis conocimientos, mis opiniones y pensamientos con respecto a mi trabajo.
PS: Inglés no es mi lengua materna. Es por eso que me gustaría pedir disculpas por los posibles errores (estoy seguro de que hay muchos de ellos ya) y sentances raro en mi weblog. Voy a intentar hacerlo lo mejor posible.



, , , , , , , , , , , , , , ,
  • Compartir / Guardar
Print This Post Imprimir este mensaje