The most adopted test techniques are: use case testing, boundary value analysis, equivalence partitioning, decision tables, state transition testing, pairwise testing and classification trees, all being specification-based