Marcado de metadatos

11 Markup metadata La definición más simple de los metadatos es que se trata de datos sobre los datos. Los metadatos pueden ser muy útiles. En cuanto a las marcas que había algunos metadatos incrustados: descripción id, pequeño de la afirmación, enlace a la prueba. Durante la transferencia de marcado me di cuenta de que más de metadatos sería muy útil. En la nueva versión de la especificación había varios tipos de afirmaciones:

  • edad:
    texto no cambia, las pruebas no es necesario ningún cambio;
  • oldToBeChanged:
    ha cambiado el texto, las pruebas tienen que ser cambiado;
  • nuevo:
    totalmente nuevo texto, nuevas pruebas necesarias;
  • newWritten:
    nuevo texto, pero las pruebas ya existentes (ya que el proceso de desarrollo de la prueba comenzó tan pronto como la especificación del proyecto está disponible);
  • newWrittenToBeChanged:
    nuevo texto, las pruebas existentes, el proyecto de especificaciones cambiado, así que las pruebas hay que cambiar o pruebas existentes no son suficientes.

La adición de este tipo de datos al margen de beneficio sería mucho más fácil el trabajo futuro - el desarrollo de las pruebas. Debido a que con sólo mirar una afirmación contenida en la especificación de una puede decir fácilmente si se necesitan más pruebas o más, deben actualizarse.

Con lo dado arquitectura de marcas es se decidió utilizar el atributo de título en una etiqueta href (el ancla segundo). Así que el margen de beneficio sería el resultado:

<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" title=assertType> ID que es lo mismo que la afirmación de identificación </ a>

El atributo title se puede ver en un navegador como una sugerencia.

JLS3 html Markup metadata

JLS3 html code Markup metadata



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

Marcado de la transferencia - pesadilla o un pedazo de pastel?

train Markup transfer   nightmare or a piece of cake?
Todo el proceso de crear un margen de beneficio y desarrollo de pruebas lleva mucho tiempo. Y cuando parece que el trabajo está hecho, una nueva versión de la especificación es puesto en libertad. ¿Qué sucede después? Por supuesto, hay una necesidad de una nueva versión de la suite de prueba. Las nuevas pruebas deben ser por escrito y los antiguos actualizados o suprimidos.

La mejor manera de comenzar es hacer el marcado. Esta tarea se puede dividir en dos subtareas:

  • la transferencia de marcas de edad de las especificaciones anteriores a la nueva especificación (esto es necesario porque muchas pruebas ya estaban escritas, que están relacionados con el identificador de especificaciones, la reutilización de todas las pruebas posibles es una buena idea);
  • afirmaciones de marcado nuevos y actualizados.

La transferencia de las marcas es bastante simple como para hacerlo a mano:

  1. Busque la etiqueta de marcado en la especificación de edad.
  2. Encuentra el mejor lugar para insertar la etiqueta en la nueva versión de las especificaciones.
  3. Inserte la etiqueta.

Si sólo hay 10 afirmaciones - este trabajo es un pedazo de la torta. Pero si hay miles que es un trabajo duro que debe ser automatizado. La parte más difícil es encontrar un nuevo lugar adecuado para las etiquetas de marcado. Es difícil porque la especificación fue cambiada. Para JLS2 proceso de migración a la JLS3 alrorithm flollowing se utilizó:

Cada afirmación se completa con las anclas de HTML. Ambos deben ser transferidos usando tal algoritmo.

Hin 1t: si alguna etiqueta es transferido, hay una gran posibilidad, esa etiqueta siguiente en las especificaciones de edad se coloca después de la que se transfiere.

Sugerencia 2: algoritmo debe comprobar que la segunda ancla debe colocarse después de la primera y no muy lejos de eso.

  1. Lee el texto antes y después de la etiqueta en las especificaciones de edad. Búsqueda en la nueva especificación. Si uno de ellos 72s Markup transfer   nightmare or a piece of cake? no se cambió - la respuesta se encuentra. por lo general la duración debe ser 1-2 sentances, al menos 60 caracteres de longitud. Si ninguno o varios sentances encontrados - omitir este paso.
  2. Trate de hacer lo mismo que en (1), pero quitar todas las etiquetas HTML del texto cerca que rodea a la etiqueta. Si no encuentran - omitir este paso.
  3. Pruebe el algoritmo de adoptar, que trata de encontrar un texto similar en la nueva especificación.
    una. Siga los pasos de (1) y (2), pero desrease la longitud de la búsqueda de texto en un bucle hasta que la Sentance se encuentra o la longitud es muy corta. El trabajo práctico demostró que este número no debe ser inferior a 20.
    b. Si los pasos (1) y (2), o (3 bis) encontraron varias sentances aumentar la longitud del texto a buscar hasta que el texto se encuentra en la nueva especificación o el límite superior (Fe 140 caracteres) que se llegó. Utilice pistas para encontrar el mejor texto coincidente.

Adoptar algoritmo puede ser usado tanto con ignorando etiquetas html y aprovechando de ellos. Algoritmo es válido para las especificaciones escritas en texto plano, html o xml.

Este algoritmo fue implementado en JLS2-> herramienta JLS3 la transferencia de marcas. 84% de las etiquetas de marcado fueron transferidos de forma automática. El resto de ellas fueron realizadas de forma manual.



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

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