Pregunta

Estamos desarrollando pruebas de regresión automatizadas utilizando VMWare y NUnit.Hemos dividido las pruebas en pasos y ahora me gustaría que se examine cada paso para determinar la regresión del rendimiento.Simplemente cronometrar las pruebas, como lo hace NUnit, no parece confiable.He calculado un factor de aceptación de aproximadamente el 15%, pero nuestros pasos a veces pueden diferir hasta más del 35%.En un entorno de prueba tan dependiente de recursos, ¿existe alguna forma coherente de probar el rendimiento?¿Es un sistema de sincronización "inteligente" mi única opción?

¿Fue útil?

Solución

Para este tipo de pruebas de rendimiento, no existe un sistema que le dé un resultado simple de pasa/falla.En la vida real, cambiar su sistema probablemente haga que algunas cosas sean más rápidas y otras más lentas, por lo que generalmente no es una elección entre "mejor" y "no mejor", sino una elección entre diferentes tipos de cosas mejores.(Por supuesto, desea evitar casos en los que sea estrictamente peor).

Lo que he hecho para esto en el pasado es simplemente mantener estadísticas a lo largo del tiempo.Cada vez que ejecute sus pruebas, coloque los resultados en una base de datos SQL con el número de revisión y los tiempos de las pruebas.Luego, puede representarlos gráficamente cuando y como quiera (idealmente en un pequeño subprograma web para que todos los miembros del equipo puedan revisarlos) y ver si su rendimiento tiene una tendencia hacia arriba o hacia abajo, o si el rendimiento ha sido deficiente desde una revisión en particular.

La clave aquí, sin embargo, es que tiene que ser un grafico.De esa manera los ojos humanos pueden mirarlo y encontrar las tendencias.Podrías pasar toda la semana intentando idear un algoritmo de IA para analizar los datos numéricamente, pero nunca superaría la capacidad de reconocimiento de patrones de un ser humano.

Otros consejos

Puede consultar las funciones disponibles con una herramienta como Ants Profiler, ya que proporciona tiempos de ejecución/ejecución del método, pero no estoy seguro de lo que ofrece en términos de pruebas repetidas.

Con respecto a las pruebas de rendimiento, he sido muy escéptico sobre el uso de vmware u otros procesos de virtualización.La forma en que hemos manejado esto en el pasado es hacer que parte de la compilación instale la última versión en una máquina estática y ejecute las pruebas.Debería ver resultados más consistentes fuera de la virtualización.

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