Segnala errori di test "tutti in una volta" o segnalali uno per uno

5

Sono un unico sviluppatore che lavora per un'organizzazione che non ha una strategia di test.

Sto cercando di integrare un sistema di crimine sviluppato da un fornitore con un'applicazione esterna che ho sviluppato. L'applicazione esterna consente a un utente finale di inviare un'istruzione al sistema criminale per eliminare il crimine.

Il sistema di crimine è stato sviluppato da un'organizzazione esterna e hanno scritto stored procedure per eseguire effettivamente la cancellazione, che posso chiamare dalla mia applicazione.

Il sistema criminale è complesso, cioè ha un elemento di custodia, un elemento criminale, un elemento di intelligence, ecc.

Ogni volta che c'è un aggiornamento al sistema criminale, le stored procedure devono essere ripetute e ci sono sempre molti problemi. Il mio approccio è il seguente:

  1. Test di custodia
  2. Segnala un problema di custodia 1
  3. Nuova versione del venditore
  4. Segnala problema di custodia n
  5. Nuova versione per venditore. Tutti i test passano.
  6. Prova crimine
  7. Segnala il problema di criminalità n
  8. Nuova versione per venditore. Tutti i test passano.
  9. Segnala il problema dell'intelligence n
  10. Nuova versione per venditore. Tutti i test passano.
  11. Test completato. Go live.

Il fornitore mi ha chiesto di eseguire tutti i test contemporaneamente in futuro. Nella mia esperienza, questo non funziona molto bene con questo fornitore perché vengono spesso introdotti nuovi problemi, che influenzano i test da fare in futuro, cioè un cambiamento di custodia influisce sull'elemento criminalità / elemento di intelligence.

Dovrei testare tutto e quindi inviare tutti i miei risultati?

    
posta w0051977 03.02.2016 - 22:26
fonte

2 risposte

8

Se la società A sviluppa un singolo componente software per l'azienda B, una parte del contratto è in genere che B definisce o sviluppa un elenco di test di accettazione e B pagherà solo A se il test non mostra alcun problema. Va perfettamente bene.

Tuttavia, se alcuni test falliscono, B deve segnalarli ad A e A ha la possibilità di aggiungere correzioni. E poiché ogni correzione ha un certo rischio di rompere le cose che hanno già funzionato prima, B dovrà ripetere di nuovo tutti i test. Quindi capisco la tua domanda su come rendere questo processo più efficace per entrambi.

La prima cosa che dovresti provare è automatizzare quanti più test di accettazione possibili. Dal momento che devi ripetere le prove più e più volte, dovrebbe essere ovvio perché. L'esecuzione della suite di test con tutti i test contemporaneamente dovrebbe produrre un file di registro di grandi dimensioni che è possibile inviare al fornitore. Naturalmente, il log può mostrare alcuni errori consecutivi, ma quello dovrebbe essere il problema dei produttori, non il tuo. Più feedback puoi dare in un ciclo, più bug possono correggere nella prossima versione . Quindi, quello che ti ha detto il venditore mi sembra sensato, se questa è la situazione.

Tuttavia, le cose diventano più complicate se non è possibile automatizzare tutti i test e la procedura di test richiede un notevole sforzo manuale. Forse l'intero processo richiederà alcuni giorni e non solo pochi minuti. Hai scritto che devi integrare il componente con una "applicazione esterna" del tuo, quindi posso immaginare anche se hai test automatici, potresti dover controllare manualmente che un errore di test non è causato da un bug nella tua applicazione.

Ora, se già sai che se la parte X del componente fallisce, anche la parte Y fallirà, perché Y dipende strongmente da X, quindi non avrà molto senso iniziare qualsiasi test laborioso su Y prima che X funzioni liscio. Quindi sarà per te più efficace dare un feedback sulla parte X al venditore e richiedere una correzione, prima di iniziare con i test della parte Y.

In una situazione del genere, il miglior consiglio che posso darti è trovare un accordo con il venditore dove esplicitamente nome le parti X1, X2, X3, ... stai per testare per prima cosa e comunicare al fornitore che solo se tali test vengono superati, si inizia a testare le parti Y1, Y2, Y3, ... Se il fornitore si comporta in modo ragionevole e conosce le dipendenze nel suo componente, suppongo che si possa trovare un consenso su questo .

    
risposta data 04.02.2016 - 08:28
fonte
7

Wow! Ti stanno contraendo per fare il test per loro.

La soluzione migliore è implementare uno SLA che ti allontani da questa relazione. Il tuo contratto dovrebbe penalizzarli finanziariamente per i bug che scopri che impediscono l'integrazione del loro prodotto.

Non ho davvero nulla da aggiungere su ciò che è "best practice" quando si lavora all'interno di una relazione in cui ti stanno gestendo e anche tu li paghi. Invia loro segnalazioni di bug da piccioni viaggiatori, forse ti metteranno sotto controllo delle prestazioni.

Ovviamente trovare un nuovo fornitore è un'opzione che potrei prendere in considerazione. Oppure la soluzione in-house, considerando che in questo caso stai già ospitando il team di QA.

    
risposta data 03.02.2016 - 22:31
fonte

Leggi altre domande sui tag