TestBench must verify that the design does everything it is supposed to do and does not do anything it is not supposed to do. There are different styles of writing testbenchs. These styles are called methodologies. Methodologies states how to verify complex scenarios to what file name you should use also.