Primers for qPCR have to follow all the gudelines for regular primers is and an additional set of rules specific for qPCR primers:
There are many programs for designing primers, the most important ones:
The major downside of Primer3 and Primer3Plus is the fact that you have to check the specificity of the primers yourself. Primer3 will suggest a number of primer pairs that fulfill all of the above requirements, but Primer3 will not check the specificity of the primers. So you have use BLAST to check the specificity of the suggested primer pairs. Very often, the selected primers are not specific and you have to repeat the entire Primer3 analysis.
If you use Primer3 and do the BLAST yourself, BLAST against Refseq sequences unless they are not available for the organism you work with or you have reasons to believe that they are not complete (i.e. they do not represent the full genome). For model organisms, you can BLASTagainst the Refseq database. Limit the database to sequences from the organism you work with.
Additionally, it is especially important to check that the primers are specific at the 3′ end because that’s the site where the polymerase will attach nucleotides. So it is recommended to not use primers that contain long identical stretches (> 15nt for primers of 20nt long) to other regions in the genome, and certainly not if these stretches comprise the last nucleotide at the 3′ end of the primer.
For these exercises we will use PrimerBLAST since it uses the same algorithm to pick primers as Primer3  and does the specificity check for you!