Qual è il ruolo di un architetto del software nel processo di sviluppo basato sui test?

8

A quanto ho capito, Test-Driven Development riguarda la scrittura di test per definire le specifiche del programma (puoi correggermi se ho torto).

Se c'è qualcuno responsabile della scrittura delle specifiche (inclusa un'API pubblica) per il software (chiamiamolo architetto del software), ciò significa che l'architetto del software deve scrivere tutti i test?

O l'architetto del software scrive le specifiche e poi le consegna agli sviluppatori per scrivere dei test?

O consenti alle specifiche di crescere organicamente consentendo a tutti gli sviluppatori di scrivere i propri test e dimenticare di avere un architetto del software?

    
posta Robert Harvey 24.11.2010 - 21:44
fonte

2 risposte

5
Test-Driven Development is about writing tests to define the program specifications

Non scrivi test per definire le specifiche, le descrizioni dei test, le user story e le descrizioni delle caratteristiche sono le specifiche, nel senso di "dead trees".

Per verificare, il processo TDD in breve è:

  • definisce un progetto in termini di funzionalità
  • descrive lo stakeholder, il comportamento e l'obiettivo di ogni funzione utilizzando le storie degli utenti
  • specifica i dati previsti, attivando eventi / condizioni e comportamenti / risultati associati a una storia utente utilizzando le descrizioni dei test [e questo completa la 'specifica']
  • seleziona un set di funzionalità per ogni iterazione; le iterazioni dovrebbero essere brevi [sto omettendo le fasi di pianificazione e stima per brevità]
    • codifica un test per una funzionalità (non funzionerà, ma devi prendere decisioni API per codificare il test)
    • implementa un numero sufficiente di funzionalità in modo che il test passi
    • rifatta il codice se necessario
    • ripetere con il test successivo fino al completamento della funzione
    • ripetere con la funzione successiva fino al completamento dell'iterazione
  • ripetere con l'iterazione successiva fino al completamento del progetto

quanto il design, l'architettura, la documentazione di supporto, e così via, non fanno parte di TDD. Esistono alcune "best practice" pratiche che puoi leggere, ma tieni presente che quelle sono le migliori pratiche nel workshop di qualcun altro , non nel tuo.

Si noti che il punto è che il cliente e lo sviluppatore escogano le caratteristiche e scrivano le storie e le descrizioni dei test insieme , per comprensione reciproca

così, con quella fuorimano, la domanda originale era:

what is the role of a software architect in TDD?

E la risposta breve è:

Same as it ever was, same as it ever was. --David Byrne

EDIT: La risposta lunga è: l'architetto svolge i soliti ruoli visionario / investigatore / irritante / supporto / antiritorno durante l'intero processo, se necessario.

EDIT 2: scusa ho perso il punto delle sotto-domande! Tutti è responsabile della stesura delle specifiche; tutti gli sviluppatori incluso l'architetto se / quando appropriato più il cliente . Gli sviluppatori anche codificano i test.

    
risposta data 25.11.2010 - 03:21
fonte
1

Il Software Architect non sta scrivendo tutti i test. Sarebbe troppo stressante per le spalle di una persona.

L'architetto del software dovrebbe essere in grado di abbozzare un modulo iniziale per l'API che gli sviluppatori quindi scriveranno per questo e quindi costruiranno l'API. Tuttavia, il Software Architect può avere vari standard di codice che non sono necessariamente testabili, ad es. documentazione o convenzioni di denominazione. C'è anche il potenziale per l'API iniziale di mancare alcune chiamate che quando viene eseguita un'implementazione vengono aggiunte nuove chiamate all'API. Pertanto, ci sarà una crescita organica dell'API man mano che la base di codice cresce, ma il ruolo dell'architetto è nel fornire linee guida di alto livello e cercare di assicurarsi che vengano seguite.

Ci possono certamente essere casi in cui una squadra può decidere di non avere un architetto del software ma, a seconda della scala dell'API e della società coinvolta, questa può o meno essere una buona idea.

    
risposta data 24.11.2010 - 22:00
fonte

Leggi altre domande sui tag