Pregunta

Estoy a punto de hacer algunos cambios en un módulo Apache C existente para corregir posibles fallas de seguridad y malas prácticas generales. Sin embargo, la funcionalidad del código debe permanecer sin cambios (excepto en los casos en que se corrige un error). Las pruebas de regresión estándar parecen estar en orden. Me gustaría saber si alguien sabe de una buena manera de ejecutar algunas pruebas de unidad de regresión contra el código. Estoy pensando en algo como usar Unidad C pero con todos los vínculos con la APR de Apache y las estructuras de estado, me preguntaba si hay una buena manera de probar esto. ¿Hay marcos precompilados que se puedan usar con la unidad C, por ejemplo?

Gracias

Peter

¿Fue útil?

Solución

He estado pensando en responder esto por un tiempo, pero pensé que alguien más podría encontrar una mejor respuesta, porque la mía es bastante insatisfactoria: no, no conozco ningún marco de prueba de unidad.

Creo que su mejor opción es intentar refactorizar su módulo C de modo que sus dependencias en la base del código httpd estén contenidas en una capa de pegamento muy delgada. No me preocuparía demasiado por las dependencias de APR, que pueden vincularse fácilmente al código de prueba de su unidad. Es como usar el registro de solicitud que deberías intentar resumir un poco.

Iré tan lejos y sugeriré que tal refactorización es una buena idea si se sospecha que el código contiene fallas de seguridad y malas prácticas. Por lo general, es un trabajo bastante grande.

Lo que también podría considerar es ejecutar pruebas de integración en lugar de pruebas unitarias (idealmente ambas), es decir, presentar un conjunto de solicitudes y respuestas esperadas del servidor, y ejecutar un programa para comparar las respuestas reales con las esperadas.

Entonces, no es la respuesta que estabas buscando, y probablemente pensaste en algo en esta línea tú mismo. Pero al menos puedo decirle por experiencia que si el módulo no se puede reemplazar con algo nuevo por razones comerciales, entonces refactorizarlo para que sea comprobable probablemente dará sus frutos a largo plazo.

Otros consejos

Pasé algo de tiempo buscándote en las redes porque es una pregunta que tenía curiosidad. encontré un artículo wiki que decía que

http://cutest.sourceforge.net/

se usó para la prueba de tiempo de ejecución c portátil de apache. podría valer la pena echarle un vistazo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top