Sdílet prostřednictvím


Běžný den vývojáře ALM: Pozastavení práce, oprava chyby a provedení revize kódu

 

Publikováno: duben 2016

Účinný způsob jedním kliknutím pro přepnutí pracovního kontextu z jednoho vlákna práce na jiné je k dispozici v Visual Studio Premium a Visual Studio Ultimate se sadou Team Foundation Server. Členy týmu si mohou také snadno vyměňovat zprávy o navrhovaných změnách kódu. Toto téma ukazuje tyto funkce, a pokračuje tak v kurzu, který sleduje po dobu jednoho dne členy týmu fiktivního týmu agile.

Peter byl zaneprázdněn psát nějaký kód ke splnění úkolu nevyřízené položky zboží.Nicméně chybu našli jeho kolegové který je blokování a chce ihned opravit. Přeruší prováděnou práci a chybu opraví. Požádá Helenu o kontrolu opravy a po přezkoumání ověří opravu a pokračuje v práci na původním úkolu.

Poznámka

Funkce Moje práce a přezkoumání kódu, které používá Petr, jsou k dispozici pouze v Visual Studio Premium a Visual Studio Ultimate.

V tomto tématu

  • Pozastaví aktuální práci a začne pracovat na chybě

  • Prozkoumat chybu

  • Žádost o přezkoumání kódu

  • Přijmout a provést (nebo odmítnout) přezkoumání kódu

  • Přijímat a reagovat na přezkoumání kódu

  • Oprava testu a kódu

  • Vrátit se změnami opravu

  • Pokračovat v práci na úkolu

Pozastavit aktuální práci

Jak Peter pracuje na nevyřízené položce, Julia s ním přichází probrat chybu, která ji brzdí. Nachází se v oblasti, ve které se Peter vyzná, proto vytvoří úkol k opravě chyby a přiřadí ho sám sobě. Rozhodne se okamžitě zahájit práci na opravě.

Předtím, než začne pracovat na nové chybě, se chce Peter ujistit, že jeho aktuální práce je odložena na bezpečném místě na serveru týmu. Na stránce Má práce zvolí Peter možnost Pozastavit k uložení (na serveru Team Foundation Server):

  • Veškerá práce, kterou provedl, včetně změn v kódu, testů a dalších souborů.

  • Otevřete řešení, okna, zarážky, proměnné okno kukátka a ostatní bity stavu aplikace Visual Studio.

Teď, když je jeho pracovní prostor čistý, Peter přetáhne nový úkol z oblasti Pracovní položky k dispozici do oblasti Probíhající práce. Je připraven pro výzkum a zápis opravy.

Poznámka

Váš kontext pracovních položek je propojen s pracovními položkami, které se na stránce Moje pracovní položky ukazují jako Probíhá.Pomocí příkazů Pozastavit a Pokračovat můžete rychle přepínat mezi různými úkoly.Otevřete řešení a soubory, změny kódu a rozložení v aplikaci Visual Studio jsou všechny zapnuty dohromady.

Pozastavení aktuální práce a zahájení práce na jiném úkolu

Přerušení práce

  1. Connect: Pokud již nejste připojeni k týmovému projektu, na kterém chcete pracovat, připojte se k týmovému projektu:

    1. V Průzkumníkovi týmových projektů zvolte možnost Ikona Domovská stránka Domovská stránka a poté možnost Ikona Moje práce Moje práce.
  2. Pozastavit aktuální úlohy:

    1. V části Probíhající práce zvolte možnost Pozastavit.

    2. Do zobrazeného pole zadejte název, který chcete přidělit této sadě pozastavené práce, a pak zvolte tlačítko Pozastavit. Výchozí název je vaše aktuální pracovní položka v průběhu.

  3. Zahájení činnosti nového úkolu, chyba nebo jiná pracovní položka:

    1. Před výběrem pracovní položky můžete být vhodné:

      • Vytvořte novou úlohu nebo jinou pracovní položku pomocí příkazu Nový v nabídce Pracovní položky k dispozici, nebo

      • Vyberte jiný dotaz pod Pracovní položky k dispozici.

    2. Přetáhněte pracovní položku z části Pracovní položky k dispozici na Probíhající práce.

      Alternativně můžete přepnout na pracovní položku, kterou jste již dříve pozastavili, jejím přetažením z části Pozastavená práce.

Tip

Pracovní položky, které jsou nyní v průběhu, odkazují na aktuální změny v kódu a stav aplikace Visual Studio.Chcete-li povolit aplikaci Visual Studio pomoci vám organizovat práci, ujistěte se, že příslušné položky jsou ve stavu probíhající při přepínání z jednoho úkolu do druhého.

Prozkoumat chybu

Petr otevře a přečte pracovní položku chyby. Podle popisu napsaného členem testovacího týmu je zaplacená faktura někdy nesprávně označena jako nezaplacená. Je k dispozici snímek prostředí laboratoře přiřazený k pracovní položce chyby. Petr může otevřít virtuální počítače, na kterých byl test spuštěn, zobrazit nesprávnou fakturu a přejít zpět prostřednictvím protokolu IntelliTrace. Sleduje selhání až k následující metodě:

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

Z protokolu IntelliTrace Peter vidí, že někdy vrátí metoda hodnotu „false“ protože se parametry liší o velmi malé množství. Petr ví, že chyby zaokrouhlení tohoto druhu jsou nevyhnutelné v aritmetice plovoucí desetinné čárky a že je špatný postup testovat rovnost čísel s plovoucí desetinnou čárkou.

Posílit testy pro zobrazení chyby

Při nalezení chyby ukazuje, že existuje mezera v testech jednotky nebo že test neodpovídá skutečným potřebám uživatelů. Před opravou chyb tak Peter přidá test, který prokáže přítomnost této chyby.

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

Spustí test, který podle očekávání selže.

Selhal test jednotky Test Průzkumník zobrazující rovná

Zajištění úspěšnosti testů

Petr opravuje kód:

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

Test nyní skončí úspěchem:

Zobrazení Test Explorer jednotky předané test rovná

Žádost o přezkoumání kódu

Petr je spokojen s jeho opravou chyby, ale nebude ještě kontrolovat svou práci. Jeho tým používá revizi kódu ke zvýšení celkové kvality kódu a snížení nebezpečí vytvoření dalších chyb, takže Peter použil nástroj Team Explorer a požádal o přezkoumání kódu jeho pomocníky v týmu Helenu a Adama.

Žádost o přezkoumání kódu

Požaduje přezkoumání kódu

  1. V Průzkumníku týmových projektů na stránce Má práce zvolte možnost Vyžádat revizi.

    Zobrazí se stránka Nová revize kódu.

  2. Recenzent Zadejte jednoho nebo více recenzentů.

  3. Přezkoumání kódu Zadejte název kontroly.

  4. Oblast cesty Určete cestu oblasti.

  5. Komentář Zadejte komentář pro recenzenty.

  6. Zvolte možnost Odeslat žádost.

Recenzenti budou upozorněni o žádosti prostřednictvím e-mailu.

Můžete také požádat o přezkoumání kódu pozastavené práce, sady odložených změn nebo sady změn. Chcete-li zobrazit seznam sad změn, otevřete Průzkumník správy zdrojového kódu a zvolte tlačítko Historie.

Přijmout a odmítnout přezkoumání kódu

Helena obdrží žádost o revizi kódu a přijme ji. Zkontroluje kód, zapíše některé komentáře na úrovni kódu bloku a souboru a potom odešle zpět Petrovi k přezkoumání kódu. Adam je příliš zaneprázdněn, aby kód zkontrolovat a odmítá.

Ve svém komentáři Julia poukazuje na skutečnost, že test je chybný. Přípustná chyba by měla být zadaný zlomek vstupních hodnot, nikoli konstantní množství. Takže test by měl vynásobit chybu podle hodnoty.

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

Tip

Všimněte si, že členové týmu používají testy jako předměty pro diskusi.Pokud jsou testy správné a dostatečné, kód bude také.Na rozdíl od kódu každý test představuje zvláštní případ.Z tohoto důvodu je diskuze na téma testu jednodušší, než na téma kódu.

Provedení přezkoumání kódu

Přijímat a reagovat na přezkoumání kódu

Provádění přezkoumání kódu

  1. V Průzkumník týmových projektůdále Moje práce stránku, přejděte můj kód recenze & požadavky oddílu a otevřete žádost o.

  2. Na stránce Revize kódu můžete:

    • Zvolte Přijmout nebo Odmítnout a informujte tak autora, zda budete provádět revizi.

    • Zvolte Přidání recenzenta, pokud chcete přidat ostatní recenzenty k žádosti o revizi kódu.

    • Zobrazit změny každého souboru, který byl aktualizován pro tuto pracovní položku.

    • Po rozbalení Komentářů můžete projednávat změny s autorem a jinými recenzenty.

      • Zvolte možnost Přidat celkový komentář

        -nebo-

        Vyberte blok kódu a pak zvolte možnost Přidat komentář z místní nabídky.

      • Zvolte možnost Odeslat poznámky a umožněte tak autorovi a ostatním recenzentům vidět vaše příspěvky.
    • Zvolte možnost Odeslat a dokončit, dokončete tak revizi a dejte tak na vědomí, zda kód potřebuje dále upravit.

Odpověď na přezkoumání kódu

Petr přijímá a reaguje na přezkoumání kódu od Julie.

Odpověď na přezkoumání kódu

Recenzenti a autor kódu si mohou vyměňovat své názory tak často, jak chtějí. Přezkum ukončí, když ho autor uzavře. Při každém příspěvku do diskuse budou ostatní účastníci upozorněni prostřednictvím e-mailu.

Reagovat na přezkoumání kódu

  1. V Průzkumník týmových projektůdále Moje práce stránku, přejděte kód recenze & žádost oddílu a poklepejte na žádost.

    Můžete také otevřít místní nabídku pro požadavek a zvolit Otevřít.

  2. Přečtěte si podle potřeby komentáře a odpovědi na ně. Chcete-li odpovědět na komentář, zvolte možnost Odpovědět, zadejte komentář do pole, které se zobrazí, a potom zvolte OK. Chcete-li odeslat své poznámky, zvolte možnost Poslat poznámky.

  3. Chcete-li zobrazit soubor a vidět bloky kódu, které mají komentáře, nebo upravit soubor, přejděte do části Komentáře. V dílčím oddílu Soubory otevřete místní nabídku pro soubor a zvolte možnost Porovnat (jen pro čtení) nebo Upravit soubor.

  4. Když vy a další recenzenti dokončí odpovědi na komentáře ostatních a vy jste připraveni zavřít revizi, klepněte na tlačítko Uzavřít revizia pak zvolte buď:

    • Dokončením označíte, že je revize dokončena.

    • —nebo—

    • Opustit k označení, že kontrolu rušíte.

Oprava testu a kódu

Po přečtení komentářů Heleny opraví Peter podle doporučení svoji testovou jednotku. Test nyní skončí neúspěchem: Z toho vyplývá, že kód ještě není správný.

Petr opravuje kód:

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

Test je ještě jednou úspěšný:

Zobrazení Test Explorer jednotky předané test rovná

Tip

Chcete-li opravit chybu, postupujte podle stejného postupu jako při vývoji kódu.Napište test, který se nezdaří a proveďte test, který se zdaří.Vraťte kód testy se změnami pouze v případě, že testy proběhly úspěšně.

Petr se nyní zaměří na testovací případ, ve kterém chyba byla odhalena chyba. Kroky pro reprodukci chyb jsou jasně popsány v pracovní položce testového případu. Postupuje podle pokynů a zjistí, že faktury jsou uvedeny správně.

Vrátit se změnami opravu

Petr kontroluje pevný kód a testy jednotek. Stav chyb je automaticky nastaven na Vyřešenoa hodnota Přiřazené k je automaticky přiřazena k členu testovacího týmu, který chybu objevil. Člen týmu ověří, zda chyba byla opravena a zavře pracovní položku.

Kontrola opravy

Kontrola v aktualizaci chcete-li opravit chybu

  1. V Průzkumníku týmových projektů na stránce Má práce zvolte možnost Vrátit se změnami.

  2. Prohlédněte si obsah stránky Čekající změny a ujistěte se, že:

    • Všechny důležité změny jsou uvedeny v části Zahrnuté změny

    • Všechny relevantní pracovní položky jsou uvedeny v části Související položky práce.

  3. Zadejte Komentář, aby vašemu týmu pomohl pochopit účel těchto změn při prohlížení v historii řízení verzí změněných souborů a složek.

  4. Vyberte Vrátit se změnami.

Pokračovat v práci na úkolu

Petr pokračuje v práci na svém úkolu. Je schopen se rychle vrátit k práci, protože všechny jeho změny kódu jsou v jeho pracovním prostoru obnoveny spolu s důležitými podrobnostmi, jako je otevřené okno, zarážky a proměnné v okně Kukátko.

Pokračování v práci na úkolu

Pokračování a dokončení úkolu

  1. V Team Explorer, dále Moje práce stránky, Najít Suspended & vkládací práci seznam. Otevřete místní nabídku pro položku. Máte dvě možnosti:

    • Pokud chcete pokračovat v pozastavené práci a automaticky pozastavit všechny čekající změny v pracovním prostoru, vyberte možnost Pokračovat.

    • Pokud chcete sloučit pozastavenou práci s čekajícími změnami, které jsou již ve vašem pracovním prostoru, zvolte možnost Sloučit s probíhající prací.

Při obnovení práce

Vliv pozastavení pracovní položku podokna.

Při obnovení práce aplikace Visual Studio obnoví:

  • Otevřete řešení

  • Změny kódu

  • Stav a umístění otevřených oken

  • Zarážky

  • Proměnné a výrazy okna kukátka

  • Záložky

Ověření, že chyba odešla

Pokud chyb byla nalezena týmem test, se budou propojeny někdy test na chyby, které budou znovu spustit. Další informace.