7

Come ingegnere di costruzione, sono costantemente alla ricerca di modi nuovi e interessanti per migliorare il nostro processo di creazione, e questo include la ricerca di modi nuovi e interessanti per fallire nelle nostre build!Motivi per il fallimento di una build

Devo ancora trovare una lista canonica di motivi per fallire una costruzione ... quindi immagino che sia ora di crearne uno. Con questo in mente:

Quali controlli del build-time, sia ovvi che creativi, hai visto le build di fail?

+2

Dovrebbe essere wiki? –

+0

Probabilmente ;-) Wiki lo è! –

risposta

4
  • insufficienza Compilation
    • codice di produzione
    • Test classi
  • Qualsiasi tipo di test fallimento:
    • unit test
    • Integrazione test
    • test funzionali
    • I test delle prestazioni
  • non conformità ai controlli di qualità:
    • Coding convenzione (Checkstyle)
    • Test di copertura (trifoglio, Cobertura, ecc)
    • modelli di bug di rilevamento (FindBugs , PMD, Hammurapi)
    • Copia Incolla rilevamento (CPD, Symian)
    • com binario Patibility (Clirr)
+0

+1 per menzionare la copertura –

2

Errore/i di prova dell'unità.

0

Qualcosa di semplice come un controllo sulla compilazione di un errore deve essere considerato obbligatorio, nuff detto.

I check-in che portano a costruzioni rotte dovrebbero essere inaccettabili, anche se la triste verità è che molte organizzazioni lo accettano.

Se la compilazione fallisce:

  • ... non si avrà un binario di utilizzare o correre.
  • ... non è possibile eseguire test e analisi per assicurarsi che funzioni.
  • ... non è possibile eseguire altri controlli necessari per creare il progetto.
  • ... non puoi soddisfare il tuo cliente perché non hai nulla da mostrare.

Perché? PERCHÉ LA COSTRUZIONE È ROTTA.

+1

Lontano da abbastanza. Compilando! = Funzionante –

+1

@Pascal Thivent: sono abbastanza sicuro di essere stato chiaro a riguardo; Ho menzionato UN controllo e se non si sta compilando allora è ** chiaramente non ** funzionante. Cioè '(! Compilando ==! Lavorando)' Non rivendicando nient'altro a questo punto perché l'op ha chiesto un assegno. Sono abbastanza sicuro che siano le basi ovvie. – Spoike

+0

Modificato ... almeno ora spero di averlo spiegato meglio. Se almeno non controlli un errore di compilazione, niente funzionerà. Duh! : P – Spoike

2

Codice in mancanza di ispezioni automatiche di qualità (FxCop, ecc.).

1

non riescono a compilation avvertimento

7
  • mancata compilazione
  • Unità alla prova
  • Integrazione test
  • test di sistema
  • convenzioni di denominazione
  • qualità Codice
  • Regressione test
5

Unapproved Checkins in Build. Cose come il codice archiviato che non è associato ad un oggetto di lavoro o una correzione di bug.

+0

+1: spesso trascurato, ma molto utile in un ambiente di squadra in cui il supporto è una preoccupazione quotidiana. –

1

Presentazione di una dipendenza ciclica tra i moduli (ad esempio pacchetti java).

1

La mia azienda in realtà non lo fa, ma con una base di codice legacy di grandi dimensioni come la nostra, sarebbe bene fallire con modifiche non documentate. Senza un bug ticket di qualche tipo, il nostro dipartimento di QA non saprebbe di testare i cambiamenti, e questo è spaventoso!

1

Verificare la presenza di classi duplicate (stesso pacchetto e nome classe) in diversi file jar (Java).

0

La copertura del codice diminuisce o scende al di sotto di una soglia accettabile.