验收测试和功能测试之间的实际区别是什么?
每个测试的重点或目标是什么?无论我在哪里读到,它们似乎都含糊不清地相似。
验收测试和功能测试之间的实际区别是什么?
每个测试的重点或目标是什么?无论我在哪里读到,它们似乎都含糊不清地相似。
这绝非标准做法,而且我认为没有“标准”定义,因为这里的答案互相矛盾。对于您的组织来说,最重要的是精确地定义这些术语并坚持使用。
我喜欢Patrick Cuff的答案。我想补充一下的是测试层次和测试类型之间的区别,这对我来说是一个启示。
测试层次用V模型很容易解释,例如:
每个测试层次都有其对应的开发层次。它具有典型的时间特征,在开发生命周期的某个阶段执行。
测试类型是特定测试目标的特征。 测试类型强调您的质量方面,也称为技术或非功能方面。 测试类型可以在任何测试层次执行。我喜欢使用ISO/IEC 25010:2011中提到的质量特性作为测试类型。
测试问题和解决方案之间的区别在于,软件是解决问题的方案,两者都可以被测试。
功能测试确认软件在解决问题的方式范围内执行功能。这是开发软件的不可或缺的一部分,类似于在大规模生产产品离开工厂之前进行的测试。功能测试验证产品实际按照开发者预期运行。
验收测试验证产品实际解决了它所设计解决的问题。最好由用户(客户)来执行此项测试,例如执行软件协助完成的任务。如果软件通过了这个真实世界的测试,它就能够替代之前的解决方案。特别是当你有匿名客户(例如网站)时,这种验收测试有时只能在生产环境中正确执行。因此,一个新功能只有在几天或几周的使用后才会得到接受。
功能测试 - 测试产品,验证它是否具有你设计或构建的质量(功能、速度、错误、一致性等)。
验收测试 - 测试产品在其上下文环境中,需要(模拟)人的交互作用,测试它对原始问题是否具有期望的影响。
受众。功能测试旨在确保制作软件的团队成员能够满足他们的期望。验收测试旨在确保消费者满足他们的需求。
范围。功能测试仅测试一个组件的功能。验收测试涵盖了产品中任何对消费者来说值得花时间或金钱进行测试以确定其可接受性的方面。
软件可以通过功能测试、集成测试和系统测试,但当客户发现功能不符合他们的需求时,它可能会失败验收测试。这通常意味着规格说明书出了问题。软件也可能会在某些功能测试中失败,但通过验收测试因为客户愿意处理一些功能性错误,只要软件能够满足他们核心需求就可以(测试版软件通常在完全功能之前将被一部分用户接受)。
功能测试:使用从指定的功能需求中获取的测试数据进行测试,而不考虑最终程序结构。也被称为黑盒测试。
验收测试:正式测试,用于确定系统是否满足其验收标准,使最终用户能够确定是否接受该系统。
在我看来,主要的区别在于谁说测试成功或失败。
功能测试是测试系统是否符合预定义的要求。它由负责开发系统的人员进行并进行检查。
验收测试由用户签署。理想情况下,用户会说出他们想要测试什么,但实际上很可能是功能测试的一个子集,因为用户没有投入足够的时间。请注意,这个观点来自我处理的业务用户,其他用户群体(如航空和其他安全关键领域)可能不会有这种区别。