In order to decide whether a context-free grammar generates the empty language or not, you can compute the set of *productive nonterminals*. A nonterminal $A$ is productive if there is a rule $A to alpha$ where all nonterminals in $alpha$ are already known to be productive. The set of productive nonterminals can be computed iteratively using the definition. The grammar generates the empty language iff the start symbol is not productive.

In order to determine whether the language generated by a context-free grammar is infinite or not, you can use the pumping lemma. First you need to convert the grammar into Chomsky normal form. Then, there are thresholds $n_1,n_2$, depending on the number of nonterminals, such that the language generated by the grammar is infinite iff it contains a word whose length is between $n_1$ and $n_2$ (in the case of regular grammars, you can take $n_1 = n$ and $n_2 = 2n-1$, where $n$ is the number of nonterminals, but for general context-free grammars, $n_1,n_2$ are exponential in $n$); this is a consequence of the pumping lemma. This is not a very efficient algorithm, unfortunately, but it shows that the problem is decidable.