Following are the typical design techniques in software engineering:
1. Deriving test cases directly from a requirement specification or black box test design technique. The Techniques include:
Boundary Value Analysis (BVA)
Equivalence Partitioning (EP)
Decision Table Testing
State Transition Diagrams
Use Case Testing
2. Deriving test cases directly from the structure of a component or system:
Statement Coverage
Branch Coverage
Path Coverage
LCSAJ Testing
3. Deriving test cases based on tester's experience on similar systems or testers intuition:
Error Guessing
Exploratory Testing