How a program is tested depends strongly on what the program does. Neither of your links work, but in general, you want to cover expected and unexpected inputs, which seems sort of obvious. For expected inputs, verify that any result is correct. For unexpected inputs, you want to test corner cases and extremely large or small values, or values that are the wrong data type (strings being entered for numeric inputs, for example).