Frequency analysis is a very effective way to break substitution ciphers. However, with the methods I've seen, a lot of the work requires guesswork and intuition of a human, so it would be interesting to design a method without this.
In general, if I list out the frequencies of the letters in the cipher text, the first guess to make is that the frequencies line up with those in normal English (that the most common letter in the ciphertext corresponds to e, second most common to t, etc). But what is the second guess to make? What is the third? What is the nth? And how many would I need to make to be reasonably sure I've tried the right one?