> In general, a test case is a pair of an input and an expected output > (or as many books say, it mostly has just a single step: do sth and > check it). A test case or a simply "a test" is an experiment we run in order to reveal some information about a product or service. > one often has to follow certain actions/steps Only if you are taking the approach of (heavily) scripted testing. For example if you take more exploratory approach you try several different ways to test an upload file size limit. For more research look at: http://sqa.stackexchange.com/questions/9303/exploratory-testing/10096#10096. > But most testers do the following Most testers where? That you work with? Again I would imagine most people who do testing take a primarily exploratory approach. I don't have any hard evidence of this but in my experience and from those I talk to (including a lot of programmers), they tend to work in a more natural form. > Should test cases contain more than one step with expected result? > What is the usage of steps then, does it really make sense to use them > as I describe? If I had to guess I'd say you are using a "test management system" that lists things out in a scripted way? The truth, is not every test you are going to run will have an expected output because you may not have any way to understand what Oracle is appropriate. (An Oracle is a way to recognize a problem.)