Not many people use special techniques of test design while writing test cases. Only after gradual getting of some experience, eventually they realize that they are constantly doing the same job, that has been already described in particular rules.
There are two types of testing techniques: static and dynamic. Static testing is the testing of the products manually, or with a set of tools, but they are not executed. It does not require computer to make a testing, it is done without the program executing.
I suggest you to find a brief description of the most common dynamic techniques of test design:
1) Equivalent Separation (Partitioning). As an example , you have a range of values from 1 to 10, you have to choose one correct value within the interval , lets say 5, and one wrong value out of the interval – 0.
2) Boundary value analysis. If to take the example above, as the values for the positive test , let’s select minimum and maximum boundaries (1 and 10) and the values bigger and less than the boundaries (0 and 11). Boundary value analysis can be applied to fields , records , files, or any kind of entities having boundaries.
3) Cause / effect. Usually, it is an input of conditions combinations (causes) for getting the response of the system (effect).
4) Error Guessing. The tester uses his experience and skills about the system and the ability to interpret specifications in order “to guess” at what entry conditions, the system may produce an error. For example, the specification says: “the user must enter a code.” Test Analyst will think, “What if I do not bring the code? “, “What if I enter the wrong code,” and so on. This is the prediction of the error .
5) Exhaustive testing – this is an extreme case. Within this technique, you have to test all possible combinations of input values, and it has to find all the problems. In practice, the application of this method is not possible due to the huge number of input values.