It is expected while testing a software, tester should reveal all the defects and deviations from requirements, while running an application such that it should break. Tester should understand domain knowledge, able to design actual scenarios, conditions that are not thought of and not handled by developer, able to configure specifications and preconditions to verify how application performs. Have analytical knowledge and logical thinking; think out of box while testing software.