事实上,软件开发人员不可能完全预见用户实际使用程序的情况。例如,用户可能错误的理解命令,或提供一些奇怪的数据组合,亦可能对设计者自认明了的输出信息迷惑不解,等等。因此,软件是否真正满足最终用户的要求,应由用户进行一系列“验收测试”。验收测试既可以是非正式的测试,也可以有计划、有系统的测试。有时,验收测试长达数周甚至数月,不断暴露错误,导致开发延期。一个软件产品,可能拥有众多用户,不可能由每个用户验收,此时多采用称为α、β测试的过程,以期发现那些似乎只有最终用户才能发现的问题。α测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。经过α测试调整的软件产品称为β版本。紧随其后的β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。然后软件开发公司再对β版本进行改错和完善。一般包括功能度、安全可靠性、易用性、可扩充性、兼容性、效率、资源占用率、用户文档八个方面。β版本在有些项目的持续相当长,如Google的Gmail至今持续了数年,普通认为是较为成熟和产品了,但它仍然是β版本。这是对产品质量的不懈追求还是系统开发策略则不得而知了。
曾在网上看到过关于α、β测试是不是属于验收测试的讨论,最张是各有各的说法。我倒较认同其中一种说法,其认为:施验收测试的常用策略有三种,它们分别是:正式验收,非正式验收或 Alpha 测试,Beta 测试,即α、β测试是验收测试的一种。我觉得狭义的验收测试就是在公司内部由测试人员(通常是测试负责人或主管)按照设计的测试用例进行的一种测试,是系统测试的延续。广义上的验收测试则包括狭义的验收测试,α测试与β测试。一般用户对象相对固定的则只进行狭义的验收测试或是由公司内部非测试开发人员进行的α测试,如果是用户对象广泛且不固定的则有必要进行β测试。