首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >功能测试能否取代小型项目中的单元测试?

功能测试能否取代小型项目中的单元测试?
EN

Stack Overflow用户
提问于 2013-09-11 07:41:20
回答 2查看 515关注 0票数 4

我正在开发一个新的小项目。我理解实现自动化测试以提高质量和可维护性的重要性。但是,如果在小应用程序中,功能测试就足够了。是否真的需要为我的所有功能实现单元测试?功能测试不能保证小型应用程序的质量吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-11 15:49:46

这确实取决于项目的规模和所涉及的“活动部件”的数量;但总的来说,我要说,单元测试至少与功能测试一样重要,甚至更重要。

我本来想给一个简单的软件系统打个比方,但是我会告诉你一个故事,这个故事可能发生在我身上,也可能不会发生在我身上。毫无疑问,我会因此而被否决,我能说什么呢?尤洛。

总之,我在度假,在酒店,我想要修剪我的豪华和完全非讽刺胡须使用我带来了一个非常好的胡子修剪。除了设计浴室的木偶把唯一的插座放在房间的另一边对着镜子!更糟糕的是,插座形状不对,因为我在一个奇怪的外国,他们开错了路.

别担心。我有一个旅行电源插座适配器。除了裁剪器上的绳子只有3英尺长,而且不会延伸到房间的另一端。但是等等!我有延长线耶!现在我可以像一个真正的男人一样在镜子前打扮自己。**

我把所有的东西都插进去,然后按下“打开”按钮。修剪者蜂拥而至,然后突然死去,留下我脸上一团乱七八糟的绒毛。

快:有什么问题吗?是:

  • 插座
  • 我的旅行适配器
  • 修整器插头上的保险丝
  • 延长线
  • 修整器
  • 威严的威严的/horrendousness我的胡子导致修剪器第一次接触死亡?

这个是只进行功能测试的问题。当然,通过乱七八糟的切换,我最终会发现修整器工作得很好,而延长线是问题所在,但如果我能够通过单元测试检查first中涉及到的所有位元和闪盘,那么即使在我试图打开修整器之前,我就知道电源线是不可靠的,这不是很好吗?

**这个故事完全不是真的,我用剃须刀修剪我的胡子。见鬼,是的。

票数 6
EN

Stack Overflow用户

发布于 2013-09-11 09:35:40

功能测试可能不够小/单元,无法在足够深的级别捕捉实现的细微差别。

虽然它们确实涵盖了足够多的领域,可以给您带来良好的自信感,但您可能仍然希望使用单元测试来跟踪bugprevent 和处理(有问题的/罕见的) edge cases

此外,我不认为有必要引入这样的区别-功能与单元与集成与什么-而不是-其他。你想要自动测试,仅此而已。您仍然需要实现它们,很可能对每种测试类型都使用相同的工具/框架。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18745620

复制
相关文章
SSM项目中单元测试的配置
我们为了方便,写一个测试的父类,让其他测试类继承这个父类就行,不用每次都加配置了。
别团等shy哥发育
2023/02/25
8540
SSM项目中单元测试的配置
WASM能否取代Docker?
云计算、微服务计算、无服务器计算、可扩展计算、可负担计算等等,这一切主要靠一项杰出的技术——Linux容器(LXC)来实现。
溪歪歪
2020/11/24
2K0
WASM能否取代Docker?
如何在没有SpringBootApplication的项目中启动SpringBootTest单元测试
解决方法倒是很简单,既然是缺少SpringBootApplication,那么就在单元测试代码中,增加一个有SpringBootApplication的启动类就可以了。这样既不影响子项目的定位(不独立启动),又可以完成单元测试
十毛
2021/06/09
4.5K1
SpringBoot对单元测试支持、常用单元测试功能使用实例
Spring Boot 提供了许多注解和工具帮助开发人员测试应用,在其官方文档中也用了大量篇幅介绍单元测试的使用。在谷歌每周的 TGIF (ThanksGod, it's Friday)员工大会中有一项就是 宣布-周单元测试竞赛获胜的工程师。谷歌之所以这么重视单元测试,就是为了保证程序质量,鼓励大家多写测试代码。国内大多数开发人员对单元测试有所忽视,这也是我写本章内容的原因所在。
愿天堂没有BUG
2022/10/28
1.8K0
SpringBoot对单元测试支持、常用单元测试功能使用实例
【单元测试】--编写单元测试
这是一个简单的NUnit单元测试的示例,展示了如何创建测试项目,编写测试用例,运行测试以及查看测试结果。随着你的项目复杂性的增加,你可以编写更多的测试用例来确保你的代码按预期工作。
喵叔
2023/10/22
4440
kotlin能否取代java(kotlin的历史以及现状)
Kotlin是由JetBrains团队于2011年开发的编程语言,其命名源于圣彼得堡附近的一个岛屿科特林岛,创立之初受到当时主流的各种语言的影响,与Java同样能为JVM所解释,这就意味着Kotlin可以直接使用Java开发的各种库以及框架,由于吸收了众多语言的优秀特性,于2017年被谷歌确定为Android开发的官方语言,同样也受到Spring,SpringBoot等服务端的开发的支持,使得Kotlin可以完整的开发出一款软件。
wresource
2023/01/31
1.1K0
腾讯的Tendis这么牛皮,能否取代Redis的地位?
Redis 作为高性能缓存被广泛应用到各个业务, 比如游戏的排行榜, 分布式锁等场景。经过在 IEG 的长期运营, 我们也遇到 Redis 一些痛点问题, 比如内存占用高, 数据可靠性差, 业务维护缓存和存储的一致性繁琐。由 腾讯互娱 CROS DBA 团队 & 腾讯云数据库团队联合研发的 Tendis 推出了: 缓存版 、 混合存储版 和 存储版 三种不同产品形态, 针对不同的业务需求, 本文主要介绍 混合存储版 的整体架构, 并且详细揭秘内部的原理。
Java程序猿
2021/06/02
2.3K0
Groovy单元测试框架spock基础功能Demo
最近在做单元测试框架的调研和尝试,目前确定的方案框架包括是:spock,Junit,Mockito以及powermock。由于本身使用Groovy的原因,比较钟情于spock框架,但是奈何兼容性比较差,特别是跟Mockito等框架的高级语法的兼容。不过这不妨碍spock是一个非常优秀的单元测试框架,特别体现在用例的形式和测试报告的展示方式以及报错信息的展示(这个我最中意)。
FunTester
2019/11/14
8840
idea单元测试(导入Junit4的Java包到项目中)
小尘要自信
2023/10/10
1.2K0
idea单元测试(导入Junit4的Java包到项目中)
【单元测试】--单元测试最佳实践
编写单元测试代码时,遵循一致的风格和最佳实践是非常重要的,因为它有助于提高代码的可读性、可维护性和可靠性。以下是一些常见的单元测试代码风格和最佳实践:
喵叔
2023/10/22
6600
前端单元测试总结_javascript单元测试
目前,前端的测试框架很多,像QUnit、jasmine、mocha、jest、intern等框架,这些框架各有特点,简单描述下,感兴趣的可以具体研究:
全栈程序员站长
2022/09/20
1.5K0
什么是单元测试,集成测试,系统测试_软件测试中的单元测试
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net
全栈程序员站长
2022/11/04
8690
Go语言技巧 - 17.【Go工程化测试】业务项目中的Go单元测试心得
在网上搜索 Go单元测试,我们能找到各种开源工具和方法技巧,也可以照葫芦画瓢、快速地写出示例test case。但回到具体的工程项目里,当我们面对代码里的各种CRUD、接口与实现、内外部依赖时,往往发现很难写出有效的单元测试,空有一身技巧却无从下手。
junedayday
2023/02/18
1.1K0
Go语言技巧 - 17.【Go工程化测试】业务项目中的Go单元测试心得
单元测试
在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块的最小单位来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 – 维基百科
用户2491699
2018/08/02
1.6K0
单元测试
单元测试工具类_单元测试常用的方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/15
7820
【单元测试】--维护和改进单元测试
持续维护单元测试是确保它们继续有效的关键。以下是一些方法来保持单元测试的可维护性:
喵叔
2023/10/23
3420
go的单元测试
package mytest import ( "fmt" "testing" ) //go本身提供一套轻量级的测试框架,符合规则的测试代码会在测试的时候被自动识别并且执行。 //单元测试源文件的命名规则是在需要测试的包下面创建以"_test"结尾的go文件,形式如[^.]*_test.go //单元测试函数分两类:功能测试函数和性能测试函数,分表以Test和Benchmark为函数名前缀并以*testing.T为单一参数的函数。下面是例子 //这里的测试文件最好单独放到一个文件夹下面,不放到一个文件夹下面。可能会执行其他测试文件 //要执行功能测试 执行:go test mytest.go这样就行 //执行性能测试,执行:go test -bench 6_test.go func testAdd(t *testing.T) { r := 3 if r != 2 { fmt.Print("add err") } } func BenchmarkAdd2(b *testing.B) { for i := 0; i < 5; i++ { fmt.Println(i) } }
公众号-利志分享
2022/04/25
3950
单元测试
.markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.5;margin-top:35px;margin-bottom:10px;padding-bottom:5px}.markdown-body h1{font-size:30px;margin-bottom:5px}.markdown-body h2{padding-bottom:12px;font-size:24px;border-bottom:1px solid #ececec}.markdown-body h3{font-size:18px;padding-bottom:0}.markdown-body h4{font-size:16px}.markdown-body h5{font-size:15px}.markdown-body h6{margin-top:5px}.markdown-body p{line-height:inherit;margin-top:22px;margin-bottom:22px}.markdown-body img{max-width:100%}.markdown-body hr{border:none;border-top:1px solid #ddd;margin-top:32px;margin-bottom:32px}.markdown-body code{word-break:break-word;border-radius:2px;overflow-x:auto;background-color:#fff5f5;color:#ff502c;font-size:.87em;padding:.065em .4em}.markdown-body code,.markdown-body pre{font-family:Menlo,Monaco,Consolas,Courier New,monospace}.markdown-body pre{overflow:auto;position:relative;line-height:1.75}.markdown-body pre>code{font-size:12px;padding:15px 12px;margin:0;word-break:normal;display:block;overflow-x:auto;color:#333;background:#f8f8f8}.markdown-body a{text-decoration:none;color:#0269c8;border-bottom:1px solid #d1e9ff}.markdown-body a:active,.markdown-body a:hover{color:#275b8c}.markdown-body table{display:inline-block!important;font-size:12px;width:auto;max-width:100%;overflow:auto;border:1px solid #f6f6f6}.markdown-body thead{background:#f6f6f6;color:#000;text-align:left}.markdown-body tr:nth-child(2n){background-color:#fcfcfc}.markdown-body td,.markdown-body th{padding:12px 7px;line-height:24px}.markdown-body td{min-width:120px}.markdown-body blockquote{color:#666;padding:1px 23px;margin:22px 0;border-left:4px solid #cbcbcb;background-color:#f8f8f8}.markdown-body blockquote:after{display:block;content:""}.markdown-body blockquote>p{margin:10px 0}.markdown-body ol,.markdown-body ul{padding-left:28px}.markdown-body ol li,.markdown-body
Jimmy_is_jimmy
2020/11/19
5420
单元测试
指对软件中最小的可测试单元进行检查和验证,调用被测服务的类或方法,根据类或方法的参数,传入相应的数据,得到一个返回结果,最终断言返回的结果是否符合预期。如果相等,测试通过;如果不相等,测试失败。
MickyInvQ
2021/02/06
8260
单元测试
单元测试
  每个开发人员都写过很多代码、函数,但是你能保证你写的每个函数都能执行并且正常吗?   我们太多时间站在功能需求的角度来审视我们的代码,认为需求实现功能逻辑正常,我们就完成了自己的使命。功能逻辑固然重要这个也是我们的目标。但是仅此而已吗,首先作为开发人员要知道,代码的终极目标有两个:实现需求保证逻辑正常、保证代码质量和可维护性。测试人员只能帮助我们查漏需求是否完整实现,对于代码质量和可维护性是需开发自己保证的,所以单元测试必不可少。
OPice
2019/11/11
1.7K0

相似问题

小型单元测试

30

能否使用单元测试项目中的Visual数据库项目为功能测试设置空数据库?

20

不变测试能取代单元测试吗?

40

MongoDB ChangeStream功能能否取代发布/订阅技术

10

对于较小的设计,CRTP能否完全取代虚拟功能?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文