Fitting a GARCH model and forecast using validation set approach In R I have seperated the data into training and testing data. Then I fitted this simple garch model for training data as follows,(using rugarch package)
require(rugarch)   
 model_g<-ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), 
                      mean.model = list(armaOrder = c(0, 0), include.mean = FALSE), 
                      distribution.model = "norm")
    ugfit=ugarchfit(spec = garch_spec,data = retu_train)

Then i want to get the fitted values based on the test data. I used the ugarchforecast function as follows,
ugarchforecast(ugfit,data=retu_test)

But the output is as follow which does not contain fitted values based on test data.
*------------------------------------*
*       GARCH Model Forecast         *
*------------------------------------*
Model: sGARCH
Horizon: 10
Roll Steps: 0
Out of Sample: 0

0-roll forecast [T0=0230-01-01]:
       Series  Sigma
T+1  0.004748 0.1175
T+2  0.004702 0.1173
T+3  0.004657 0.1173
T+4  0.004615 0.1172
T+5  0.004574 0.1172
T+6  0.004535 0.1171
T+7  0.004498 0.1171
T+8  0.004463 0.1169
T+9  0.004429 0.1169
T+10 0.004396 0.1168

I am kind of new to garch modeling . So it is highly appreciated if someone can help me figure out how to get the fitted values based on test data. 
 A: ugarchforecast is not using the data argument if you supply a fitted model as the first argument; you can see this by reading the help file for ugarchforecast. When you supply the data retu_test via ugarchforecast(ugfit,data=retu_test), the data is ignored and the forecast is based on the fitted model and the last few data points in the training set retu_train. The trick is, GARCH models are autoregressive in the sense that they do not need new data to predict multiple steps ahead; the fitted model and the last few observations from the training data are enough to make forecasts. 
What you could do instead is rolling-window forecasting. 


*

*Take a single time series of length $T$.

*Estimate the model on the first $T-k$ data points (window $[1,T-k]$) and forecast the next data point. 

*Then roll the estimation window from $[1,T-k]$ to $[2,T-k+1]$ and forecast the next data point.

*Keep rolling until you run out of data. 

*Collect the $k$ forecasts and compare them to the actual realization to assess forecasting performance.


This assesses one-step-ahead forecasting performance.
You can forecast a few steps ahead instead of one if you are interested in a different forecast horizon.
You can also assess how well a model trained on one time series works on another time series. You would take an estimated model (defined by all of its coefficients plus the distributional assumption) and "filter" a new series and produce forecasts.
Point forecasts are in the column Series.
Forecasts of the conditional variance are in the column Sigma.
A: The fitted values can be values for the return or for the conditional variance of the returns. In your case the fitted values for the returns will be 0 due to your choice of specification for mean.model ARMA(0,0) and no inclusion of a mean. You can retrieve them from the model fit using the code
ugfit@fit$fitted.values
or equivalent
fitted(ugfit)
The fitted values for the variance you get using the code
ugfit@fit$var
or if you prefer the fitted standard deviation
ugfit@fit$sigma
or equivalent
sigma(ugfit)
you can always inspect an object using str() function so take a look at 
str(ugfit)
this is what I did to see how the fitted values, sigma and var are stored in the fit object (which is S4 class hence the use of @ ).
Here is a complete example but with some other data since I do not have the data you are using and also there's a minor error in the code you posted
require(rugarch)
data(sp500ret)

garch_spec <- ugarchspec(variance.model = list(model =     "sGARCH", garchOrder = c(1, 1)), 
                  mean.model = list(armaOrder = c(0, 0), include.mean = FALSE), 
                  distribution.model = "norm")

ugfit <- ugarchfit(spec = garch_spec,data = sp500ret)
ugfit@fit$fitted.values
ugfit@fit$var
ugfit@fit$sigma
str(ugfit)

You can check out the nice blog on the rugarch package by the author of the package rugarch
