Share via


Halten Sie die Arbeit an, reparieren Sie einen Fehler und leiten Sie eine Codeüberprüfung

Eine leistungsstarke Methode, um per Mausklick den Arbeitskontext von einem Arbeitsthread in einen anderen umzuschalten, ist in Visual Studio Premium und Visual Studio Ultimate mit Team Foundation Server verfügbar. Außerdem können Teammitglieder leicht Nachrichten über vorgeschlagene Änderungen am Code austauschen. In diesem Thema werden diese Funktionen erläutert. Damit wird ein Lernprogramm fortgesetzt, in dem die Mitglieder eines fiktiven, aktiven Teams im Laufe eines Tages verfolgt werden.

Peter war damit beschäftigt, Code für die Erfüllung einer Aufgabe für Backlogelemente zu schreiben. Allerdings haben seine Kollegen einen Fehler gefunden, der sie blockiert. Peter möchten den Fehler sofort beheben. Er unterbricht seine Arbeit und behebt den Fehler. Es bittet Julia, den Fehler zu überprüfen. Nach der Überprüfung prüft er die Lösung und arbeitet weiter an der ursprünglichen Aufgabe.

Hinweis

Die Funktionen "Meine Arbeit" und "Codeüberprüfung", die Peter verwendet, sind nur in Visual Studio Premium und Visual Studio Ultimate verfügbar.

In diesem Thema

  • Unterbrechen der aktuellen Arbeit und Starten der Arbeit an einem Fehler

  • Untersuchen des Fehlers

  • Anfordern einer Codeüberprüfung

  • Übernehmen und Durchführen (oder Ablehnen) einer Codeüberprüfung

  • Empfangen und Reagieren auf eine Codeüberprüfung

  • Korrigieren des Tests und des Codes

  • Einchecken der Lösung

  • Fortsetzen der Arbeit an einer Aufgabe

Unterbrechen der aktuellen Arbeit

Während Peter an einem Backlogelement arbeitet, möchte Julia einen Fehler besprechen, durch den sie blockiert wird. Der Fehler liegt in einem Bereich, mit dem Peter vertraut ist. Daher erstellt eine Aufgabe zur Fehlerbehebung und weist sich diese Aufgabe selbst zu. Er entscheidet, sofort mit der Arbeit an der Lösung zu beginnen.

Bevor er beginnt, am neuen Fehler zu arbeiten, möchte Peter überprüfen, ob sich seine aktuelle Arbeit an einem sicheren Ort auf dem Server des Teams befindet. Auf der Seite Meine Arbeit wählt Peter Unterbrechen, um zu speichern (in Team Foundation Server):

  • Die gesamte Arbeit, die er erledigt hat, einschließlich Änderungen am Code, an Tests und anderen Dateien.

  • Geöffnete Projektmappen, Fenster, Haltepunkte, Überwachungsfenstervariablen und andere Teile im Visual Studio-Zustand.

Wenn sein Arbeitsbereich bereinigt ist, zieht Peter die neue Aufgabe aus Verfügbare Arbeitsaufgaben in "In Bearbeitung" befindliche Arbeit. Es ist bereit, den Fehler zu untersuchen und eine Lösung zu schreiben.

Hinweis

Der Arbeitskontext ist mit Arbeitsaufgaben verknüpft, die im Zustand "In Bearbeitung" auf der Seite "Meine Arbeit" angezeigt werden.Mit Unterbrechen und Fortsetzen können Sie schnell zwischen unterschiedlichen Aufgaben wechseln.Die geöffneten Projektmappen und Dateien, Codeänderungen und Visual Studio-Layouts werden zusammen umgeschaltet.

So unterbrechen Sie die aktuelle Arbeit und beginnen mit einer anderen Aufgabe

Aussetzen einiger Arbeiten

  1. **Verbindung herstellen.**Wenn Sie nicht bereits über eine Verbindung mit dem Teamprojekt verfügen, in dem Sie arbeiten möchten, stellen Sie eine Verbindung mit dem Teamprojekt her:

    1. Wählen Sie in Team Explorer die Option Symbol "Startseite" Startseite und dann Symbol „Meine Arbeit“ Meine Arbeit aus.
  2. Unterbrechen der aktuellen Aufgabe:

    1. Im Abschnitt "In Bearbeitung" befindliche Arbeit wählen Sie Unterbrechen aus.

    2. Im angezeigten Feld geben Sie den Namen ein, den Sie diesem Satz unterbrochenen Aufgaben geben möchten, und wählen Sie anschließend die Schaltfläche Unterbrechen aus. Der Standardname ist die in Bearbeitung befindliche Arbeitsaufgabe.

  3. Beginnen Sie mit der Arbeit an der neuen Aufgabe, am Fehler oder an einer anderen Arbeitsaufgabe:

    1. Bevor Sie eine Arbeitsaufgabe ausgewählt haben, sollten Sie Folgendes beachten:

      • Erstellen Sie eine neue Aufgabe oder andere Arbeitsaufgabe, indem Sie unter Verfügbare ArbeitsaufgabenNeu auswählen, oder

      • Wählen Sie eine andere Abfrage unter Verfügbare Arbeitsaufgaben aus.

    2. Ziehen Sie eine Arbeitsaufgabe aus Verfügbare Arbeitsaufgaben in "In Bearbeitung" befindliche Arbeit.

      Alternativ können Sie zu einer Arbeitsaufgabe wechseln, die Sie zuvor unterbrochen haben, indem Sie sie unter Angehaltene Arbeit ziehen.

Tipp

Die ausgeführten Arbeitsaufgaben werden mit den aktuellen Codeänderungen und dem Visual Studio-Zustand verknüpft.Damit Sie mit Visual Studio die Arbeit organisieren können, müssen Sie sicherstellen, dass die entsprechenden Elemente im Zustand "In Bearbeitung" sind, wenn Sie von einer Aufgabe zu einer anderen wechseln.

Untersuchen des Fehlers

Peter öffnet und liest die Arbeitsaufgabe zur Fehlerbehebung. Gemäß der Beschreibung, die von einem Mitglied des Testteams geschrieben wurde, wird eine bezahlte Rechnung manchmal fälschlicherweise aus unbezahlt gekennzeichnet. Es gibt eine Lab-Umgebungsmomentaufnahme, die der Arbeitsaufgabe zur Fehlerbehebung angefügt wurde. Peter kann die virtuellen Computer starten, auf denen der Test ausgeführt wurde, die falsche Rechnung erkennen und die Schritte im IntelliTrace-Protokolls zurückverfolgen. Er verfolgt den Fehler nach der folgenden Methode:

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

Im IntelliTrace-Protokoll erkennt Peter, dass die Methode "false" zurückgibt, da die Parameter sich in einem sehr geringen Betrag unterscheiden. Peter weiß, dass Rundungsfehler dieser Art in der Gleitkommaarithmetik unvermeidlich sind und dass es nicht üblich ist, Gleitkommazahlen auf Gleichheit zu testen.

Erweitern der Tests, um den Fehler anzuzeigen

Wenn ein Fehler gefunden wird, zeigt dies, dass eine Lücke in Komponententests vorliegt oder dass der Test nicht mit den tatsächlichen Anforderungen der Benutzer übereinstimmt. Daher fügt Peter vor der Behebung des Fehlers einen Test hinzu, mit dem das Vorhandensein dieses Fehlers gezeigt wird.

 
        // 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));
        }

Es führt den Test aus, der wie erwartet fehlschlägt.

Komponententest-Explorer zeigt fehlerhaften Vergleichstest an

Erfolgreiche Ausführung des Tests

Peter korrigiert den Code:

        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;
        }

Die Test wird nun erfolgreich ausgeführt.

Komponententest-Explorer zeigt bestandenen Vergleichstest an

Anfordern einer Codeüberprüfung

Peter ist mit Lösung für den Fehler zufrieden, doch er checkt die Arbeit noch nicht ein. Das Team verwendet Codeüberprüfungen, um die Gesamtcodequalität zu erhöhen und das Risiko der Erstellung weiterer Fehler zu verringern. Daher verwendet Peter Team Explorer, um von den Teammitgliedern Julia und Adam eine Codeüberprüfung anzufordern.

So fordern Sie eine Codeüberprüfung an

My Work page - Request Review link. New Code Review page - Enter the name of a reviewer dropdown, Enter a description (optional) textbox, Submit Request button.

  1. Wählen Sie in Team Explorer auf der Seite Meine Arbeit den Eintrag Überprüfung anfordern aus.

    Die Seite Neue Codeüberprüfung wird angezeigt.

  2. Bearbeiter Geben Sie mindestens einen Bearbeiter an.

  3. Codeüberprüfung Geben Sie den Namen der Überprüfung an.

  4. Bereichspfad Geben Sie den Bereichspfad an.

  5. Kommentar Geben Sie einen Kommentar an die Bearbeiter an.

  6. Wählen Sie Anforderung übertragen aus.

Die Bearbeiter werden per E-Mail über die Anforderung benachrichtigt.

Sie können auch eine Codeüberprüfung für unterbrochene Arbeit, ein Shelveset oder ein Changeset anfordern. Um eine Liste von Changesets anzuzeigen, öffnen Sie Quellcodeverwaltungs-Explorer, und wählen Sie die Schaltfläche Verlauf aus.

Übernehmen oder Ablehnen einer Codeüberprüfung

Julia empfängt der Codeüberprüfungsanforderung und akzeptiert sie. Sie überprüft den Code, schreibt einige Kommentare auf den Datei- und Codeblockebenen und sendet dann die Codeüberprüfung an Peter zurück. Adam ist zu sehr ausgelastet, um den Code zu überprüfen, und lehnt die Anforderung ab.

In den Kommentaren unterstreicht Julia, dass der Test falsch ist. Der zulässige Fehler sollte ein angegebener Bruchteil der Eingabewerte und keine konstante Menge sein. Daher sollte der Test den Fehler mit dem Wert multiplizieren.

            // 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

Tipp

Beachten Sie, dass die Teammitglieder die Tests als Schwerpunkt für Diskussion verwenden.Wenn die Tests richtig und ausreichend sind, ist der Code auch richtig.Anders als der Code stellt jeder Test einen separaten Fall dar.Aus diesem Grund sind häufig die Tests einfacher zu besprechen als der Code.

So führen Sie eine Codeüberprüfung aus

My Work page - code review item. Code Review page - Decline link, Comment, Decline button.Diff window. Code Review page - Accept link, Overall comment, code block comment

  1. Wechseln Sie in Team Explorer auf der Seite Meine Arbeit zum Abschnitt Meine Codeüberprüfungen & Anforderungen und öffnen Sie die Anforderung.

  2. Auf der Seite Codeüberprüfung haben Sie folgende Möglichkeiten:

    • Wählen Sie Ablehnen oder Annehmen, um den Autor darüber zu benachrichtigen, ob Sie die Überprüfung durchführen.

    • Wählen Sie Bearbeiter hinzufügen aus, um der Codeüberprüfungsanforderung weitere Bearbeiter hinzuzufügen.

    • Zeigen Sie die Änderungen an jeder Datei an, die für diese Arbeitsaufgabe aktualisiert wurde.

    • Erweitern Sie Kommentare, um die Änderungen mit dem Autor und anderen Bearbeitern zu erörtern.

      • Wählen Sie Zusammenfassenden Kommentar hinzufügen aus.

        - oder -

        Wählen Sie einen Codeblock und dann im Kontextmenü Kommentar hinzufügen aus.

      • Wählen Sie Kommentare senden aus, um Ihre Beiträge für den Autor und andere Bearbeiter sichtbar zu machen.
    • Wählen Sie Senden & Fertig stellen aus, um die Überprüfung abzuschließen und anzugeben, ob für den Code mehr Arbeit erforderlich ist.

Reagieren auf die Codeüberprüfung

Peter empfängt und reagiert auf die Codeüberprüfung von Julia.

So reagieren Sie auf die Codeüberprüfung

Die Bearbeiter und der Autor des Codes können in beliebiger Häufigkeit Kommentare austauschen. Die Überprüfung ist beendet, sobald der Autor sie schließt. Über jeden Beitrag zur Diskussion werden die anderen Teilnehmer per E-Mail benachrichtigt.

My Work page - code review item. Code Review page - Overall comment, file comment, Close Review link.

  1. Wechseln Sie in Team Explorer auf der Seite Meine Arbeit zum Abschnitt Meine Codeüberprüfungen & Anforderung und doppelklicken Sie auf die Anforderung.

    Sie können auch das Kontextmenü für die Anforderung öffnen und Öffnen auswählen.

  2. Lesen Sie die Kommentare, und beantworten Sie diese nach Bedarf. Um auf einen Kommentar zu antworten, wählen Sie Antworten aus, geben Sie den Kommentar im angezeigten Feld ein, und wählen Sie dann OK aus. Um Ihre Kommentare zu senden, wählen Sie Kommentare senden aus.

  3. Um eine Datei anzuzeigen und die Codeblöcke mit Kommentaren anzuzeigen oder um eine Datei zu bearbeiten, wechseln Sie in den Abschnitt Kommentare. Öffnen Sie im Unterabschnitt Dateien das Kontextmenü für die Datei, und wählen Sie entweder Vergleichen (schreibgeschützt) oder Datei bearbeiten aus.

  4. Wenn Sie und die anderen Bearbeiter nicht mehr auf die jeweiligen Kommentare antworten und Sie die Überprüfung schließen möchten, klicken Sie auf Prüfung schließen, und wählen Sie dann aus folgenden Möglichkeiten aus:

    • Vollständig, um anzugeben, dass die Überprüfung abgeschlossen ist.

    • – oder –

    • Abbrechen, um anzugeben, dass Sie die Überprüfung abbrechen.

Korrigieren des Tests und des Codes

Peter hat die Kommentare von Julia gelesen und korrigiert den Komponententest nach ihrem Vorschlag. Der Test schlägt jetzt fehl. Dies zeigt, dass der Code noch nicht korrekt ist.

Peter korrigiert den Code:

        /// <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;
        }

Der Test wird erneut erfolgreich ausgeführt:

Komponententest-Explorer zeigt bestandenen Vergleichstest an

Tipp

Um einen Fehler zu beheben, führen Sie die gleichen Verfahren wie in der Codeentwicklung durch.Schreiben Sie einen Test, der fehlschlägt, und sorgen Sie anschließend dafür, dass der Test erfolgreich ausgeführt wird.Checken Sie den Code und die Tests nur ein, wenn die Tests bestanden werden.

Peter wendet jetzt seine Aufmerksamkeit dem Testfall zu, in dem der Fehler gefunden wurde. Die Schritte zur Reproduktion des Fehlers sind eindeutig in der Arbeitsaufgabe beschrieben. Es folgt den Schritten und erkennt, dass die Rechnungen ordnungsgemäß aufgelistet werden.

Einchecken der Lösung

Peter checkt den Code mit dem behobenen Fehler und die Komponententests ein. Der Zustand des Fehlers wird automatisch auf Gelöst festgelegt, und der Wert Zugewiesen zu wird automatisch neu dem Mitglied des Testteams zugewiesen, das den Fehler ermittelt hat. Dieses Teammitglied überprüft, ob der Fehler korrigiert wurde, und schließt die Arbeitsaufgabe.

So checken Sie die Lösung ein

Update zum Korrigieren eines Fehlers einchecken

  1. Wählen Sie in Team Explorer auf der Seite Meine Arbeit die Option Einchecken aus.

  2. Überprüfen Sie den Inhalt der Seite Ausstehende Änderungen auf folgende Kriterien:

    • Alle relevanten Änderungen werden unter Eingeschlossene Änderungen aufgeführt

    • Alle relevanten Arbeitsaufgaben werden unter Verknüpfte Arbeitsaufgaben aufgeführt.

  3. Geben Sie einen Kommentar ein. So vermitteln Sie den Teammitgliedern den Zweck der vorgenommenen Änderungen, wenn sie sich den Versionskontrollverlauf der geänderten Dateien und Ordner ansehen.

  4. Wählen Sie Einchecken aus.

Fortsetzen der Arbeit an einer Aufgabe

Peter fasst die Arbeit an der Aufgabe zusammen. Er kann schnell weiterarbeiten, da alle Codeänderungen zusammen mit den wichtigen Zustandsbits, wie geöffneten Fenstern, Haltepunkte und Überwachungsfenstervariablen in seinem Arbeitsbereich wiederhergestellt werden.

So setzen Sie die Arbeit an einer Aufgabe fort

Wiederaufnehmen und Abschließen einer Aufgabe

  • Suchen Sie in Team Explorer auf der Seite Meine Arbeit die Liste Angehalten & Abgelegte Arbeit. Öffnen Sie das Kontextmenü für das Element. Sie haben zwei Möglichkeiten:

    • Wenn Sie die angehaltene Arbeit fortsetzen und alle ausstehenden Änderungen im Arbeitsbereich automatisch unterbrechen möchten, wählen Sie Fortsetzen aus.

    • Wenn Sie die angehaltene Arbeit mit ausstehenden Änderungen bereits im Arbeitsbereich zusammenführen möchten, wählen Sie Mit "In Bearbeitung" zusammenführen aus.

Fortsetzen der Arbeit

Vom Anhalten von Arbeitsaufgaben betroffene Bereiche.

Wenn Sie die Arbeit fortsetzen, stellt Visual Studio Folgendes wieder her:

  • Die geöffnete Lösung

  • Die Codeänderungen

  • Den Zustand und die Position eines geöffneten Fenstern

  • Haltepunkte

  • Überwachungsfenstervariablen und -ausdrücke

  • Lesezeichen

Überprüfung, ob der Bug beseitigt ist

Wenn der Bug vom Testteam gefunden wurde, hat das Team einige Testfälle mit dem Bug verknüpft, die erneut durchgeführt werden. Weitere Informationen.