网易首页 > 网易号 > 正文 申请入驻

你知道什么是Bug吗?Bug是如何产生的?

0
分享至

经常在网上看到XX又出bug之类的新闻,甚至有时候听到做程序员的朋友在吐槽bug。

那么,bug到底是什么?又如何会产生?

本文将分为三个方面回答这个问题。

一、什么是BUG?

二、Bug是如何出现的

三、用具体的例子概述一下bug

PS:这里是知科技,每日都会分享实用知识!一秒【关注】我吧!
【软件/网站/数码推荐】+【数码评测】+【实用科技知识】,每日不停更新!

什么是Bug?
  1. 产品说明书中规定要做的事情,而软件没有实现。
  2. 产品说明书中规定不要做的事情,而软件却实现了。
  3. 产品说明书中没有提到过的事情,而软件却实现了。
  4. 产品说明书中没有提到但是必须要做的事情,软件却没有实现。
  5. 软件很难理解,很难使用,速度超慢,测试人员站在最终用户的角度看到的问题是平常的但不是正确的。
  • 注:产品说明书中没有提到但是必须要做的事情,软件却没有实现。软件实现了产品的功能,但是没有考虑软件在弱网络、低电量的情况下也能正常使用,而做出来的产品在弱网络或低电量的情况下报错,那么这也是一个bug。

简单来说:Bug就是程序设计之外的错误。

也可以这么理解:你这个程序设计得很好,把所有可能性都想了一遍,没有问题。

结果真正运行的时候有了自己没有想到的问题,且这种错误并不是必然出现的,甚至大部分时候是不会出现,程序可以正常运行,但是偶尔会出错。但是恰恰是这种偶尔出现的错误却很严重,甚至可以成为被他人利用的漏洞。

例如,你设计一个出勤软件,你计算一天的工作时间,这是下班时间减去上班时间。

但在设计时总有一些情况是你没有考虑到的。

例如你考虑,把没有按时上班的人当做缺勤处理。

但有些人临时请假,出现了两次上班,两次下班,你还是按照下班-上班 那就有问题。

还有一些人去上班,但到了第二天早上才下班。根据你的规定,这是缺勤。这就是一个bug。

最终的结果是,有些人统计的上班时间少了,有人被记为缺勤了。

另外,按照上班时间晚于规定时间者视为迟到,早于下班时间者视为提前下班。

那如果有人调休呢?

今天上上半天,过几天上下半天。实际上是一天,但是计算出来都是两天迟到或者早走。

当你在设计一个程序的时候,你认为可能发生的事情和实际发生的事情是不一样的。大多数时间,人们都在上下班路上,所以你的程序对大多数人来说是好的,但对那些在半夜下班的人来说就成了问题。这是一个意想不到的错误。

这就是程序设计之外的错误,这就是bug。

Bug是如何出现的

做一个程序主要分为三步:

  1. 与产品经理讨论确定功能(确定可以实施的设计图纸)
  2. 抽象出每个单独的组件(确定施工方案)
  3. 实现并结合相关构件完成施工(材料开始施工)

第一步:与产品经理讨论确定功能(主要为沟通方面的内容)

但沟通本身是一个代价高昂的过程,尤其是在责任明确的组织中。产品经理说了很多,而当实际去做的时候,你将不可避免地要翻阅需求原型、需求文档等等来重新理解它。这是一个非常危险的时刻。

比如像下面这个的答案是什么?

答案是17?

不对。

我猜你可能没注意到这些地方。

为了让你有深刻的印象,这个举例可能比较刻意和夸张一些,但是我想在你的身边,由于没注意到或者理解有误的现象肯定很常见。

沟通是相互的,这锅只让程序员背的话的确太委屈了点。

第二步:抽象出每个单独的组件(主要是个人抽象能力的体现)

但什么是抽象?抽象是“透过现象看本质”的能力,这种能力理论上可以无限增长。你拥有的信息越多,它就变得越强大,无限地接近100%,但永远不会真正100%,因为没有人知道100%是什么。

所以,当你没有那么多的信息时,抽象是不是不合理?不合理会导致什么?它不会直接困扰你,但会更容易困扰你。但是人不需要经历这样的成长过程吗?

可以说,掌握一种能力的背后是踩在无数的bug上。要么你在来这个组织之前就踩到了它,要么你在这个组织里踩到了它。结果,前者的工资也比后者高。

因此,如果你过于苛求而没有漏洞,你就是在扼杀每个人的成长机会,透支未来的可能性。人们变得非常保守,害怕尝试新事物。

但由于外部环境的不断变化,新事物总是需要被动接受(技术更新越来越快,趋势不可逆转)。然而,接受新事物的能力是无法锻炼的。在这种情况下,接触新事物的时候会有更多的问题(债务总是要偿还的)。

第三步:实现并结合相关构件完成施工(这就是实际的coding过程,而coding是一个主观的,完全由人主观掌控的事情。)

毕竟人不是机器,不犯错是不可能的,就像之前写文章时的错别字一样。

您可能会说,好吧,但有测试人员啊,测试的工作难道不是通过逆向思考来纠正程序员吗?

是的,但是引入测试只是降低了错误率,只是将不存在bug的可能性提高了小数位数

想要找到所有的问题是不现实的。至少在目前的情况下是这样的。为什么?因为代码的本质是逻辑的组合。

例如,如果一个完整的业务流程有10个链接,每个链接有3种可能性,那么系统的复杂性是多少?3 ^ 10 = 59049个分支(理论可能性的数量),100%覆盖这些场景的成本几乎是不可接受的。

然而,我们在实际系统中遇到的个别场景甚至更复杂。

事实上,每个操作系统都有漏洞,包括我们每天使用的一些最流行的系统(玩游戏的小伙伴们肯定熟悉“卡bug”这个词)。只是这些bug有没有被执行到,有没有被发现,被多少人发现而已。

用具体的例子概述一下bug

领导:修个房子。

程序员:好的,马上开始打地基!

领导:你看那隔壁那木房子就没有打地基,不要在小事上浪费时间,一个月水平面上面什么都看不到,你kpi不要了?

这是敏捷开发。

一层房子修好。

领导:我觉得两层楼的视野好,再加一层。

程序员:可是我们没有地基,重新打地基要时间……

领导:你一楼都修好了,照着再修个一模一样二楼很难?还要很多时间?

这是高速版本的迭代。

二楼修好。

领导:天天走路累死了,你再修个电梯。

程序员:可是……

领导:没什么可是的,地基不稳?就在房子边上搭个电梯就行了嘛,不稳拿根木棍撑一下,这都不懂?

这是版本优化。

电梯修好。

领导:我觉得顶楼再加个游泳池就好了。

程序员:这个结构行业翘楚的房子也不支持呀!

领导:那不正显得我们牛逼么?修快点,夏天要来了。

这是快速功能追加。

游泳池修好,看着摇摇欲坠的房子,程序员跑路了,领导找来新人继续。

领导:我觉得游泳池水不够满,你加点的,一楼光线不好你在墙上打个窗户。

新人:好的,没问题领导,马上加一桶水,马上砸墙

这是打补丁。

房子塌了,电梯倒了,游泳池垮了……

领导:真是个废物,就让他加桶水,居然能把房子弄倒了,你说这是多没用?

新人:我真的就加了桶水,我怎么知道为什么。

这是软件莫名崩溃。

看完这个例子,你应该能知道bug怎么产生了吧?

希望大家好好善待身边的程序员朋友,他们面对bug真的很脆弱!

这里是@知科技APP,一个只写实用知识的作者。
如果能帮到你,老铁们点击【关注】我一下呗!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
接近 3nm 顶尖工艺!韬定律落地麒麟 9050!华为 Mate90 系列定档 9 月发布!

接近 3nm 顶尖工艺!韬定律落地麒麟 9050!华为 Mate90 系列定档 9 月发布!

科技富能量官方
2026-05-28 19:06:31
“女人两个坎,熬过就高寿”“两坎”是指哪两年?男女都要多关注

“女人两个坎,熬过就高寿”“两坎”是指哪两年?男女都要多关注

芹姐说生活
2026-05-29 20:58:00
男子糖化从8.7降到5.2!医生点赞:坚持5个好习惯,胰岛慢慢修复

男子糖化从8.7降到5.2!医生点赞:坚持5个好习惯,胰岛慢慢修复

坠入二次元的海洋
2026-05-30 00:00:34
紧急!俄副总理当面念错普京名字,替身阴谋爆发,答案出乎意料

紧急!俄副总理当面念错普京名字,替身阴谋爆发,答案出乎意料

斜烟风起雨未
2026-05-29 20:25:42
游客称在四川九寨沟景区照镜子时被店家索要2元“照镜费”;景区回应:已对居民批评教育,对游客表示歉意

游客称在四川九寨沟景区照镜子时被店家索要2元“照镜费”;景区回应:已对居民批评教育,对游客表示歉意

极目新闻
2026-05-28 19:43:29
王曦雨:我都不知道自己进前一百了,多打一轮算一轮

王曦雨:我都不知道自己进前一百了,多打一轮算一轮

懂球帝
2026-05-30 00:48:20
台儿庄战役伤亡争议八十年,日方档案还原真实战况

台儿庄战役伤亡争议八十年,日方档案还原真实战况

磊子讲史
2026-05-26 14:22:17
CCTV5直播!上海VS广厦G3重兵压境,古德温挑大梁,卢伟要夺赛点

CCTV5直播!上海VS广厦G3重兵压境,古德温挑大梁,卢伟要夺赛点

老叶评球
2026-05-29 20:53:57
撕下伪面具!萨德尔主动缴械,戳破伊朗系民兵祸乱伊拉克的真相

撕下伪面具!萨德尔主动缴械,戳破伊朗系民兵祸乱伊拉克的真相

老马拉车莫少装
2026-05-27 21:25:45
笑死了!孙杨送张豆豆的三句话上热搜,没想到评论区句句都是梗

笑死了!孙杨送张豆豆的三句话上热搜,没想到评论区句句都是梗

娱乐圈笔娱君
2026-05-29 14:16:50
世界上最流行的软件,快被AI冲垮了!

世界上最流行的软件,快被AI冲垮了!

码农翻身
2026-05-29 08:59:05
赚中国钱跪洋婆家?苏芒代言遭全民抵制,广汽撤下广告紧急止损

赚中国钱跪洋婆家?苏芒代言遭全民抵制,广汽撤下广告紧急止损

翰飞观事
2026-05-27 19:28:11
冲动是一种愚蠢行为!

冲动是一种愚蠢行为!

辛东方
2026-05-11 07:25:03
谭松韵被曝离婚了!本人回应:的确是结了,但现在又离了,后来和好了

谭松韵被曝离婚了!本人回应:的确是结了,但现在又离了,后来和好了

八卦王者
2026-05-29 11:25:44
这种黄底印花裙的打扮,确实足够吸引眼球

这种黄底印花裙的打扮,确实足够吸引眼球

美女穿搭分享
2026-05-29 11:20:41
中国金花历史第5人!王曦雨排名超越袁悦郑钦文,王欣瑜双线出局

中国金花历史第5人!王曦雨排名超越袁悦郑钦文,王欣瑜双线出局

侃球熊弟
2026-05-29 20:12:24
7年败光2个亿,邹市明冉莹颖共同发文,终究还是踏出了这一步

7年败光2个亿,邹市明冉莹颖共同发文,终究还是踏出了这一步

林轻吟
2026-02-11 11:29:40
台风“蔷薇”逐渐增强!三预警齐发,多地大暴雨

台风“蔷薇”逐渐增强!三预警齐发,多地大暴雨

大象新闻
2026-05-29 11:31:07
SGA在场-28最差遭美媒炮轰:没哨就不懂打球 滑稽倒地毁掉联盟

SGA在场-28最差遭美媒炮轰:没哨就不懂打球 滑稽倒地毁掉联盟

颜小白的篮球梦
2026-05-29 11:19:10
国防部摊牌了!这口憋了整整 55 年的气,今天终于不忍要算总账了

国防部摊牌了!这口憋了整整 55 年的气,今天终于不忍要算总账了

无悔的灿烂人生
2026-05-28 10:19:55
2026-05-30 07:04:49
知科技APP
知科技APP
数码好物推荐+玩机技巧科普
409文章数 795关注度
往期回顾 全部

科技要闻

Claude Opus 4.8凌晨突发上线

头条要闻

释永信被判24年 中国佛教协会:完全是咎由自取

头条要闻

释永信被判24年 中国佛教协会:完全是咎由自取

体育要闻

即使是文班亚马,也做不到这件事

娱乐要闻

奚梦瑶何猷君将于6月在法国举行婚礼

财经要闻

近3个月跌超20% 黄金"猴市"下的众生相

汽车要闻

900V+3.2秒破百 领克10+&领克10上市16.99万元起

态度原创

手机
艺术
家居
本地
公开课

手机要闻

连续7个季度超越iOS!鸿蒙份额飙升,安卓却全球失守了!

艺术要闻

粉墙黛瓦别样美

家居要闻

云栖 舒展如流云

本地新闻

用剪纸的方式,打开江苏扬州

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版