In reply to gpb:
Don't connect directly - this eliminates any reuse.
Instead, make a method in your interface, set_a(value) that sets the signal a=value. Then you can call this from your testbench with virtual_interface.set_a(value)
There are even better ways to implement this, but all rely on indirectly setting the signal though a method in the interface.