Answers:
在我的世界中,我们使用以下术语:
功能测试:这是一项验证活动;我们是否构建了可以正常工作的产品?该软件是否符合业务要求?
对于这种类型的测试,我们的测试用例涵盖了我们可以想到的所有可能的场景,即使该场景不太可能“存在于现实世界中”也是如此。在进行此类测试时,我们旨在最大程度地覆盖代码。我们使用当时可以抓住的任何测试环境,只要它可用就不必具有“生产”能力。
验收测试:这是一个验证活动;我们建立了正确的东西吗?这是客户真正需要的吗?
通常,这是与客户合作完成的,或者由内部客户代理(产品负责人)完成的。对于这类测试,我们使用的测试用例涵盖了我们期望使用该软件的典型场景。此测试必须在“类似于生产”的环境中,在与客户使用的硬件相同或接近的硬件上进行。这是我们测试“污秽”的时候:
可靠性,可用性:通过压力测试验证。
可扩展性:通过负载测试验证。
可用性:通过对客户的检查和演示进行验证。用户界面是否按照自己的喜好进行了配置?我们是否将客户品牌放在所有合适的位置?我们是否拥有他们要求的所有字段/屏幕?
安全性 (又名“ 安全性”,仅用于安装):通过演示进行验证。有时,客户会聘请外部公司进行安全审核和/或入侵测试。
可维护性:通过演示我们将如何交付软件更新/补丁进行验证。
可配置性:通过演示客户如何修改系统以满足其需求进行验证。
这绝不是标准的,而且我不认为有“标准”定义,如此处矛盾的答案所示。对于您的组织而言,最重要的是准确定义这些术语并坚持使用。
我喜欢Patrick Cuff的回答。我要添加的是测试级别和测试类型之间的区别, 这对我来说是大开眼界的。
测试级别使用V模型很容易解释,例如: 每个测试级别都有其对应的开发级别。它具有典型的时间特征,它们在开发生命周期的特定阶段执行。
甲测试类型是一个特征,它着重于特定的测试目标。测试类型强调您的质量方面,也称为技术或非功能方面。测试类型 可以在任何测试级别上执行。我喜欢将ISO / IEC 25010:2011中提到的质量特征用作测试类型。
要使其完整。还有一种叫做回归测试的东西。这是测试级别和测试类型旁边的额外分类。一个回归测试是要重复,因为它触及的东西在你的产品的关键测试。实际上,这是您为每个测试级别定义的测试的子集。如果您的产品中有一个小的错误修复程序,则并非总是有时间重复所有测试。回归测试可以解决这个问题。
测试问题和解决方案之间的区别。软件是解决问题的方法,两者都可以测试。
功能测试确认软件在您解决问题的方式范围内执行了功能。这是开发软件不可或缺的一部分,与批量生产产品出厂之前进行的测试相当。功能测试可验证产品是否确实按照您(开发人员)的想法工作。
验收测试证明产品确实解决了要解决的问题。这最好由用户(客户)完成,例如执行软件协助的他/她的任务。如果该软件通过了此真实世界的测试,则可以替换以前的解决方案。有时只能在生产中正确执行此验收测试,尤其是在您有匿名客户(例如网站)的情况下。因此,只有在使用几天或几周后才能接受新功能。
功能测试 -测试产品,验证其具有您设计或制造的质量(功能,速度,错误,一致性等)
验收测试 -在产品环境中测试产品,这需要(模拟)人机交互,测试产品对原始问题是否具有预期效果。
答案是意见。我从事过许多项目,并担任测试经理和问题经理,所有不同的角色和不同书籍中的描述都不同,所以这是我的变化:
功能测试:接受业务需求,并从功能角度全面测试所有需求。
验收测试: “付费”客户进行他喜欢做的测试,以便他可以接受交付的产品。它取决于客户,但通常测试不如功能测试那样彻底,尤其是在内部项目中,因为利益相关者会审查并信任在早期测试阶段中完成的测试结果。
正如我所说的,这是我的观点和经验。功能测试是系统的,而验收测试则是业务部门对事物的测试。
听众。功能测试是为了确保生产该软件的团队成员能够按预期进行操作。验收测试是为了确保消费者能够满足他们的需求。
范围。功能测试一次只能测试一个组件的功能。验收测试涵盖了对消费者而言至关重要的任何方面,足以在接受软件之前进行测试(即,值得花费时间或金钱进行测试以确定其可接受性的任何物品)。
软件可以通过功能测试,集成测试和系统测试;只有当客户发现这些功能无法满足他们的需求时,才能通过验收测试。这通常意味着有人搞砸了规格。软件也可能无法通过某些功能测试,但会通过验收测试,因为客户愿意处理一些功能错误,只要该软件能够很好地完成他们所需的核心工作即可(测试版软件通常会在此子集之前被部分用户接受)是完全正常的)。
功能测试:应用从指定的功能要求衍生的测试数据,而不考虑最终程序的结构。也称为黑盒测试。
验收测试:为确定系统是否满足验收标准而进行的正式测试,使最终用户能够确定是否接受系统。
在我看来,主要区别在于谁说测试是成功还是失败。
功能测试测试系统是否满足预定义的要求。它由负责开发系统的人员执行和检查。
用户接受验收测试。理想情况下,用户会说出他们想要测试的内容,但实际上,由于用户没有投入足够的时间,因此很可能是功能测试的落日。请注意,这种观点来自我与其他用户组打交道的业务用户,例如,航空和其他对安全至关重要的用户可能没有这种区别,
他们是一样的东西。
在部署或交付系统之前,应在与实际生产/部署环境尽可能相同的完整系统上执行验收测试。
您可以自动或手动进行验收测试。