2010-09-05 12 views
10

¿Existen herramientas para medir la cobertura de código de expresiones regulares? Una herramienta que proporciona una expresión regular y una lista de cadenas de entrada, le indica qué partes de la expresión regular se ejercen, con medidas análogas a la cobertura de afirmaciones, cobertura de sucursal, cobertura de condiciones, etc.herramientas de cobertura de código para expresiones regulares?

No me importa mucho el idioma o el medio ambiente que se ejecuta en

. (actualización: después de un poco más de pensamiento, me daba cuenta de que es bastante fácil de comenzar con una expresión regular y generar varios ejemplares hay algunas herramientas que hay que hacer esto:. http://research.microsoft.com/en-us/projects/rex/, http://code.google.com/p/xeger/). Sin embargo, no parecen tratar de obtener una cobertura completa; simplemente toman caminos aleatorios a través del DFA.)

+1

Debe tener algunas docenas de expresiones regulares si esto le llama la atención. ¿Qué tan grandes son (longitud) y qué estás haciendo con ellos? (Tengo algo similar como conjuntos de descripciones de tokens para interfaces frontales de langauge, así que esto llamó mi atención). –

+0

Esto aparece en el contexto de una heurística utilizada en un conjunto abierto de documentos de entrada creados por el ser humano. Es difícil sentirse seguro acerca de la implementación en esas situaciones, así que me imagino que cualquier cosa que pueda aumentar mi nivel de confianza vale la pena investigar. –

+0

Re actualización: no desea probar sus expresiones regulares mediante la generación de rutas a través de ellos, de las expresiones regulares. Eso no demostrará nada excepto que uno puede enumerar los caminos a través de una expresión regular, y dudo si hay algún desacuerdo sobre esto. –

Respuesta

1

Regex Buddy - Le permite abrir un archivo de prueba y ejecutarlo contra su expresión regular y mostrarle coincidencias, etc. Es bastante económico teniendo en cuenta lo útil que es.

+0

Iba a sugerir eso también, pero para la depuración, RegexBuddy le da una ayuda visual "meramente" (que es perfecto para depurar una expresión regular), y dado que esos árboles de depuración pueden tener miles y miles de líneas (y no miden nada, excepto los pasos generales necesarios para que coincidan o fallan), no estoy seguro de que eso sea lo que necesita. Sin duda, pruébalo. –

+0

Parece una herramienta interesante, pero sí, probablemente no es exactamente lo que quise decir. Volveré si no encuentro respuestas puntuales. –

+0

Probablemente es el tipo de herramienta que desea encontrar si está haciendo algo complejo con las expresiones regulares. –

1

programa Try "El entrenador Regex"

+0

Gracias por el puntero. Es una herramienta interesante, pero no cubre, específicamente, por lo que puedo ver en el sitio. –

2

También estoy interesado en probar expresiones regulares, y la medición de la cobertura alcanzada por estas pruebas de expresiones regulares. Aún no he encontrado una herramienta lista para usar, pero un research paper midió indirectamente la cobertura de la prueba de expresión regular convirtiendo primero la expresión regular a Brics Automaton, luego de un autómata Brics a una representación XML, y luego de esa representación XML a la implementación de CA # de el autómata, utilizando una técnica inspirada en Alekseykin. Parece que esto fue un proceso automatizado. Obtuve esta información directamente de uno de los autores del artículo, y también me dirigió al project site. Todavía no lo he intentado, pero tengo la intención de hacerlo. Quizás alguien pueda vencerme e informar sobre sus hallazgos.

Cuestiones relacionadas