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:
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:
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.