Why not self pollination for finding the genotype instead of test cross?
Because for test cross you need to phenotype far less progeny to be reasonably sure about parent genotype. Lets say you decide to phenotype N progeny. If the tested parent is heterozygote the random chance of you getting all N plants tall is (1/2)N for test cross and (3/4)N for self pollination.

So for example if you decide to phenotype N=8 progeny plants in case of self pollination (3/4)8=10% of your heterozygous parents will be wrongly assigned as homozygous which is error too high for almost anything serious. In case of test cross (1/2)8=0.4% of your heterozygous parents will be wrongly assigned as homozygous. To achieve the similar level of accuracy with self pollination you would have to phenotype N=19 or N=20 progeny plants.

The difference does not seem like much when testing one parrent but if you need to test many the costs will add up.