Domanda

Ho iniziato come ingegnere del software presso l'azienda in cui lavoro attualmente.Col tempo, ero l'unico disposto o capace di assumermi la responsabilità di vari sistemi, e così sono stato "promosso" a Responsabile IT.Ora, durante il mio periodo come ingegnere del software, creavo test funzionali per i vari moduli software che avrei costruito e, di conseguenza, anche oggi sono in grado di testare rapidamente varie parti del sistema su cui ho lavorato.Tuttavia, esiste una base di codice molto ampia con poca o nessuna copertura da parte degli altri vari sviluppatori che hanno lavorato qui.

Ora, come responsabile IT, voglio essere in grado di testare che tutte le parti del sistema funzionino, ma c'è:

A) nessun tempo preventivato dedicato alla creazione della copertura del test del codice

E

B) Nessun desiderio da parte del "capo ingegnere del software" di iniziare a creare suite di test per aiutarmi a monitorare il funzionamento del software.

Non mi aspetto che il team del software lasci cadere tutto ciò che sta facendo e trascorre 2 settimane a creare suite di test, ma sarebbe bello se iniziassero ad espandere la copertura della suite di test nel tempo in modo da poter confermare che le varie parti del sistema stanno funzionando .

Quindi riassumendo, come posso convincere il team del software a iniziare a creare suite di test?

Altri avvertimenti:

R) Mi viene ancora chiesto di realizzare progetti software oltre a gestire il nostro reparto IT (un ingegnere Unix, un addetto al supporto desktop e le relative apparecchiature per ufficio e produzione)

B) Il mio amministratore Unix ha davvero difficoltà a far funzionare i sistemi di produzione con l'intera base di codice e non riceviamo un buon aiuto dal team del software.Non può eseguire alcun tipo di diagnostica per vedere dove l'app Web non funziona nelle nuove installazioni.Il vicepresidente dell'azienda continua a dirmi di entrare e inserire print_r nel codice per vedere cosa sta succedendo.Questo fa schifo!!!

È stato utile?

Soluzione

Questa è una buona domanda. E se ci fosse una risposta corretta ad esso, molto di più progetti software avrebbe avuto successo e fornire alta qualità.

Non credo, che sia una buona idea per fare un tale cambiamento dall'alto verso il basso. Deve essere guidato dagli sviluppatori stessi. Quindi corsi di formazione in direzione TDD sarebbe buono, ma che è un tempo lungo investire, che richiede tempo.

Se si desidera una soluzione più veloce si dovrebbe prendere in considerazione funzionale-, acceptance- e systemtests. Con questi test di testare praticamente l'intera applicazione attraverso tutti gli strati. Se si stanno sviluppando applicazioni web si dovrebbe consinder utilizzando selenio per automatizzare il test. E 'facile creare test con esso (Selenium IDE).

Ma utilizzando solo questi test (non unit test) non vi danno i vantaggi provenienti da TDD.

Automatizzare le prove è fondamentale.

Altri suggerimenti

Innanzitutto, devi indagare sullo sviluppo basato sui test in modo da sentirti a tuo agio nello spiegarlo in termini comprensibili ai tuoi sviluppatori, così come al tuo management.Dato che sembra che tu stia sviluppando applicazioni web e possiedi competenze tecniche, ti suggerisco di fare il grande passo e scegliere uno strumento open source per testare le applicazioni web, installarlo e iniziare a creare test per tutto ciò che sviluppi tu stesso.

Saia è un esempio del tipo di strumento di test di cui avresti bisogno.

Quindi, come manager, devi invogliare gli sviluppatori a seguire il tuo esempio e premiarli per averlo fatto.E punirli quando non utilizzano il framework di test e ciò porta a problemi prevenibili.Non appena si verifica uno di questi incidenti, dovresti essere in grado di coinvolgere il tuo capo e prendere slancio.

Nel complesso, ricorda che l'obiettivo è fare meno lavoro per ottenere un buon risultato.Tagliare gli angoli è un modo per fare meno lavoro, ma porta al rischio di risultati scadenti, o straordinariamente scadenti.Mantenere il management informato sui livelli di rischio e sui potenziali costi a rischio.

Non forzare le persone a fare test solo per il gusto di farlo.Deve aiutarli a essere più produttivi, quindi scegli attentamente i primi progetti.

Hai un team di test o di QA?

vorrei prima iniziare a vedere se hanno casi di test che usano per qualificare il build. In caso contrario si dovrà sviluppare questi casi di test per verificare la funzionalità di base del prodotto.

Il passo successivo sarebbe automatizzando i casi di test.

Se l'applicazione è poco sviluppata senza strumenti di risoluzione dei problemi o le funzionalità di debug che sarebbe stata dura fino a quando questi si aggiungono i requisiti per prossima release.

I miei 2 centesimi.

Io sono d'accordo con michaelkebe- questi cambiamenti hanno bisogno di sostegno da parte del livello esecutivo, oltre a un paio di sviluppatori chiave, al fine di completare con successo.

Senza questo sostegno, sarete solo alcuni sviluppatori che guardano come stanno 'perdere tempo a scrivere i test per cose che già funziona.'

Ci deve essere una visione chiara, e deve essere ripetuto ad alta voce e spesso.

Non sto necessariamente sostenendo per Agile qui, ma spesso non scatta per gli imprenditori.

Se è possibile vendere su questo, le cose che sei entusiasta (la consegna veloce, facilità di manutenzione, test automatici del software, etc.) andrà a posto.

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