Un día en la vida de un desarrollador de ALM: Suspender el trabajo, corregir un error y realizar una revisión de código

Una forma eficaz, en un solo click, para intercambiar el contexto de trabajo que funciona en un subproceso de trabajo a otro está disponible en Visual Studio Premium y Visual Studio Ultimate con Team Foundation Server.Además, los miembros del equipo pueden intercambiar facilmente mensajes sobre los cambios propuestos al código.Este tema muestra estas características, continuando un tutorial que sigue a los miembros de un activo equipo ficticio durante un día.

Peter ha estado ocupado escribiendo código para completar una tarea de elementos de trabajo pendiente. Sin embargo, sus colegas han encontrado un error que los está bloqueando y Peter desea corregirlo inmediatamente.Se suspende el trabajo que se está realizando y corrija el error.Le pide a Julia que revise la corrección y, después de la revisión, protege la corrección y reanuda el trabajo en la tarea original.

[!NOTA]

Las características de Mi trabajo y de Revisión del código que Peter utiliza solo están disponibles en Visual Studio Premium y Visual Studio Ultimate.

En este tema

  • Suspender el trabajo actual y comenzar a trabajar en un error

  • Investigar el error

  • Solicitar una revisión de código

  • Aceptar y llevar a cabo (o rechazar) una revisión del código

  • Recibir y responder a una revisión de código

  • Corregir la prueba y el código

  • Proteger la corrección.

  • Reanudar el trabajo en una tarea

Suspender el trabajo actual

Mientras Peter trabaja en un elemento de trabajo pendiente, Julia se acerca para hablar acerca de un error que la está bloqueando.Esta es un área con la que Peter está familiarizado, por lo que crea una tarea para corregir el error y se lo asigna a sí mismo.Peter decide iniciar el trabajo de la corrección inmediatamente.

Antes de empezar a trabajar en el nuevo error, Peter desea asegurarse de que el trabajo actual está apartado en un lugar seguro en el servidor del equipo.En la página de Mi trabajo, Peter elige Suspender para guardar (en Team Foundation Server):

  • Todo el trabajo que ha hecho, incluidos los cambios en el código, las pruebas y otros archivos.

  • Soluciones abiertas, ventanas, puntos de interrupción, variables de la ventana de inspección y otros pequeños elementos del estado de Visual Studio.

Ahora que el área de trabajo esta limpia, Peter arrastra la nueva tarea desde Elementos de trabajo disponibles hasta Trabajo en curso.Está preparado para investigar y escribir la corrección.

[!NOTA]

El contexto de trabajo está vinculado a los elementos de trabajo que se muestran como En Curso en la página de Mi Trabajo.Mediante Suspender y Reanudar, se pueden intercambiar rápidamente las diferentes tareas.Las soluciones y archivos abiertos, los cambios de código y el diseño de Visual Studio se intercambian juntos.

Hh474795.collapse_all(es-es,VS.110).gifSuspender el trabajo actual y comenzar a trabajar en una tarea diferente

Suspender un trabajo

  1. Conectar: Si aún no está conectado al proyecto de equipo en el que desea trabajar, entonces conectar a proyecto de equipo:

    1. En Explorador de equipo, elija Icono de inicioInicio y, después elija Icono Mi trabajoMi Trabajo.
  2. Suspender la tarea actual:

    1. En la sección de Trabajo en curso, elija Suspender.

    2. En el cuadro que aparece, especifique el nombre de este conjunto de trabajo suspendido, y elija el botón de Suspend .El nombre predeterminado es el elemento de trabajo actualmente en curso.

  3. Iniciar trabajo en una tarea nueva, en un error o en otro elemento de trabajo:

    1. Antes de seleccionar un elemento de trabajo, podría:

      • Crear la nueva tarea u otro elemento de trabajo eligiendo Nuevo en Elementos de trabajo disponibles; o

      • Seleccionar una consulta diferente en Elementos de trabajo disponibles.

    2. Arrastre un elemento de trabajo desde Elementos de trabajo disponibles hasta Trabajo en curso.

      Como alternativa, puede cambiar y trabajar con un elemento de trabajo que se suspendió previamente arrastrándolo desde Trabajo suspendido.

SugerenciaSugerencia

Los elementos de trabajo actualmente en curso vinculan los cambios de su código actual y el estado de Visual Studio.Para permitir que Visual Studio le ayude a organizar el trabajo, asegúrese de que los elementos adecuados están en el estado en curso cuando se cambia de una tarea a otra.

Investigar el error

Peter abre y lee el elemento de trabajo que da error.De acuerdo con la descripción que ha sido presentada por un miembro del equipo de prueba, una factura pagada algunas veces aparece señalada incorrectamente como no pagada.Hay una instantánea del entorno de laboratorio conectada para el elemento de trabajo que da error.Peter es capaz de abrir las máquinas virtuales en las que la prueba se ejecutó, consultar la factura incorrecta y retroceder a través del registro IntelliTrace.Realiza un seguimiento de errores hasta el método siguiente:

    public class LocalMath
    {       
        public static bool EqualTo(double a, double b)
        {
          return a == b;
        }

Desde el registro de IntelliTrace, Peter ve que en ocasiones el método devuelve false porque los parámetros se diferencian en una cantidad extremadamente pequeña.Peter sabe que los errores de redondeo de este tipo son inevitables en aritmética de punto flotante y que no es aconsejable probar los números de punto flotante para buscar igualdad.

Hh474795.collapse_all(es-es,VS.110).gifAumentar las pruebas para mostrar el error

Cuando se encuentra un error, éste muestra que había un intervalo en las pruebas unitarias, o que la prueba no coincide con las necesidades reales de los usuarios.Por lo tanto, antes de corregir el error, Peter agrega una prueba que demostrará la presencia de este error.

 
        // Added 2012-02-02 for bug 654321:
        /// <summary>
        /// Make sure that number equality test allows for 
        /// small rounding errors.
        /// </summary>
        [TestMethod]
        public void TestDoublesEqual()
        {
            // We allow a rounding error of 1 in 1000000:
            TestEqual(1, 1e-7, true); // Less than allowed error
            TestEqual(1, 1e-5, false); // More than allowed error
            TestEqual(1000, 1e-7, true); // Less than allowed error
            TestEqual(1000, 1e-5, false); // More than allowed error
        }
        private void TestEqual(double value, double error, bool result)
        {
            // Try different combinations of error and value:
            Assert.IsTrue(result == LocalMath.EqualTo(value + error, value));
            Assert.IsTrue(result == LocalMath.EqualTo(value, value + error));
            Assert.IsTrue(result == LocalMath.EqualTo(value - error, value));
            Assert.IsTrue(result == LocalMath.EqualTo(value, value - error));
        }

Ejecuta la prueba y se produce un error tal y como esperaba.

Explorador de pruebas unitarias que muestra una prueba no superada para Equal

Hh474795.collapse_all(es-es,VS.110).gifHacer que las pruebas sean superadas.

Peter corrige el código:

        public static bool EqualTo(double a, double b)
        {
            // Allow for rounding errors.
            // For example, a == 2.0 and b = 1.99999999999

            const double allowedError = 1/1000000;
            return System.Math.Abs(a - b) < allowedError;
        }

La prueba ahora se supera.

Explorador de pruebas unitarias que muestra una prueba superada para Equal

Solicitar una revisión de código

Cumplen a Peter con la corrección del error, pero no haga proteger el trabajo todavía.El equipo utiliza revisiones de código que aumentan la calidad del código en conjunto y reducen el riesgo de crear otros errores, por lo que Peter usa el Explorador de equipo para solicitar una revisión del código a sus compañeros de equipo Julia y Adán.

Hh474795.collapse_all(es-es,VS.110).gifPara solicitar una revisión de código .

Solicitud de una revisión de código

  1. En Team Explorer, en la página Mi trabajo , elija Revisión de solicitud.

    la página de nueva Revisión de código aparece.

  2. Revisor Especifique uno o más revisores.

  3. Revisión del código Especifique el nombre de revisión.

  4. Ruta de acceso del área Especifique la ruta de acceso de área.

  5. Comentario especifique un comentario a los revisores.

  6. elija Muestre la solicitud.

Los revisores serán notificados mediante correo electrónico de la solicitud.

También puede aplicar una revisión del código de trabajo suspendido, un conjunto, o un conjunto de cambios.

Aceptar o rechazar una revisión de código

Julia recibe y acepta la solicitud de revisión de código.Ella revisa el código, escribe algunos comentarios en los los niveles de archivo y de bloque de código y luego devuelve a Peter la revisión del código.Adán está demasiado ocupado para revisar el código y lo rechaza.

En sus comentarios, Julia señala que la prueba es incorrecta.El error permitido debe ser una fracción especificada de los valores de entrada, no una cantidad constante.Por tanto la prueba debe multiplicar el error por valor.

            // We allow a rounding error of 1 in 1000000
            // as a fraction of the value:
            TestEqual(1, 1e-7, true); // Less than allowed error
            TestEqual(1, 1e-5, false); // More than allowed error
            TestEqual(1000, 1000*1e-7, true); // Less than allowed error
            TestEqual(1000, 1000*1e-5, false); // More than allowed error
SugerenciaSugerencia

Observe que los miembros del equipo utilizan las pruebas como tema de discusión.Si las pruebas son correctas y suficientes, el código también lo será.A diferencia del código, cada prueba representa un caso distinto.Por este motivo, las pruebas a menudo son más fáciles de explicar que el código.

Hh474795.collapse_all(es-es,VS.110).gifPara realizar una revisión de código

Aceptación y respuesta a una revisión de códigoRealización de una revisión de código

  1. En Team Explorer, en la página de Mi trabajo , vaya a la sección de Mis revisiones de código y solicitudes y abra la solicitud.

  2. En la página de Revisión del código , puede:

    • Elija Aceptar o Rechazar para notificar al autor si realizará la revisión.

    • Elija Agregar revisor para agregar otros revisores a la solicitud de revisión de código.

    • Ver los cambios en cada archivo que se ha actualizado para este elemento de trabajo.

    • Expanda Comentarios para comentar los cambios con el autor y los demás revisores.

      • Elija Agregar comentario general

        O bien

        Seleccione un bloque de código y después elija Agregar comentario en el menú contextual.

      • Elija Enviar comentarios para hacer las contribuciones visibles al autor y a otros revisores.
    • Elija Envíe y finalice para completar su revisión, indicando si el código necesita más trabajo.

Responder a una revisión de código

Peter recibela revisión de código de Julia y la responde.

Hh474795.collapse_all(es-es,VS.110).gifResponder a la Revisión de código

Los revisores y el autor del código pueden cambiar comentarios tan a menudo como gusten.La revisión termina cuando el autor la cierra.Con cada contribución a la discusión, los demás participantes serán notificados mediante correo electrónico.

Reacción a una revisión de código

  1. En Team Explorer, en la página de Mi trabajo , vaya a la sección de Mis revisiones de código y solicitudes y haga doble clic en la solicitud.

    También puede abrir el menú contextual para la solicitud y elija Abrir.

  2. Lea los comentarios y responda a ellos según sea necesario.Para responder a un comentario, elija Responder, escriba el comentario en el cuadro que aparece y después elija Aceptar.Para enviar sus comentarios, elija Enviar comentarios.

  3. Para ver un archivo y ver los bloques de código que tienen comentarios o para editar un archivo, vaya a la sección Comentarios.En la subsección Archivos, abra el menú contextual para el archivo y elija bien Comparar (sólo lectura) o Editar archivo.

  4. Cuando usted y los demás revisores terminan de responder a los comentarios de cada uno y usted está listo para cerrar la revisión, haga clic en Cerrar Revisión y después elija ya sea:

    • Completar para indicar que la revisión ha finalizado.

    • -O bien-

    • Abandonar para indicar que está cancelando la revisión.

Corregir la prueba y el código

Tras haber leído los comentarios de Julia, Peter corrige su prueba unitaria como ella sugiere.La prueba ahora falla.Esto muestra que el código todavía no es correcto.

Peter corrige el código:

        /// <summary>
        /// Returns true if two numbers are equal.
        /// </summary>
        public static bool EqualTo(double a, double b)
        {
            // Allow for rounding errors.
            const double allowedErrorMultiple = 1/1000000;
            double allowedError = (System.Math.Abs(a) + System.Math.Abs(b)) * allowedErrorMultiple/2;
            return System.Math.Abs(a - b) < allowedError;
        }

Una vez más, la prueba es superada:

Explorador de pruebas unitarias que muestra una prueba superada para Equal

SugerenciaSugerencia

Para corregir un error, siga el mismo procedimiento que ha seguido en el desarrollo de código.Escriba una prueba que falla y, a continuación, haga que la prueba sea superada.Proteja el código y las pruebas sólo cuando las pruebas se superan.

Peter ahora pone su atención en el caso de prueba en el que se descubrió el error.Los pasos para reproducir el error se describen con claridad en el elemento de trabajo de casos de prueba.Peter sigue los pasos y descubre que las facturas figuran en la lista correctamente.

Proteja la corrección.

Peter protege el código corregido y las pruebas unitarias.El estado del error se establece automáticamente en Resueltoy el valor Asignado A automáticamente se vuelve a asignar a los miembros del equipo de prueba que descubrieron el error.Este miembro del equipo comprobará que el error se ha solucionado y cierra el elemento de trabajo.

Hh474795.collapse_all(es-es,VS.110).gifPara proteger la corrección

Proteger una actualización para corregir un error

  1. En Team Explorer, en la página Mi trabajo, elija Proteger.

  2. Revise el contenido de la página Cambios pendientes para asegurarse de que:

    • Se enumeran todos los cambios pertinentes en Cambios incluidos

    • Todos los elementos de trabajo relevantes se enumeran en Elementos de trabajo relacionados.

  3. Especifique un Comentario para ayudar a su equipo a comprender el propósito de estos cambios cuando examinen el historial del control de versión de los archivos y carpetas cambiados.

  4. Elija Comprobar.

Reanudar el trabajo en una tarea

Peter vuelve a trabajar en su tarea.Es capaz de volver a trabajar rápidamente debido a que todos los cambios realizados en sus código se restauran en su área de trabajo junto con importantes partes de estado, como las ventanas abiertas, los puntos de interrupción y las variables de ventana de inspección.

Hh474795.collapse_all(es-es,VS.110).gifpara reanudar trabajo en una tarea

Reanudar y completar una tarea

  • En Team Explorer, en la página de Mi trabajo , busque la lista de Trabajo suspendido y aplazado .Abra el menú contextual para el elemento.Ahora tiene dos opciones:

    • Si desea reanudar el trabajo suspendido y suspender automáticamente cualquier cambio pendiente en el área de trabajo, seleccione Reanudar.

    • Si desea combinar los trabajos suspendidos con los cambios pendientes en el área de trabajo, seleccione Combinación con En curso.

Hh474795.collapse_all(es-es,VS.110).gifCuando reanude el trabajo

Paneles afectados al suspender un elemento de trabajo

Cuando reanude el trabajo, se restaura Visual Studio:

  • Su solución abierta

  • Su código cambia

  • El estado y la posición de las ventanas abiertas

  • Puntos de interrupción

  • Variables y expresiones de la ventana inspección

  • Marcadores