Black-box testing treats the software as a "black box", examining functionality without any knowledge of internal implementation, without seeing the source code. What are the first three methods of white-box testing?