There are many aspects to testing. One intention is to prove that the final product meets the customer requirements....
The tests are usually done in two parts: The tester makes sure that all of the required features and functions are present and accounted for, then the tester makes sure that the features and functions behave as expected.
There is a straightforward way of testing. But there are other aspects testers ought to be aware of.
Trying to break the application on behalf of the user
Let's take the example of a Web application that has a lot of online processing. If the first screen asks for a user id and password, I will start off by entering no values and see what happens. Did I get in? Did an error occur? Does the screen just sit there? What should happen is the application should consider this an invalid response and return the appropriate error message.
Users will type any value into online fields
When I get into application screens, I enter all kinds of crazy values. If the field expects an alpha, I enter a numeric. Then I enter special characters such as (*&%$â ™. I run through the rest of the fields the same way.
I also try to screw up any pre-populated fields. I always tell developers that if you don't want a field changed, then do not allow a user to place a cursor in it and type. I guarantee you that if you leave a field open for input, at some point, at some time, someone will try to type a value into it.
Users will hit every combination of available logic flow
In addition to simple editing errors, I also try every combination of logic flow. When I look at a Web page, I try every hyperlink and see where I end up. The developers look at me and wonder why a user would ever do that. Again, the point is that they may not do it on purpose. However, you should expect that every combination of logic would be attempted at some time.
Look at the presentation
The last thing I look at is the presentation and overall look and feel. I try to make sure that screens have a nice appearance, nice font and that they are consistent. Consider a bulleted list: All items in the list should have a period at the end or they all should not. The fonts should also be consistent. If the headers on one section are 14-point fonts, they should all be that size. This is all a part of making the application look professional.