单元测试和功能测试之间的区别是什么?单元测试也可以测试函数吗?
当前回答
单元测试
单元测试包括测试最小的代码单元,通常是函数或方法。单元测试主要由单元/方法/函数的开发人员完成,因为他们了解函数的核心。开发人员的主要目标是通过单元测试来覆盖代码。
它有一个限制,即某些函数不能通过单元测试进行测试。即使在成功完成所有单元测试之后;它不保证产品的正确操作。相同的函数可以在系统的少数部分中使用,而单元测试仅为一种用途而编写。
功能测试
It is a type of Black Box testing where testing will be done on the functional aspects of a product without looking into the code. Functional testing is mostly done by a dedicated Software tester. It will include positive, negative and BVA techniques using un standardized data for testing the specified functionality of product. Test coverage is conducted in an improved manner by functional tests than by unit tests. It uses application GUI for testing, so it’s easier to determine what exactly a specific part of the interface is responsible for rather to determine what a code is function responsible for.
其他回答
TLDR:
回答这个问题:单元测试是功能测试的一个子类型。
有两大类:功能测试和非功能测试。我发现的最好的(非详尽的)例子是这个(来源:www.inflectra.com):
(1)单元测试:测试小段代码(函数/方法)。它可以被认为是(白盒)功能测试。
当功能放在一起时,你创建了一个模块=一个独立的部分,可能有一个可以测试的用户界面(模块测试)。一旦你有了至少两个独立的模块,然后你把它们粘在一起,然后就来了:
(2)集成测试:当你把两个或多个(子)模块或(子)系统放在一起,看看它们是否能很好地发挥作用。
然后你整合了第3个模块,然后是第4和第5个模块,按照你或你的团队认为合适的顺序,一旦所有的拼图碎片放在一起,就完成了
(3)系统测试:对软件进行整体测试。这差不多就是“所有部件的集成测试”。
如果没问题,那就来吧
(4)验收测试:我们实际构建了客户要求的东西吗?当然,验收测试应该在整个生命周期中进行,而不仅仅是在最后一个阶段,在这个阶段,你意识到客户想要一辆跑车,而你建造了一辆货车。
单元测试通常由开发人员完成。这样做的目的是确保他们的代码正常工作。一般的经验法则是使用单元测试覆盖代码中的所有路径。
功能测试:这是一个很好的参考。功能测试说明
单元测试——测试单个单元,例如类中的方法(函数),模拟所有依赖项。
功能测试——又名集成测试,测试系统中的一部分功能。这将测试许多方法,并可能与数据库或Web服务等依赖项交互。
测试类型
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测试) (安卓系统测试)
根据ISTQB的说法,这两者没有可比性。功能测试不是集成测试。
单元测试是测试级别的一种,功能测试是测试的一种。
基本上:
一个系统(或组件)的功能是“它做什么”。这是 通常在需求规范中描述的是功能性的 规范,或者用例。
而
组件测试,也称为单元、模块和程序测试, 查找软件的缺陷,并验证软件的功能 (例如模块、程序、对象、类等),它们是分开的 可测试的。
根据ISTQB,组件/单元测试可以是功能性或非功能性:
组件测试可能包括功能测试和特定的非功能特征,如资源行为(例如内存泄漏)、性能或健壮性测试,以及结构测试(例如决策覆盖率)。
引用自软件测试基础- ISTQB认证
推荐文章
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 单元测试反模式目录
- ReferenceError: description没有定义NodeJs
- 类未找到:IntelliJ中的空测试套件
- Mockito的argumentCaptor的例子
- 单元测试:日期时间。现在
- 为什么单元测试中的代码不能找到包资源?
- 从导入的模块中模拟函数
- 在单元测试中设置HttpContext.Current.Session
- 何时使用Mockito.verify()?
- 在PHP单元测试执行期间,如何在CLI中输出?
- 单元测试的一些常用命名约定是什么?
- 如何检查动态附加的事件监听器是否存在?
- 强制重新测试或禁用测试缓存
- 如何直接从测试驱动程序调用自定义的Django manage.py命令?