Responsabilità dell'ambiente di distribuzione

0

Potrebbe trattarsi di una query non tecnica ma piuttosto guidata dai processi. Aiutami a reindirizzare verso il forum giusto se questo non è il posto giusto per porre questa domanda.

Tipicamente in un progetto, abbiamo un ambiente di distribuzione in cui il team di sviluppo distribuisce il codice a scopo di test. Il team di test esegue i test case sull'ambiente.

Ma ho visto progetti in cui ci sono più ambienti per diversi team su cui testare e quando capisco che qual è il punto? Non vedo alcuna ragione che avere più ambienti.

Due ambienti:

1. Ambiente inferiore - Gli sviluppatori possono utilizzare questo ambiente per testare il loro codice (questo ambiente sarà una replica esatta dell'ambiente superiore in cui si verificheranno test interni ed esterni). Usiamo SVN e controlliamo il codice.

2. Ambiente superiore - in cui è possibile testare più team di test, che dalla mia esperienza sembra essere stabile. per testare.

Ma abbiamo molti ambienti .... e il supporto di volta in volta deve dare su un ambiente diverso.

Ma vedo più ambienti in cui i test avvengono senza una ragione apparente concreta. La mia domanda è: chi è la responsabilità di supportare più ambienti? Trovo difficile per il team di sviluppo lavorare sul supporto di più ambienti a parte le attività di sviluppo regolare, la preparazione dei casi di test unitari, ottenere chiarimenti dal design o dal business sulla User story.

Qualsiasi suggerimento sarebbe molto apprezzato.

    
posta Akki619 16.09.2015 - 10:05
fonte

2 risposte

1

Nello sviluppo moderno, il team dovrebbe essere responsabile dell'analisi del progetto, della progettazione (gli architetti possono allineare la progettazione imperfetta), dello sviluppo, dei test unitari, del test automatico QA / UAT / PERF, distribuirlo in tutti gli ambiti, operare e monitorare in produzione fino al il progetto viene dismesso da PROD o non utilizzato dai clienti.

Le moderne pratiche di sviluppo coinvolgono l'automazione di tutto in una singola generazione, test, implementazione di una pipeline.

L'idea è di fornire alla piattaforma del team servizi self-service, in modo che il team possa raggiungere tutti i compiti sopra citati con la più piccola interazione esterna possibile. Qualsiasi sistema di emissione di biglietti è un onere che dovrebbe essere modificato in modalità self-service.

Quindi in tale ambiente dovrebbero avere membri del team interfunzionali (SÌ a volte gli sviluppatori scrivono test non unitari e si svegliano di notte se l'applicazione non funziona). L'idea è di avere esperti di squadra in ciascuna area del processo di sviluppo e i membri del team di mentori non hanno familiarità con determinate abilità. Così puoi finire con quel tester o l'ingegnere delle operazioni ti terrà sotto controllo.

Sei fortunato se stai già lavorando in tale azienda, ma se non è almeno investendo e cercando di convertirsi verso la completa automazione Continuous Delivery / Deployment, è il momento di cambiare compagnia!

    
risposta data 16.09.2015 - 13:49
fonte
0

Diversi esempi mi sono imbattuto in:

  1. Gli ambienti di produzione e test / dev hanno un diverso set di funzionalità. Ad esempio, un progetto su cui ho lavorato includeva aggiornamenti programmati di stato. Nell'ambiente di produzione, gli aggiornamenti venivano pianificati una volta alla settimana, ma negli ambienti di sviluppo e testing, avevamo bisogno che lo stato cambiasse più frequentemente o venisse attivato manualmente. Quindi avevamo un kill-switch per cambiare manualmente lo stato.
  2. Evitare conflitti tra i test eseguiti da diversi team. Quando si cercano i difetti, essere in grado di riprodurre i difetti è estremamente importante. Avere più team che lavorano sullo stesso ambiente può renderlo difficile, poiché i passaggi che rivelano il difetto potrebbero essere il risultato delle azioni di più squadre (accidentali) che attraversano. JUnit, il famoso framework di test unitario, crea oggetti separati per ciascuno dei casi di test. Questo viene fatto in modo che ogni caso di test sia isolato e non influisca su altri casi di test. Lo stesso principio si applica qui. Invece di coordinare i piani di test di più team, ogni team lavora su un ambiente diverso.
  3. Diverse piattaforme, che ospitano il prodotto. Se il prodotto supporta più piattaforme, dovrebbe essere testato su ciascuna di esse. Inoltre, dovrebbe essere testato su ciascuna versione di ciascuna piattaforma supportata (Windows XP, Windows 7, Windows 8, ecc.). Ciascuno richiede un ambiente separato. Gli scenari di aggiornamento sia del prodotto che della piattaforma aumentano anche il numero di ambienti necessari.
  4. Test di stress, test di stabilità. Alcuni test richiedono che il prodotto abbia un carico di lavoro elevato. Altri testano la stabilità, in modo che l'ambiente debba essere attivo per un lungo periodo di tempo. Questi tipi di test richiedono ambienti dedicati.
  5. Impostazioni in conflitto. Ad esempio, il team che verifica la localizzazione deve cambiare la lingua dell'ambiente più volte. Ciò può causare inconvenienti agli altri team, che non hanno familiarità con tutte le lingue supportate.

Nella mia esperienza, il team addetto al controllo qualità è responsabile della creazione e della manutenzione degli ambienti. Ma per fare ciò correttamente, il team addetto al controllo qualità deve avere un elenco chiaro dei punti precedenti, inclusi i tipi di distribuzione, le piattaforme, le impostazioni e le funzionalità supportate per poter creare un piano di test adeguato.

    
risposta data 16.09.2015 - 12:42
fonte

Leggi altre domande sui tag