General method for finding the degree of a splitting field When we work on polynomials with low degrees, finding the degree of the splitting field can be done by explicitly calculating the roots of the polynomial and then constructing the minimal field that contains them.
What about higher degree polynomials? Are there algorithms or heuristic approaches that can be adopted?
Clearly it depends on the field we are working on, as for finite fields there is a reliable algorithm (which is very time-consuming).
In general, it seems to me that very often the degree of the splitting field over $\mathbb {Q}$ is the upper bound $n! $ where $n $ is the degree of the polynomial, when does this not happen precisely? Could you provide an example? Does Galois theory give us a hand?
 A: Alexander Hulpke has a good article on the topic of computing Galois groups. I'm not aware of any ways to find the size of the splitting field any quicker than finding the Galois group.
Starting from your last question, given a "random" polynomial degree $n$ over $\mathbb Q$, its splitting field is extremely likely to be the full symmetric group $S_n$. In order to have a smaller Galois group, its coefficients must satisfy some polynomial equations, and therefore come from a space of dimension less than $n$. For example, it is well known that the Galois group is a subgroup of the alternating group $A_n$ if and only if the discriminant is a square.
As already mentioned in the commends, Dedekind's theorem can give you information about the cycle structure of elements of the Galois group. If the Galois group is $S_n$, then this will quickly find it because $S_n$ is generated by any transposition (2-cycle) and any $n$-cycle. Keith Conrad has some nice notes on this.
If the Galois group is smaller, though, the state-of-the-art general algorithm over $\mathbb Q$ (or a number field) is due to Fieker and Kluners (see their paper) and works very briefly as follows:


*

*We are given $f(x) \in \mathbb Q[x]$

*Set $W=S_n$

*For each maximal $U \leq W$:


*

*Find $I \in \mathbb Z[x_1,\ldots,x_n]$ be such that $\operatorname{Stab}_W(I)=U$ (an "invariant")

*Compute $R(t) = \prod_{w \in W//U}(t-I^w(r_1,\ldots,r_n)) \in \mathbb Z[t]$ (a "resolvent") where $r_i \in \bar{\mathbb Q}$ are the roots of $f$.

*Fact: $R(t)$ has a rational root if and only if $\operatorname{Gal}(f) \leq U$.


*If we find a $U$ such that $R(t)$ has a root, then set $W=U$ and start over.

*Otherwise $\operatorname{Gal}(f) = W$.


Observe that $\operatorname{Gal}(f) \leq W$ at all steps of the algorithm. By checking all of its maximal subgroups, we either find a smaller group containing the Galois group, or else the Galois group is not contained in any proper subgroup of $W$, and hence is $W$. The main hard bit of the algorithm is computing $R(t)$, and one way is to compute complex approximations to the roots of $f$ and plug these into the definition of $R$; there are better ways than this, and in fact there are tricks whereby you can avoid computing $R$ at all.
That was over number fields. If you are interested in $p$-adic fields like $\mathbb Q_p$ then there are a number of special cases known (e.g. unramified extensions, tame extensions and "singly ramified" extensions) but so far there is no general algorithm. Shameless plug: this is the subject of my upcoming thesis, in which I present a reasonably general algorithm for this case.
