在工程界,特别是在多样的子学科中,验收测试是一项确定规范或合约需求是否得到满足的测试。验收测试可能包含化学测试、物理测试或性能测试。在系统工程中,它可能涉及对某个系统进行黑盒测试,例如在交付前对一个软体、一批制造的机械零件或化工产品进行验证。而在软体测试领域,国际测试与资格委员会(ISTQB)将验收测试定义为与用户需求、规范以及业务流程相关的正式测试,用以确定一个系统是否符合接受标准。
最后的一次测试是用户验收测试,进行于最终发布之前,以评估产品或应用是否能够应对实际场景。
用户验收测试(UAT)是品质保证生命周期中的最终阶段,其目的在于模拟用户行为,以检查系统是否符合业务需求,并在不符合特定标准时拒绝变更。验收测试的不同形式包括用户验收测试(UAT)、终端用户测试、操作验收测试(OAT)、验收测试驱动开发(ATDD)和现场(验收)测试。接受标准即系统或组件必须满足的条件,这样用户、客户或其他获授权的实体才能接受。
测试是一系列活动,旨在促进对一个或多个被测试项目属性进行发现和/或评估。每次测试称为测试用例,它运行一套预定义的测试活动,旨在推动测试项目的执行以达成测试目标,包括正确的实现、错误识别、质量验证及其他有价值的细节。测试环境通常设计得尽可能与预期生产环境一致,其中包括所有设施、硬体、软体、固件、程序和文件,这些都是用于执行软体测试的。
用户验收测试(UAT)和操作验收测试(OAT)的测试用例理想上是在业务客户、业务分析员、测试者和开发人员之间协作制定的。
这些测试必须包括业务逻辑测试以及操作环境的条件。业务客户(产品拥有者)是这些测试的主要利益相关者。随着测试条件成功地达到其接受标准,利益相关者都会得到安心,确认开发正朝着正确的方向前进。
验收测试套件可能需要多次执行,因为所有测试用例可能无法在单次测试迭代中执行。验收测试套件使用预定的验收测试程序运行,以指导测试员使用何种数据、遵循步骤和执行后的期望结果。实际结果被保留以便与预期结果进行比较。
如果实际结果与每个测试用例的预期结果相符,则该测试用例被视为通过。验收测试的目的是提供信心,让开发的产品符合功能和非功能要求。
操作验收测试(OAT)专注于系统的操作准备,主要用于软体开发维护专案作为质量管理系统的一部分。这类测试强调系统准备就绪,以支持其成为生产环境的一部分。
用户验收测试要求由业务客户创建,并以业务领域语言表达。这些是用来验证用户故事的完整性或故事在任何迭代中所扮演的角色的高级测试。 UAT常常在客户接受新系统之前进行,旨在确保解决方案能为用户正常运作,而非仅仅确认系统不崩溃和满足其他记录要求。
UAT的测试应该由预定的最终用户或主题专家执行,并需提供一个确认的总结以进一步验证。
如果软体在正常使用过程中按照所需运作且无任何问题,人们可以合理推断其在生产中的稳定性。用户测试通常不针对识别简单的外观问题或重大缺陷进行,因为开发者在早期单元测试、整合测试和系统测试阶段已经识别和修复这些问题。
根据项目管理协会的说法,接受标准是一系列在接受交付品之前必须满足的条件。对于系统的某个组件所需的接受标准,通常非常详细。一般接受测试的类型包括用户验收测试、工厂验收测试(FAT)、运营验收测试等,其中工厂验收测试通常由供应商在产品运送到目的地前进行。
那么,真正的考验是:当你的系统经过了所有这些测试后,能否确保其在实际运行中的表现与预期一致呢?