Ant*_*ney 493
单元测试告诉开发人员代码正在做正确的事情; 功能测试告诉开发人员代码正在做正确的事情.
您可以在单元测试与功能测试中阅读更多内容
一个很好解释的单元测试和功能测试的现实类比可以描述如下,
很多时候,系统的开发被比作建造房屋.虽然这个类比不太正确,但我们可以扩展它以便理解单元测试和功能测试之间的区别.
单元测试类似于访问房屋建筑工地的建筑检查员.他专注于房屋的各种内部系统,基础,框架,电气,管道等.他确保(测试)房屋的各个部分能正常安全地工作,即符合建筑规范.
这种情况下的功能测试类似于访问同一建筑工地的房主.他假设内部系统的行为恰当,建筑检查员正在执行他的任务.房主专注于住在这所房子里的感觉.他关注的是房子的外观,各个房间的大小是否舒适,房子是否符合家庭的需要,窗户是否能够吸引早晨的阳光.
房主正在对房子进行功能测试.他有用户的观点.
建筑检查员正在对房屋进行单元测试.他有建筑师的观点.
作为总结,
单元测试是从程序员的角度编写的.它们用于确保类的特定方法(或单元)执行一组特定任务.
功能测试是从用户的角度编写的.他们确保系统的正常工作,因为用户是它期待.
bpa*_*apa 242
单元测试 - 测试单个单元,例如类中的方法(函数),并模拟所有依赖项.
功能测试 - AKA集成测试,测试系统中的一部分功能.这将测试许多方法,并可能与数据库或Web服务等依赖项进行交互.
Jör*_*tag 139
单元测试测试独立的行为单元.什么是行为单位?它是系统中可以独立进行单元测试的最小部分.(这个定义实际上是圆形的,督察它真的不是一个定义在所有的,但它似乎在实践中工作得非常好,因为你可以排序的理解直观.)
功能测试测试独立的功能.
一个行为单位非常小:虽然我绝对不喜欢这个愚蠢的"每个单位测试方法"的口头禅,从大小的角度看它是正确的.行为单位是方法的一部分和可能的几种方法之间的东西.最多是一个对象,但不超过一个.
一个功能通常包括许多方法,并且通常通过多个架构层来切割多个对象.
单元测试类似于:当我调用validate_country_code()函数并将函数传递给它时,'ZZ'它应该返回false.
功能测试将是:当我填写国家代码为的运输表格时ZZ,我应该被重定向到帮助页面,这允许我从菜单中选择我的国家代码.
开发人员从开发人员的角度为开发人员编写单元测试.
功能测试可能是面向用户的,在这种情况下,从用户的角度来看,它们是由开发人员与用户(或者可能使用合适的工具和正确的用户,甚至是用户自己)编写的.或者他们可能面向开发人员(例如,当他们描述用户不关心的一些内部功能时),在这种情况下,它们是由开发人员为开发人员编写的,但仍然是从用户的角度出发.
在前一种情况下,功能测试也可以用作验收测试以及功能需求或功能规范的可执行编码,在后一种情况下,它们也可以用作集成测试.
单元测试频繁更改,功能测试不应在主要版本中更改.
And*_*ejs 91
TLDR:
回答这个问题:单元测试是功能测试的子类型.
有两大类:功能性和非功能性测试.我找到的最好的(非详尽的)插图就是这个(来源:www.inflectra.com):
(1)单元测试:测试代码的小片段(函数/方法).它可以被认为是(白盒)功能测试.
将函数放在一起时,您可以创建一个模块=一个独立的部分,可能还有一个可以测试的用户界面(模块测试).一旦你有至少两个单独的模块,然后你将它们粘在一起然后来:
(2)集成测试:当您将两个或多个(子)模块或(子)系统放在一起时,看它们是否可以很好地协同工作.
然后你按照你或你的团队认为合适的顺序整合第3个模块,然后是第4个和第5个模块,并且一旦所有的拼图碎片放在一起,就会来
(3)系统测试:测试SW整体.这几乎是" 所有部分的集成测试".
如果那没关系,那么就来了
(4)验收测试:我们是否构建了客户实际要求的内容?当然,验收测试应该在整个生命周期中进行,而不仅仅是在最后阶段,在那里你意识到客户想要一辆跑车并且你建造了一辆面包车.
Mar*_*off 12
"功能测试"并不意味着您正在测试代码中的函数(方法).通常,这意味着您正在测试系统功能 - 当我foo file.txt在命令行运行时,线路file.txt可能会反转.相比之下,单个单元测试通常涵盖单个方法的单个案例 - length("hello")应返回5,并length("hi")应返回2.
另请参阅IBM在单元测试和功能测试之间的界限.
小智 8
据ISTQB称,这两者无法比较.功能测试不是集成测试.
单元测试是测试级别之一,功能测试是测试类型.
基本上:
系统(或组件)的功能是"它做什么".这通常在需求规范,功能规范或用例中描述.
而
组件测试,也称为单元,模块和程序测试,搜索缺陷,并验证可单独测试的软件(例如模块,程序,对象,类等)的功能.
根据ISTQB组件/单元测试可以是功能的还是不起作用的:
组件测试可以包括功能测试和特定的非功能特性,例如资源行为(例如,内存泄漏),性能或稳健性测试,以及结构测试(例如决策覆盖).
来自软件测试基础的报价- ISTQB认证
但是,基本的区别在于,从用户的角度来看,功能测试从外部测试应用程序.从程序员的角度来看,单元测试从内部测试应用程序.功能测试应该可以帮助您构建具有正确功能的应用程序,并保证您不会意外地破坏它.单元测试应该可以帮助您编写干净且无错误的代码.
取自Harry Percival的"Python TDD"一书
| 归档时间: |
|
| 查看次数: |
180773 次 |
| 最近记录: |