The number of quadrature (gauss) points is estimated by ufl when you specify your variational form.
See for instance:
from dolfin import *
from ufl.algorithms.compute_form_data import estimate_total_polynomial_degree
mesh = UnitCubeMesh(5, 5, 5)
Vs = FunctionSpace(mesh, "P", 2)
u, v = TrialFunction(Vs), TestFunction(Vs)
a_mass = inner(u, v)*dx
a_stiffness = inner(grad(u), grad(v))*dx
L = inner(Function(Vs), v) * dx
print(estimate_total_polynomial_degree(a_mass))
print(estimate_total_polynomial_degree(a_stiffness))
print(estimate_total_polynomial_degree(a_mass + a_stiffness))
print(estimate_total_polynomial_degree(L))
You can specify the quadrature degree in the integration measure, i.e.:
a_fixed_degree = inner(u, v)*dx(metadata={"quadrature_degree":2})
The schemes for the different degrees can be found at: