(1) There is no reason to not have the explicit code in the post. It's simple code.
(2) Integrate gives results consistent with NIntegrate. That's a fairly strong indication that the two should in fact not give the same result.
Here is the function, rewritten to use Piecewise (which is better suited for use in Integrate and NIntegrate).
f[x_] := Piecewise[{{0,
x < -2}, {a, -2 <= x < -1}, {-1, -1 <= x < 1}, {a, 1 <= x < 2}}]
Here are the computations.
In[21]:= beta1 =
Integrate[
f[x1] f[x2 - x1] f[x3 - x2] f[x3], {x1, -2, 2}, {x2, -2,
2}, {x3, -2, 2}]
Out[21]= 4/3 (4 - 7 a + 13 a^2 - 2 a^3 + 2 a^4)
In[22]:= beta2 =
Integrate[
f[x1] f[x3 - x1] f[x2] f[x3 - x2], {x1, -2, 2}, {x2, -2,
2}, {x3, -6, 6}]
Out[22]= 4/3 (4 - 7 a + 15 a^2 - 3 a^3 + 3 a^4)
Numerical consistency checks:
In[18]:= NIntegrate[
f[x1] f[x2 - x1] f[x3 - x2] f[x3] /. a -> 3.3, {x1, -2, 2}, {x2, -2,
2}, {x3, -6, 6}]
Out[18]= 383.706933333
In[23]:= beta1 /. a -> 3.3
Out[23]= 383.706933333
In[19]:= NIntegrate[
f[x1] f[x3 - x1] f[x2] f[x3 - x2] /. a -> 3.3, {x1, -2, 2}, {x2, -2,
2}, {x3, -6, 6}]
Out[19]= 522.953733333
In[24]:= beta2 /. a -> 3.3
Out[24]= 522.953733333