单元测试和功能测试之间的区别是什么?单元测试也可以测试函数吗?
当前回答
测试类型
Unit testing - In Procedural programming unit is a procedure, in Object oriented programming unit is a class. Unit is isolated and reflects a developer perspective Functional testing - more than Unit. User perspective, which describes a feature, use case, story... Integration testing - check if all separately developed components work together. It can be other application, service, library, database, network etc. Narrow integration test - double[About] is used. The main purpose is to check if component is configured in a right way Broad integration test (End to End test, System test) - live version. The main purpose is to check if all components are configured in a right way UI testing - checks if user input triggers a correct action and the UI is changed when some actions are happened ... Non functional testing - other cases Performance testing - calculate a speed and other metrics Usability testing - UX ...
(iOS测试) (安卓系统测试)
其他回答
我认为它是这样的:单元测试确定代码执行了您希望代码执行的操作(例如,您想要添加参数A和b,实际上是将它们相加,而不是减去它们),功能测试测试所有代码一起工作以获得正确的结果,因此您希望代码执行的操作实际上在系统中获得了正确的结果。
在Rails中,单元文件夹用于保存模型的测试,功能文件夹用于保存控制器的测试,集成文件夹用于保存涉及任意数量的控制器交互的测试。fixture是一种组织测试数据的方法;它们驻留在fixture文件夹中。test_helper。Rb文件保存测试的默认配置。 你可以参观一下。
TLDR:
回答这个问题:单元测试是功能测试的一个子类型。
有两大类:功能测试和非功能测试。我发现的最好的(非详尽的)例子是这个(来源:www.inflectra.com):
(1)单元测试:测试小段代码(函数/方法)。它可以被认为是(白盒)功能测试。
当功能放在一起时,你创建了一个模块=一个独立的部分,可能有一个可以测试的用户界面(模块测试)。一旦你有了至少两个独立的模块,然后你把它们粘在一起,然后就来了:
(2)集成测试:当你把两个或多个(子)模块或(子)系统放在一起,看看它们是否能很好地发挥作用。
然后你整合了第3个模块,然后是第4和第5个模块,按照你或你的团队认为合适的顺序,一旦所有的拼图碎片放在一起,就完成了
(3)系统测试:对软件进行整体测试。这差不多就是“所有部件的集成测试”。
如果没问题,那就来吧
(4)验收测试:我们实际构建了客户要求的东西吗?当然,验收测试应该在整个生命周期中进行,而不仅仅是在最后一个阶段,在这个阶段,你意识到客户想要一辆跑车,而你建造了一辆货车。
单元测试——测试单个单元,例如类中的方法(函数),模拟所有依赖项。
功能测试——又名集成测试,测试系统中的一部分功能。这将测试许多方法,并可能与数据库或Web服务等依赖项交互。
单元测试通常由开发人员完成。这样做的目的是确保他们的代码正常工作。一般的经验法则是使用单元测试覆盖代码中的所有路径。
功能测试:这是一个很好的参考。功能测试说明
推荐文章
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 单元测试反模式目录
- ReferenceError: description没有定义NodeJs
- 类未找到:IntelliJ中的空测试套件
- Mockito的argumentCaptor的例子
- 单元测试:日期时间。现在
- 为什么单元测试中的代码不能找到包资源?
- 从导入的模块中模拟函数
- 在单元测试中设置HttpContext.Current.Session
- 何时使用Mockito.verify()?
- 在PHP单元测试执行期间,如何在CLI中输出?
- 单元测试的一些常用命名约定是什么?
- 如何检查动态附加的事件监听器是否存在?
- 强制重新测试或禁用测试缓存
- 如何直接从测试驱动程序调用自定义的Django manage.py命令?