C# 什么是功能测试?
什么是功能测试?这与单元测试和集成测试有何不同?C# 什么是功能测试?,c#,unit-testing,testing,terminology,C#,Unit Testing,Testing,Terminology,什么是功能测试?这与单元测试和集成测试有何不同? 单元测试在单个应用程序层内(演示、, 业务逻辑、数据访问等) 功能测试是跨多个应用程序层进行的,因此 测试跨越多个完整的组件 应用程序功能 集成测试将是跨多个应用程序的测试 组件甚至应用程序 另一种思考方式是: 单元测试: 将代码作为单元进行测试,调用方法并验证返回值和对象属性状态/值 功能测试: 在执行任务时测试代码路径。这确保了应用程序按照代码所说的方式运行 积分测试?你是说集成测试吗 集成测试: 通过将代码插入更大的块来测试代码,以确保您没
- 单元测试在单个应用程序层内(演示、, 业务逻辑、数据访问等)
- 功能测试是跨多个应用程序层进行的,因此 测试跨越多个完整的组件 应用程序功能
- 集成测试将是跨多个应用程序的测试 组件甚至应用程序
- 另一种思考方式是:
单元测试:
将代码作为单元进行测试,调用方法并验证返回值和对象属性状态/值 功能测试:
在执行任务时测试代码路径。这确保了应用程序按照代码所说的方式运行 积分测试?你是说集成测试吗 集成测试:
通过将代码插入更大的块来测试代码,以确保您没有破坏现有逻辑,并且能够重新集成到主分支中。功能测试是确保客户需求在规范中规定的最终产品中得到实现。 单元测试是检查代码的一小部分是否按预期运行。 集成测试是确保当您将所有不同的部件/模块组合在一起时,系统是稳定的 例如,BigBank Corporation需要一个软件,该软件可以生成客户银行对账单,并为每个客户每月插入3笔随机费用 在与BigBank代表进行多次讨论后,项目经理编写软件功能规范 开发人员编写一个模块,从数据库中填充模板语句。他执行单元测试以检查是否涵盖了大多数情况(典型客户、当月无数据等) 另一个开发人员创建了一个随机数生成器模块。他在上面执行单元测试 积分器获取这两个模块,对它们进行编译并执行集成测试,以确保它们能够很好地协同工作 最后,为了提供测试版供BigBank试用,测试团队执行功能测试,以验证软件是否符合功能规范。单元测试: 测试可能的最小代码单元,通常是一个函数或方法。通过使用mock等,这在理想情况下应该非常快,并且不会以任何方式影响硬盘或网络 功能测试: 测试一组协同工作的功能/方法。理想情况下,这也不应该进入磁盘或网络,但通常会 集成测试: 在真实世界中运行的测试,访问真实(尽管是测试)数据库,写入磁盘等。您正在测试您的程序是否与其他服务正常工作,是否与它们正确“集成”。您通常会有一个单独的程序(例如Selenium)来执行测试,就像真正的用户一样 此外: 白盒测试: 了解程序内部工作原理的测试。单元测试和功能测试通常是白盒测试。例如,调用函数保存一个值,然后检查数据库中的值是否正确 黑盒测试: 不了解内部结构并将程序/函数/方法视为“黑箱”的测试。例如,调用一个函数来保存一个值,然后调用另一个(公共)函数来获取该值。术语“功能测试”通常用于测试整个系统,例如从浏览器端到数据库层的web应用程序。虽然我自己也对滥用这个术语感到内疚,但我相信术语“系统测试”或“端到端测试”更能描述它 “功能测试”的另一个含义可以是“测试功能”,这通常也适用于单元或集成测试。但是有些测试不是功能测试。几乎所有与非功能性需求相关的内容都属于这一类,比如负载测试或分析
我认为最初的区别可能是“功能系统测试”和“非功能系统测试”,现在是“功能测试”通常用于区分端到端测试和测试子系统/单元。功能测试现在通常被称为端到端测试或系统测试(如果您查看V模型)
单元测试显然是测试可能的最小代码单元,而集成测试是检查您的单元是否与系统的其他部分集成良好。测试目标的功能测试应关注可直接追溯到功能规范或业务规则的任何测试需求。这些测试的目标是验证正确的数据接受、处理和检索。它测试产品的功能和操作行为,以确保它们符合其规格,并包含忽略系统或组件的内部机制,只关注响应选定输入和执行条件生成的输出的测试。这种类型的测试基于典型的黑盒技术,即通过UI(用户界面)与应用程序交互并分析输出(结果)来验证应用程序(及其内部流程)
来源:首先,我们应该了解软件的“功能”是什么 功能可被视为软件拟执行的任务/活动 所以,测试软件的每一个功能被称为功能测试 在单元测试中,您将隔离代码并测试其中的每个单元 将程序中的方法/函数视为一个单元,在这个单元中,您将传递一些参数,并期望代码给出所需的输出,对这些代码单元的测试称为单元测试 收藏