Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Raccolta, specifica e testing dei requisiti efficace

Andrea Francia
September 30, 2023
5

Raccolta, specifica e testing dei requisiti efficace

Vediamo come evitare o ovviare ai seguenti problemi:
- non riusciamo ad ottenere specifiche dei requisiti chiare da cliente
- il cliente non vuole scrivere i test
- il programmatore non sa bene cosa deve implementare e se quello che ha fatto finora è sufficiente
- ogni volta che si fanno i test si trovano un sacco di bachi

Per farlo parleremo di alcune pratiche di eXtreme Programming : Customer Examples, Continuous Build, Acceptance Tests, e Definition of Done

Andrea Francia

September 30, 2023
Tweet

Transcript

  1. Raccolta, speci fi ca e testing dei requisiti in eXtreme

    Programming Andrea Francia FuoriDiTest 30 settembre 2023 1
  2. • Come si usano i test in XP • Chi

    dovrebbe scrivere i test di accettazione? • L’uso degli esempi per raccogliere speci fi che Argomenti 2
  3. 12 Customer Test Programmer Test aka: * functional test *

    acceptance test * customer test aka: * unit test * developer test
  4. Riassunto • La build è veloce (<5 min) • Copre

    quasi tutte le feature • Va lanciata prima prima di ogni push dallo sviluppatore • Anche il server di integrazione la lancia ad ogni push ricevuta 14
  5. I requisiti dovrebbero essere specificati dal business 18 Ogni specifica

    può essere espressa come test Adattato da Robert C. Martin - Clean Agile: Back to Basics Nell’originale Robert Martin usava l’espressione: “A speci fi cation is, by its very nature, a test” che è un espressione più forte e sicuramente corretta ma che io non ho tempo di argomentare in questa sede.
  6. Speci fi ca == Test Quando l’utente inserisce uno username

    e una password validi e poi clicca “login” il sistema presenterà una pagina di “Benvenuto” Esempio: Adattato da Robert C. Martin - Clean Agile: Back to Basics 19
  7. Speci fi ca == Test Quando l’utente inserisce uno username

    e una password validi e poi clicca “login” il sistema presenterà una pagina di “Benvenuto” Esempio: Questa speci fi ca è un test Adattato da Robert C. Martin - Clean Agile: Back to Basics 20
  8. Speci fi ca == Test Quando l’utente inserisce uno username

    e una password validi e poi clicca “login” il sistema presenterà una pagina di “Benvenuto” Esempio: Questa speci fi ca è un test … e può anche essere automatizzato Adattato da Robert C. Martin - Clean Agile: Back to Basics 21
  9. 👨💼 🧑💻 business dev Ricapitolando: 1)il business dovrebbe fare le

    specifiche 2)le specifiche sono test 3)i test sarebbe meglio automatizzarli Quindi li scrivi tu? Adattato da Robert C. Martin - Clean Agile: Back to Basics 23
  10. Robert C. Martin - Clean Agile: Back to Basics 👨💼

    🧑💻 business dev Aspetta, io non so programmare, questa è roba vostra Quindi li scrivi tu? 24
  11. 👨💼 🧑💻 business dev Aspetta, i requisiti andrebbero scritti dal

    punto di vista del business. Giusto? Adattato da Robert C. Martin - Clean Agile: Back to Basics 25 Certo, è importante che sia chiaro il valore di business di ogni feature.
  12. 👨💼 🧑💻 business dev Sai già cosa succede quando sono

    io a scrivere i test … Adattato da Robert C. Martin - Clean Agile: Back to Basics 26 Mi ricordo bene, test incomprensibili pieni di dettagli tecnici Quindi fai tu?
  13. 👨💼 🧑💻 business dev Ti ricordi l’ultima volta che li

    ho scritti io? Adattato da Robert C. Martin - Clean Agile: Back to Basics 27 Ah già, specifiche che non c’entravano niente con l’architettura ne con la tecnologia che stavamo usando! Poi ti ricordi come facevi? Sì, ho dovuto riscrivermeli, tutti
  14. 👨💼 🧑💻 business dev quindi chi li scrive? Adattato da

    Robert C. Martin - Clean Agile: Back to Basics 28
  15. Acceptance tests are a collaborative effort between business […] and

    the developers Adattato da “Clean Agile: Back to Basics”, lui diceva “Acceptance tests are a collaborative e ff ort between business analysts, QA, and the developers.” che è forse più corretto, io ho usato solo business e developer per rendere le cose più semplici. I tester o i QA (come li chiama lui secondo me fanno parte degli sviluppatori, non sono programmatori ma anche loro fanno parte del team che sviluppa il prodotto). Riguardo ai Business Analysts io preferisco usare il termine Business che è più generale e può comprendere i BA, il customer di XP, e gli esperti di dominio. 30
  16. The business writes formal tests describing the behavior of each

    user story, and developers automate those tests. Robert C. Martin - Clean Agile: Back to Basics 32
  17. Robert C. Martin - Clean Agile: Back to Basics 👨💼

    🧑💻 business dev io ti dico il comportamento atteso io automatizzo 33
  18. E se il cliente non ha voglia o non è

    (ancora) capace di scrivere speci fi che formali? 34 ➔Lo aiutiamo noi, con i Customer Example
  19. Rispettiamo il cliente • Rispettiamo il suo tempo: ➔usiamo le

    riunioni con lui solo per le cose importanti ➔non facciamo perdere tempo mentre noi litighiamo per far funzionare il tool • Non obblighiamolo ad usare formalismi per lui complicati (meno Gherkin e più tabelle) 36
  20. Dev Domain Expert Tester Le speci fi che vanno qui

    (sotto forma di esempi) Lavagna partecipano tutti i programmatori questo deve essere un vero esperto 41
  21. File condiviso in real time Anche da remoto Dev Domain

    Expert Tester Le speci fi che vanno qui (sotto forma di esempi) 42
  22. Cosa speci fi chiamo ? You don’t need examples for

    everything—just the tricky details (*) Speci fi chiamo solo quello che può essere frainteso dagli sviluppatori (*) James Shore in Art of Agile Development, 2nd edition 43 Secondo https://translate.google.com/?sl=en&tl=it&text=tricky&op=translate&hl=it tricky può voler dire queste tre cose: di ff i cile, complicato e ingannevole
  23. Potremmo speci fi care come si cancella una fattura …

    Dev Domain Expert Che noia. 
 Ho altro da fare! Che noia. 
 Questo lo sapevo già che riunione noiosa, perché ci devo venire? 45 🙁
  24. Cosa speci fi chiamo ? Speci fi chiamo solo quello

    che può essere frainteso dagli sviluppatori Cancellazione fatture • come cancellare una fattura ➔ facile ➔ bastano i dev • quando si può cancellare ➔ tricky ➔ serve l’esperto 46
  25. Dev Domain Expert Tester Cancellare una fattura non è così

    semplice come sembra perché dobbiamo mantenere un registro delle operazioni (*)? (*) nell’originale era audit trail, io l’ho tradotto in registro delle operazioni, ho chiesto ad un esperto di dominio ma essendo una cosa che non esiste in Italia non ha saputo tradurmelo 47
  26. Dev Domain Expert Tester In generale, va bene cancellare una

    fattura se non è stata ancora spedita al cliente, questo permette alle persone di cancellare eventuali errori. 48
  27. Dev Domain Expert Tester Ma una volta che una fattura

    è stata spedita a un cliente, può essere cancellata solo da un manager. Anche in questo caso, dobbiamo salvare una copia per fini di verifica (*) (*) nell’originale era auditing purposes 49
  28. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no Vediamo se ho capito 50
  29. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no Cerchiamo di far si che sia l’esperto a prendere l’iniziativa. Trucco: sbagliare apposta e permettere all’esperto di dominio di correggerti 52
  30. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no Ora ti faccio vedere che ho capito! 53
  31. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì 54
  32. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì !!! Il servizio clienti non può, in realtà il manager può! 55
  33. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì Ti passo il pennarello 56
  34. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì no manager sì sì, però tracciato 57
  35. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì manager sì sì, però tracciato E invece il supervisore del servizio clienti? E un amministratore? 58
  36. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì manager sì sì, però tracciato supervisore serv. clienti sì no admin sì sì, però tracciato Il supervisore non conta come manager. 
 L’amministratore sì (ma tracciato) 59
  37. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì manager sì sì, però tracciato supervisore serv. clienti sì no admin sì sì, però tracciato Ah, tra l’altro con “spedito” intendiamo tutto ciò che potrebbe aver portato il cliente a vedere la fattura (anche se poi non l’ha fatto). “spedito" spedito per email stampato esportato come pdf esportato come url 60
  38. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì manager sì sì, però tracciato supervisore serv. clienti sì no admin sì sì, però tracciato “spedito" spedito per email stampato esportato come pdf esportato come url Vale anche per le preview? 61
  39. Dev Domain Expert Tester Utente Spedita? Si può cancellare? commerciale

    no sì commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì manager sì sì, però tracciato supervisore serv. clienti sì no admin sì sì, però tracciato “spedito" spedito per email stampato esportato come pdf esportato come url Non me l’hanno mai chiesto? Naturalmente … ehm … mi informo e vi faccio sapere. 62
  40. Dev Tester Utente Spedita? Si può cancellare? commerciale no sì

    commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì manager sì sì, però tracciato supervisore serv. clienti sì no admin sì sì, però tracciato “spedito" spedito per email stampato esportato come pdf esportato come url 63 Requisiti raccolti!!!
  41. Dev Tester Utente Spedita? Si può cancellare? commerciale no sì

    commerciale sì no addetto serv.clienti no sì addetto serv.clienti sì sì manager sì sì, però tracciato supervisore serv. clienti sì no admin sì sì, però tracciato “spedito" spedito per email stampato esportato come pdf esportato come url 64 Documento con una foto della lavagna
  42. Risultato • Cliente ingaggiato • Requisiti speci fi cati con

    • esempi concreti, • non ambigui • e già validati dal punto di vista della completezza 65
  43. Grazie Andrea Francia [email protected] Chiamatemi se vi serve aiuto a

    gestire codice legacy. 68 Clean Agile : Back to Basics Robert Martin James Shore The Art of Agile Development