"delete" would only inform (apart from calling the destructor) the Heap manager that the block of memory of sizeof(Test) which was allocated previously using new would not be used anymore and heap manger is free to do anything with that block of memory.
Let me try to give you a scenario on when the same code could cause an exception.
Let us say if the block of memory was allocated by heap manager on a new memory page which the heap manger acquired from the virtual memory manager, because it could not find free space anywhere else in the previously allocated pages. And now when delete is done heap manager would find that the only block which was allocated on the memory page is released, so it MIGHT decide to release the memory page back to virtual memory manager. And then when your code goes and access the memory whose page does not even exist in the virtual memory you would get an error.
Of course there are other scenarios one can come up with through a good knowledge of heap management implementations.