Domanda

Se vuoi spostare il tuo processo di sviluppo dallo sviluppo guidato dai test a Behavior-Driven Development quale percorso prenderesti o consiglieresti?

Quali sono le possibili sfide che potresti dover affrontare? Spostare il processo di sviluppo sarà un compito enorme in quanto il paradigma cambia, si verifica un cambiamento nel processo di pensiero e le prospettive dell'esecuzione del progetto cambiano.

Qualcuno ha avuto una vera esperienza nel fare questo cambiamento senza intoppi (hmm ... potrebbe non essere così fluido)?

O qualcuno sta cercando di fare questo turno?

Capisco che questo potrebbe non essere applicato a tutti. Ma quale sarebbe il passo logico nel caso in cui qualcuno debba andare verso questo.

Ho solo informazioni di base su BDD dal seguente post SO. Differenze primarie tra TDD e BDD

I punti chiave che sto cercando sono:

  • Che tipo di formazione per sviluppatori è necessaria?
  • Ci sono cambiamenti significativi nel processo SDLC?
  • Quali sono gli strumenti BDD che consigliate (.net)?
  • Buone risorse BDD (.net)

Grazie in anticipo.

EDIT:

Per quanto riguarda BDD Framework per .NET, mi sono imbattuto in questo post in SO Framework BDD più maturo per .NET

È stato utile?

Soluzione

Quando ho iniziato a guardare BDD ho studiato tutti i framework là fuori (per .net) e ho finito per usarne nessuno. Il motivo principale è che la comunità non si è ancora accontentata di una sintassi e delle migliori pratiche, quindi ho continuato a utilizzare NUnit con una classe base basata su post sul blog di Ben Scheirman. Questo ha funzionato davvero bene perché BDD non riguarda gli strumenti ma rende i test puliti e comprensibili, il che è totalmente possibile con strumenti normali come nunit.

Rispetto ai miei vecchi test unitari, il nuovo stile è molto più leggibile e pone molta più attenzione alla denominazione e al comportamento. Non siamo così lontani dal stampare i nomi dei metodi e discutere con gli uomini d'affari sul sistema.

Alcune letture aggiuntive di Scott Bellware: Sviluppo guidato dal comportamento

Esempio di test:

public class WhenAddingLineItemToEmptyOrder : BDDBase
{
    Order order;

    [SetUp]
    public void Arrange()
    {
        order = new Order();
    }

    public void Act() // called by BDDBase
    {
        LintItem item = new LineItem();
        item.Quantity = 1;
        item.Price = 10;
        order.AddLineItem(item);
    }

    [Test]
    public void TotalPriceShouldBeUpdated()
    {
        Assert.AreEqual(10, order.TotalPrice);
    }

    [Test]
    public void OrderCanBeCheckedOut()
    {
        Assert.IsTrue(order.CanBeCheckedOut)
    }
}

Altri suggerimenti

Per quanto ho capito ... BDD è un nuovo modo di vedere TDD. È più uno spostamento mentale che una nuova tecnologia.

Quello che intendo dire è che potresti tecnicamente usare gli strumenti di unit test per fare BDD

Behavior Driven Development è uno strumento Agile moderno che consente alla tua azienda di riesaminare le competenze chiave degli sviluppatori al fine di trovare modi migliori di comunicazione, aumentando l'interlacciamento della visione di gestione, che ti consentirà di creare in modo efficiente un valore fondamentalmente nuovo livello della tua posizione intrinseca sul mercato.
Il cambio di mentalità da Test Driven Development incarna un cambiamento di paradigma che implica un'analisi approfondita del flusso di lavoro, un feedback costante attraverso metodologie Agile all'avanguardia e un'attenta attenzione alla matrice di transizione dello scenario comportamentale sottostante.

Potresti voler ascoltare Hanselminutes Show # 146 - Test Driven Development is Design - L'ultima parola su TDD .

La cosa più interessante che Scott Bellware afferma: "Test Driven Development is Design"

Il libro che lo ha reso " attiva " per lui: Sviluppo guidato dai test in Microsoft & # 174; .NET (per sviluppatori .NET, ascolta il podcast per contesto)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top