We should know the logic, code and the structure of the program or function. Internal knowledge of the application how the system works what's the logic behind it and structure how it should react to particular action.
Why are there so many software bugs?
Give me five solutions to problems that occur during software development
What makes a good test engineer?
What is Software requirements?
What is a test plan?
What is a test case?
What should be done after a bug is found?
What is configuration management?
What if the software is so buggy it can�t be tested at all?
What if the project isn�t big enough to justify extensive testing?