What is the difference between boundary value analysis and equivalence partitioning, and how do you apply them?