Passaggio Dati da Run a Bug

 

Requisito Utente

 

Durante un'esecuzione di un Caso di Test, all'apertura di un defect è necessario che vengano riportati 2 dati del Test sul Defect: ImportanzaTest e TipoTest

 

Soluzione Proposta

 

Quando viene selezionato il tasto per la creazione di un nuovo defect vengono salvatai i Dati del Test nella tabella COMMON_SETTINGS per essere reperiti dal Defect.


 

_________________________________________________________________________

 

Implementazione sul Prodotto

 

Premessa:

Questo esempio ricopre uno degli aspetti più richiesti dagli utenti. Chiunque si sia apprestato a gestire Quality Center come Amministratore si è, prima o poi, trovato ad affrontare questa situazione.

 

Il modulo Manual Runner è un modulo un po' particolare, non è possibile condividere variabili globali e quindi il passaggio di dati da Test a Run e da Run a Defect deve essere fatto tramite strutture di appoggio. Quella consigliata da HP è quella che andremo ad implementare: Utilizzo tab COMMON_SETTINGS. Ma sappiate che è possibile anche appoggiarsi a file esterni.

 

Userò l'oggetto UserSettings per valorizzare la COMMON_SETTINGS. I campi a noi utili della tabella sono i seguenti:

  •  CSET_CATEGORY
  • CSET_NAME
  • CSET_VALUE 

 

Per accedere alla categoria si usa il metodo Open. Per valorizzare il Name si usa la proprietà .Value("CSET_NAME"). E' possibile crearsi delle proprie categorie.

 

Soluzione:

Supponiamo che i 2 campi del test siano 2 campi utente quali:

  • TS_USER_01: Importanza Test
  • TS_USER_02: TipoTest

 

Il passaggio dati deve essere fatto dal Test al Defect e quindi devono essere definiti 2 campi utente anche per l'entità BUG. Supponiamo quindi di aver creato i 2 campi anche sul defect: BG_USER_01 e BG_USER_02.

 

 

1. Nel momento in cui l'utente seleziona il tasto "New Bug" deve essere richiamata la sub per il salvataggio dei dati sulla tabella COMMON_SETTINGS

 

Function ActionCanExecute(ActionName)

On Error Resume Next

Dim Res

Res = True

 

  if ActionName = "act_add_bug" then

   'Richiamo Sub del modulo ManualRun per inserire i dati nella COMMON_SETTINGS

   ManualRun_Scrivi_DatiTest

  end if

 

ActionCanExecute = Res

On Error Goto 0

End Function

 

 

2. Nel ManualRunner Module creo la Sub per la Scrittura sulla Common_Settings

 

Sub ManualRun_Scrivi_DatiTest

On Error Resume Next

Dim uss, myTest

 

'Creo oggetto Test prendendo l'ID da RN_TEST_ID

set myTest = TDConnection.TestFactory.Item(Run_Fields.Field("RN_TEST_ID").Value)

 

 

'creo oggetto UserSettings

set uss = TDConnection.UserSettings

 

'Apro la categoria. Se non esiste viene creata in automatico

uss.Open("UltimoRun")

'Valorizzo la NAME (sottocategoria) con i dati del Test suddivisi da "||".

uss.Value("Dati") = myTest.Field("TS_USER_01") & "||" & _

                          myTest.Field("TS_USER_02")

 

'Posto le informazioni

uss.Post

uss.Refresh

 

'Chiudo la categoria

uss.Close

 

'distruggo gli oggetti

set uss = nothing

set myTest = nothing

On Error Goto 0

End Sub

 

 

3. Nel modulo Defect nella sub Bug_New devo inserire il richiamo alla funzione che mi ritorna i valori registrati nella common

 

Sub Bug_New

On Error Resume Next

Dim ValoriDaRun

ValoriDaRun = ManualRun_Leggi_DatiTest

 

'Scrivo il valore ritornato nei 2 campi del bug

if instr(ValoriDatiRun,"||") then   'controllo che sia tornato qualcosa

   Bug_Fields.Field("BG_USER_01").Value = split(ValoriDaRun,"||")(0)

   Bug_Fields.Field("BG_USER_02").Value = split(ValoriDaRun,"||")(1)

end if

 

On Error Goto 0

End Sub

 

4. Creo funzione ManualRun_Leggi_DatiTest per ritornare i 2 dati del test

Function ManualRun_Leggi_DatiTest

On Error Resume Next

Dim Vals, uss

Vals = ""

 

set uss = TDConnection.UserSettings

'Apro la categoria

uss.Open("UltimoRun")

'mi carico il valore di "Dati" in Vals

Vals = uss.Value("Dati")

'Chiudo la categoria

uss.Close

 

ManualRun_Leggi_DatiTest = Vals

On Error Goto 0

End Function

 

 

NB: ho creato una Sub per scrivere i dati nella COMMON_SETTINGS e una Function per leggerli. Questo perché nel primo caso non devo tornare nulla, invece nel secondo devo far ritornare un valore.

 

Pag: <<    <    >