It would be impractical to "test for every scenario you can think of." Why is this so? Using just 14 of the suggestions here, mostly from Bobby Jack's excellent answer, you would wind up with 2,654,208 possible tests. Realistically, you wouldn't or couldn't test for every one of those. So what should you do?
This is a great example of where pairwise (or other, more advanced combination testing methods) would be extremely useful. Just 38 tests would cover not only every parameter value at least once but it would include at least one test case that covered each pair of the parameter values interacting with one another. (e.g., Browser = "Opera" and CSS = "on" will be tested for, and Simulate Dropped Connectivity? = "Y", and Cookies Enabled = "N" will be tested for, etc.) A couple screen shots from Hexawise, a new (currently free) test design tool, can make this point better than I can in words:
This first image shows each of the 14 parameters with up to 6 values per parameter
Image 1 - http://pea.to/cU
This second image shows:
(A) the inputs create 2,654,208 possible test cases / scenarios, and
(B) just 38 test cases will test for every single possible pair of parameter values in at least one test case. (e.g., Browser = "Opera" and CSS = "on" will be tested for, and Simulate Dropped Connectivity? = "Y", and Cookies Enabled = "N" will be tested for, etc.)
Image 2 - http://pea.to/8B
Additional information on this method of maximizing coverage in as few test cases as possible can be found at www.combinatorialtesting.com, particularly at http://www.combinatorialtesting.com/clear-introductions-1
Justin Hunter - Founder and CEO of Hexawise - More coverage. Fewer tests. www.hexawise.com