Why can you find the roots a of polynomial by factoring it?
It's not an assumption. It is a general fact that if $ab = 0$, then either $a = 0$ or $b = 0$. The roots of a polynomial are the numbers for which that polynomial evaluates to $0$, so to find the roots, it is enough to find the roots of the factors. So we factor everything as much as we can. In your case, this is a quadratic polynomial, so any factors are linear, and then it is obvious what the roots are.
Alfred Yerger explains why factoring gives roots, but that does not explain the converse: why do roots give factors?
Let $p(x)$ be a polynomial with a root $c$. By long-division of $p(x)$ by $x-c$, we can write $p(x)=q(x)(x-c)+r$, where $r$ is the remainder (a constant since $x-c$ is a linear polynomial). Now, by substituting $x=c$, we get $p(c)=q(c)(c-c)+r$. Since $p(c)=0$ and $c-c=0$, we have $0=r$. That is, there was no remainder after all! Hence, the result of the long division is that $p(x)=q(x)(x-c)$. In other words, if we factor out $x-c$ from $p(x)$, we are left with a polynomial $q(x)$.
Something that is easy to miss with this is that in fact, $p(c)=q(c)(c-c)+r$. That is, $p(c)=r$, whether or not $c$ is actually a root. Thus, the long division will always give $p(x)=q(x)(x-c)+p(c)$. This is the basis of a computational technique called synthetic division which gives both $q(x)$ and $p(c)$. And, it takes about as much effort to calculate both as it does to calculate either on its own.
A polynomial of degree $d$ has exactly $d$ roots (Fundamental Theorem of Algebra), which can be complex and/or multiple.
If you factor it in $n$ factors, the factors are also polynomial and their degrees are such that $d=d_1+d_2+\cdots d_n$. This guarantees that no root "gets lost". On the other hand, any root of a factor is perforce a root of the initial polynomial.
Hence the roots of a polynomial are exactly the roots of the factors. The reason we factor is that the roots of the factors can be easier to find than those of the original polynomial.
In the case of polynomials with real coefficients, it can be more convenient to factor in first degree binomials for the real roots and second degree trinomials for the conjugate pairs. E.g. $x^3+2x^2+2x+1=(x+1)(x^2+x+1)$.