Test vs. Test Case
A common term in testing is test case. Unfortunately it doesn't have a single meaning. Instead it is viewed different depending on contest.
My definition is fairly simple. A test case is the minimum unit of execution which performs a test. A test is a group of one or more test cases (usually related test cases).
For example, if I was testing the Win32 CreateFile API, a simple test case could be to open a file, then close the handle to the file after one minute. This is a complete test which exercises the desired component functionality.
One might wonder about all those parameters that the CreateFile api has (see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx for full details on the API). One could vary the different dwDesiredAccess flags on the api, testing each in turn. This is what I would refer to as a test variation.
This gets into a bit of terminology variance. One possible viewpoint is to consider a test case a container object of test variations. Each test variation is executed, with the results being rolled up to the test case. In turn the test case would be contained within a test and would report its results back to the test to be aggregated.
It is also possible to consider the test case to be more of a virtual concept. Instead of test variations reporting results back to a test case, the variations would report results directly back to a test. The test case would serve as a logical grouping of test variations.
It is also possible to treat test variation and test case as synonyms.
These viewpoints are all valid. The important thing is to stick with the same terminology as much as possible. I have found that different teams often use different meanings, which can create a lot of confusion when trying to aggregate the results of many different groups.