Sta facendo una piccola modifica, testandola, quindi "risciacqua e ripeti", una cattiva abitudine?

54

Sono un programmatore con un numero di anni di esperienza. Mi sono reso conto di avere una certa abitudine. Non sono sicuro se sia davvero una brutta abitudine o no.

Ricevo un elenco di attività da eseguire per una soluzione, anche piccole attività di piccole dimensioni, ad esempio

  1. Modifica risorse di questo controllo utente
  2. Cambia dimensione di un altro
  3. Aggiungi codice HTML e codifica su un altro controllo utente

Tutte queste attività sono piccole. Voglio dire che possono essere eseguiti entro 10 minuti, ma ho avuto la brutta abitudine di apportare piccole modifiche e poi di testarle ancora e ancora in un browser web . È una buona pratica?

O dovrei eseguirli tutti in una volta e poi provarli insieme?

Se è davvero una brutta abitudine, come faccio a correggerlo, perché è come perdere tempo a testare piccoli cambiamenti più e più volte?

    
posta Mathematics 01.08.2014 - 15:34
fonte

6 risposte

129
  • È una buona pratica.
  • Stai seguendo il metodo scientifico.
  • Se cambi parecchie cose prima di ogni test, allora il test di ciascuna sarà più difficile, e forse non affidabile, dal momento che le precondizioni saranno più difficili da preparare e le diverse modifiche possono interagire tra loro in modi che non hai prevedere.
  • Il tempo in cui senti "sprecare" ora, riacquisteresti più tardi nell'integrazione, testando e mantenendo le fasi.
  • Molto utile.
risposta data 01.08.2014 - 16:31
fonte
38

Fare tante piccole modifiche e testarle ciascuna non è una brutta cosa. Ti permette di vedere l'effetto di ogni cambiamento, e quindi quando una modifica causa un problema, è molto più facile sapere quali modificare i problemi causati - il più recente!

Se hai una lista di attività con 10 elementi, e li fai tutti in una volta e poi test la pagina e poi noti che la pagina sembra sbagliata, potrebbe essere più difficile sapere quale cambiare ha rotto la pagina.

Naturalmente, è possibile portare questo approccio all'estremo. Trovare l'equilibrio è la chiave e ciò si ottiene con una migliore comprensione di che cosa stai modificando e in che modo le modifiche potrebbero influenzarsi a vicenda.

    
risposta data 01.08.2014 - 16:19
fonte
18

La tua domanda ha due parti:

  1. should I perform them all once and then test them together ?

    Presumo che tu stia utilizzando un VCS .
    Per tenere traccia dei compiti svolti, è opportuno distribuire l'elenco di attività a un elenco di commit: un'attività, un commit .

    Ciò semplifica la gestione di diverse versioni dell'attuale base di codice; è possibile ripristinare uno stato precedente, selezionare i cambiamenti che si desidera inserire nel trunk principale, ecc.

    La risposta è chiara:

    No, apporta le modifiche solo una per volta - una sola operazione di commit .

  2. but I got a bad habit of making small small changes and then test them again and again in web browser, is this a good practice ?

    È una buona pratica testare codice / interfaccia utente qualunque sia , ma non ha senso farlo ripetutamente nel browser. Ci sono strumenti, per farlo automaticamente per te ( Selenium, PhantomJS / Casper, ZombieJS )

    La risposta per questo caso è:

    Sì, è buona norma testare il software più di una volta, ma utilizzare l'automazione

risposta data 01.08.2014 - 16:34
fonte
6

Per qualsiasi abitudine di uno sviluppatore, ci sono 2 domande principali:

  1. In che modo influenza la qualità del codice che fai?
  2. In che modo influenza la tua produttività?

Se la risposta ad entrambi è "lo rende migliore", vizia l'abitudine, insegnalo agli altri!
Se la risposta a uno è "Meglio" e l'altro "Peggio", è uno stile e devi essere consapevole di ciò. Non è sempre applicabile, e potrebbe essere necessario fare uno sforzo per sopprimerlo di tanto in tanto.
Se la risposta ad entrambi è "Negativa", hai un problema serio.

Ovviamente per i primi 2 casi dovresti anche pensare a "L'effetto positivo può essere in qualche modo automatizzato o istituzionalizzato?". Forse è meglio scrivere un test che provare diversi browser ogni volta? (Nota, so che non è così facile testare il layout corretto nello sviluppo web, non sto dicendo che sia sempre possibile o che ne valga la pena).

In questo caso particolare, mi sembra che la qualità sia aumentata, la produttività possa essere diminuita. Per piccoli cambiamenti è probabile che sia un pò brutto (specialmente se i cambiamenti sono correlati), per i più grandi - è abbastanza buono. Finché testerai anche il risultato finale (evita "ogni modulo è stato testato e funziona, quindi anche l'intera cosa funziona, non c'è bisogno di testarlo!").

Quindi, a meno che il 90% della tua giornata di lavoro stia apportando cambiamenti davvero piccoli - è un'abitudine perfettamente buona da avere. Se la tua giornata di lavoro è così, forse potresti voler rivedere il tuo stile di lavoro (o posto di lavoro).

    
risposta data 01.08.2014 - 17:44
fonte
4

Dipende dal dominio. Per la posa di una pagina web funzionerà bene e potrai ottenere un feedback immediato (puoi persino farlo direttamente nel browser!). Allo stesso modo funzionerebbe bene per tutto ciò che non richiede molto tempo per inizializzarsi. Questo è preferito poiché mantiene il carico di lavoro mentale basso e riduce la possibilità di errori.

Tuttavia, per i progetti veramente grandi in cui è necessario compilare il codice e il tempo impiegato non è banale (alcuni minuti), questo può comportare molti periodi di inattività, quindi è spesso necessario ricorrere a:

  • "parallelizzare" il flusso di lavoro (ad esempio, lavorare su più build contemporaneamente) o
  • fai più cose possibili in una volta sola, o
  • crea una piccola parte indipendente su cui lavorare e integrarla successivamente nel progetto più grande.

(Ci sono probabilmente anche altri modi.)

    
risposta data 01.08.2014 - 19:49
fonte
0

Come altri hanno affermato, questa è decisamente una cattiva abitudine non . Generalmente preferisco apportare solo alcune modifiche contemporaneamente. L'unica eccezione è se ho una grande lista di modifiche che non si influenzano a vicenda (ad esempio, modifiche a stili o copie minori, modifiche su pagine diverse, ecc.). Se stai modificando i layout, attieniti a apportare modifiche una alla volta in modo che tu possa verificare che tutto sia al 100% in tutti i browser supportati prima di passare al problema successivo.

    
risposta data 01.08.2014 - 18:23
fonte

Leggi altre domande sui tag