In correct... Default value is not the value that is used in the test... Your expectation is incorrect. When you add a variable, at the time that you add the variable, you have an option to specify the default value. It never changes unless you go in and edit the variable declaration again. The "Default Value" is the value that is used in the test if you NEVER call "Set Variable Value". As soon as you call "Set Variable Value", the memory location storing the variable value contains the value that you assigned with "Set Variable Value" and then, when the test is done, that memory is cleared and reallocated.
Here's the way it looks in script code... the concept is the same:
function variableTest(){
var MyVariable = 'MyTest'; // This declares the variable with a "Default value" of "MyTest"
Log.Message(MyVariable); //The log will print "MyTest"
MyVariable = 'A Different Value'; //Now the variable is assigned a different value. The "Default Value" hasn't changed but you've told the code to use a different value now.
Log.Message(MyVariable); //The log will print "A Different Value"
}
If you run the above code, it will always print 'MyTest' in the first log entry because the Default value is always the same. The new value is only assigned to the variable at "run time" and is cleared out at the beginning of each test run. This is the same concept in Keyword Tests. Your code will NEVER change the default value.
You say you leave the "default value" blank... that would be the same as the above code except that the initial variable declation would simply be
var MyVariable;
The first log entry would be blank because there is no value assigned to the variable.