|
What Is Alpha Testing?
"Simulated or actual operational testing at an in-house site not otherwise
involved with the software developers." BS 7925-1.British Computer
Society Specialist Interest Group in Software Testing (BCS SIGIST)
Why?Alpha testing is typically done for two reasons:-
1) to give confidence that the software is in a
suitable state to be seen by customers (but not necessarily released.)
2) to find bugs that may only be found under
operational conditions. Any other major defects or performance issues should
have been discovered by this stage.
Historically, companies may have gone through many cycles of Alpha
testing. However as development lifecycles have decreased, these have
decreased. Also the timing has been pushed much closer to the release
date.
A subtle distinction can be made between alpha testing, its sibling beta testing and acceptance testing. Alpha/Beta testing can be seen as
"does the software work", whereas acceptance testing is more for the
customer to say, "are we willing to pay for the software?"
Alpha testing is high up on the V model, mapping against the requirements
process function.
Who? Ideally Alpha testing should be conducted with as much
independence as possible from Development and the personnel that did
the system or other forms of testing up to that point. Independence can
bring a fresh view point to the party. "Workarounds" used in system testing
can become cast in stone if the root cause of the problem is not dealt with
In the worse case, the software can be released, without the workaround, so
all the user sees is a defect.
However in the real world, not many organisations have the resources for
an independent system test and an independent Alpha test team. Consequently
testers have to where both hats. An alternative is to co-opt personnel
closer to the customer, such as consultants and implementors to do the
testing.
When?
Due to its very nature of testing an entire system, Alpha testing
traditionally occurred very late in the cycle. Depending on the development
model used, the "when" can happen at different points.
In the traditional Waterfall model Alpha testing took place very late in
the project. Unfortunately in many cases, time for testing is squeezed very
tightly at the end of the development. Thus compromises in the quality of
testing are made.
In the iterative model, particularly the RUP, a large emphasis is placed
on risk mitigation and constant builds, followed by Smoke testing. At all
times the implementors, consultants and customers can be seen as
stakeholders. For instance at the end of the elaboration phase, it should be
demonstrable that the core architecture of the system is stable and performs
as expected. Thus during the transition period the stakeholders will have
seen the software numerous times and there should not be too many surprises
when the software is shown in the Alpha form. Indeed in the RUP Alpha
testing has a far lower priority than achieving lifecycle milestones
Where?
Alpha testing is usually undertaken at the developing organisations
site.
How?
Both manual and automated techniques can be used for Alpha testing.
Performance testing especially can be automated
Testing types that can be used included documentation, installabilityand operational testing. A large degree of regression testing
should also occur, especially on high risk areas of the system.
|