\section{Requisitos Funcionales}
\begin{enumerate}
\item El sistema ha de ser capaz de extraer la eficiencia de uno o varios métodos de código concretos.
\item Los valores obtenidos por el testeo deben poder ser repetibles en otras ejecuciones.
\item Los tests deben verificar sus resultados de manera automática.
\item Los tests pueden ser ejecutados cada vez que se detecta una modificación en el repositorio (ejecución on-line).
\item Los tests pueden ser ejecutados en local sin necesidad de realizar commits en el repositorio (ejecución off-line).
\item El usuario puede comprobar la progresión de eficiencia de los tests realizados gráficamente.
\item El sistema debe lanzar diferentes tipos de alarmas en el caso que el descenso de eficiencia sobrepase los límites de tolerancia.
\item El lanzamiento de la alarma se mostrará por tres caminos: vía Web, vía mail y vía {\it TestFarm}.
\item El límite de tolerancia de las alarmas será asignado por el usuario o se tomará el valor por defecto.
\item El usuario puede resetear el valor de referencia del test.
\item El usuario podrá visualizar el listado de los tests ordenado por el nivel de variación de la eficiencia.
\item El usuario podrá visualizar el listado de los tests agrupado por sus suites correspondientes.
\item El usuario podrá visualizar para cada uno de los tests un drilldown de los valores utilizados para estimar los ciclos.
\item El usuario podrá descargarse los fichero de salida creados por {\it Callgrind}.
\item El usuario podrá visualizar la progresión de cada test gráficamente.
\item Los gráficos mostrarán la progresión de todos los valores usados para el cálculo de eficiencia.
\item El usuario podrá visualizar un listado de los gráficos de progresión de los tests con mayor variación de eficiencia.
\item El número del listado de gráficos puede ser modificado por el usuario.
Las opciones 

\end{enumerate}
