All the testing levels that we've seen so far is what
we can call developer's testing. So that's testing that is performed
either within the testing organization, or by somebody who's doing like
third-party testers on behalf of the testing organization. But there are two
other kinds of testing that are worth mentioning that are also
related to testing phases and these are alpha and beta testing.
Alpha testing is the testing performed by distributing a software system
ready to be released to a set of users that are internal
to the organization that developed the software. So you can consider these
users as, if you pass me the term, guinea pigs that will
use an early version of the code and will likely discover errors
that escaped testing and will have made it to the field if
not caught. Beta testing is the next step after alpha testing, in
which the software is released to a selected subset of users, in
this case, outside your organization. And also in this case, the users
are likely to discover latent errors in the code before it is officially
released to the broader user population, so before we have an
actual product release. So you may wonder why do we need
to do both alpha and beta testing. Why not just one
of the two? The reason is that alpha testing is performed
to iron out the very obvious issues that still escape testing,
but we want to do that before involving people outside your
organization. And the rationale is that alpha testers have a higher
tolerance for problems than beta testers, who expect a mostly working system.