This paper presents efficient algorithms for testing the finite, polynomial, and exponential ambiguity of finite automata with ε-transitions. It gives an algorithm for testing the exponential ambiguity of an automaton A in time O(|A|E2, and finite or polynomial ambiguity in time O(|A|E3, where |A| E denotes the number of transitions of A. These complexities significantly improve over the previous best complexities given for the same problem. Furthermore, the algorithms presented are simple and based on a general algorithm for the composition or intersection of automata. We also give an algorithm to determine in time O(|A|E3 the degree of polynomial ambiguity of a polynomially ambiguous automaton A. Finally, we present an application of our algorithms to an approximate computation of the entropy of a probabilistic automaton.