Blackbox testing static and dynamic testing
Two other terms used to explain how software is tested are static testing and dynamic testing. Static testing refers to testing something that is not running, examining and reviewing it. Dynamic testing is that which you would normally think of as testing moving and using the software.
The best analogy for these terms is the process through which you go when checking out a used car. Kicking the tires, checking the paint, and looking under the bonnet are static testing techniques. Starting it up, listening to the engine and driving down the road are dynamic testing techniques.
Static Black-Box Testing: Testing the Specification
Testing the specification is static black-box testing. The specification is a document, not a running program, so it's considered static. It's also something that was made using data from many sources usability studies, focus groups, marketing input, and so on. You don't necessarily need to know how or why that information was obtained or the details of the process used to obtain it, just that it's been boiled down into a product specification. You can then take that document, perform static black-box testing, and carefully examine it for bugs.
What do you do if your project does not have a specification? May be your team is using the big-bang model or a loose code-and-fix model. As a software tester, this is a challenging position. Your aim is to find errors or bugs early ideally getting them before the software is coded but if your product does not have a spec, this may look impossible to do. Although the spec may not be written down, someone, or many people, knows what they are trying to build. It may be a project manager, the developer, or a marketer. Use them as the walking, talking, and product spec and apply the same techniques for evaluating this "mental" specification as though it was written on paper. You can even take this step further by recording the info you collect and circulating it for review.
Dynamic Black-Box Testing: Testing the Software When Blindfolded
Testing software without having an insight into the details of underlying code is dynamic black-box testing. It's dynamic because the program is executing you are using it as a customer would. And, it's black-box because you are testing it without understanding exactly how it works with blinders on. You are entering inputs, receiving outputs, and checking the results. Another name commonly used for dynamic black-box testing is behavioral testing because you're testing how the software actually behaves when it's used.