导航:首页 > 程序命令 > 程序员出bug去哪里找帮手

程序员出bug去哪里找帮手

发布时间:2022-12-06 10:47:36

Ⅰ 计算机找bug的人叫什么

Software Test Engineer

Ⅱ 互联网前辈总是说“bug是改不完的”,新入职的程序员该怎样应对bug

互联网前辈总是说“bug是改不完的”,新入职的程序员应对bug:

Ⅲ 程序员改bug有没有一个专门的网站来整理与回答这些bug的啊遇到bug经常折磨我好久,有没有地址

stackoverflow,这个网站有很多编程上的问题,基本上你碰到的在上面都能找到

Ⅳ 程序员遇到百度不出来的bug都是怎么解决的

笔者不同意下面网友的回答。程序员如果解决bug的水平停留在网络,那么本质上只是一个“面向搜索引擎的代码搬运工”,是不合格的程序员。

程序员对面bug,正确的“打开方式”是像福尔摩斯和柯南那样,寻找线索、运用逻辑推理来缩小问题可能的根因范围,最终精准定位。

常用的方法有:

1. 坏境上下文变换法

2. 工具调试法

3. 版本回溯对比法

4. 代码审计法

……

没有编程问题是stack overflow和Google解决不了的,假设你在编程中遇到了问题,你自己解决不了、你周围的的人都解决不了的时候,我觉得stack overflow、Google是你最好、也是最后的帮手。

作为一个程序员,我觉得Google、stack overflow是你必须要学会使用的两个工具,这两个工具本身并没有使用门槛,只不过因为一些众所周知的原因,很多人不能使用Google和stack overflow这两款工具。

Google主要还是方便,而且很多编程问题都需要用到英文搜索,当然现在网络在专业能力上也提升明显,不过跟Google也还是有比较大的差距,因此我还是强烈建议要学会使用Google,这会帮你在工作、学习上事半功倍。假设Google确实因为某些原因没办法很好的使用,我也建议你至少要会使用Bing搜索。

现在可以说stack overflow上没有你找不到的问题了,从IDE环境安装问题,到各类编程语言问题。算法问题,数据结构问题,调试,重构等等,几乎这里就没有你找不到的答案,可以说在stack overflow上你可以找到任何解决方案,并且上面的回答者基本上都是非常有经验,而且都是实际中遇到的问题分享出来的,这个工具一定要会使用。同理,除了stack overflow这个专业的垂直程序员问答社区,你也可以使用Quora这个综合问答社区,这上面也能找到很多问题的答案。

一些比较优秀的文本编辑器: Emacs/Vim,Visual Studio Code,Sublime Text,Atom,Ultraedit,Hbuilder等。

一些比较非常出色的IDE集成开发环境: visual studio,IntelliJ IDEA,PhpStorm,Haskell for Mac ,eclipse,WebStorm,GoLand,CLion,Android Studio,Xcode,QT等。

macOS平台比较好的第三方包管理工具: Fink,Macports,Homebrew等。

一些比较好的终端工具: Zoc7,iTerm2,Cmder,terminus,hyper等。

一些比较好的笔记软件、markdown工具、效率工具: Evernote,有道云笔记,为知笔记,Ulysses,MWeb,FileZilla,Snipaste,Kantu等。

虚拟机软件、容器软件: Parallels Desktop,VMWare Fusion,Virtual Box,Docker等。

我是个程序员,职务是linux底层驱动工程师。平时的主要工作是调试驱动,但产品遇到诸如死机、重启、不开机之类的问题时,也要参与查找原因。一部分问题,确实可以查看相关的log,然后网络这些log的关键字来解决;但更多的问题,牵扯的条件太多,并不是简单的网络就能解决的。

观察了周围同事们的做法,我总结出以下几种解决方法:

网络因为竞价排名的原因,搜索出来的结果有很多广告的成分,所以有时候要翻好几页才能看到一条相关的答案,有些甚至要翻几十页。

因为网络搜索使用的是SEO技术,即普通用户可以通过优化网站内容来提升关键词排名。

而这就会导致一个问题:你搜索关键词后展现出来的结果是有人想要让你看到的,并不是质量最好的。

也就是说,网络搜索结果被人为干预了。所以网络一直被网民所诟病。

但网络搜索不出结果,未必是网络的原因,也有可能是自己输入的搜索词不准确造成的。所以对于网络,我们要做到如下几点:

除此之外,网络搜索还有点小技巧,粥左罗《万字干货,彻底讲透搜索技巧,10倍提升你的搜索力(免费教程)》这篇文章写得非常好,我整理几点,仅供参考:

01 过滤目标内容

命令:“+”“-”

用法:通过“+”和“-”来对搜索结果进行过滤

比如在关键词后加上“-推广 -推广链接”就可以排除搜索结果中包含相应字样的链接。如果你发现广告还没有排除干净,你也可以再加上“-广告”通常就能彻底的消灭广告。

02 搜索包含某关键词的内容

命令:“intitle”

用法:通过“intitle”命令指定搜索结果中要包含的关键词,注意“intitle”后边连接的冒号是英文状态下的。

03 搜索某一个格式的文件

命令:“filetype”

用法:通过“filetype”命令可以限制我们要搜索文件的类型,注意“filetype”后边接的冒号也是英文状态下的。

04 搜索特定时间范围的内容

命令:“时间..时间”

用法:通过“时间..时间”命令可以限制我们要搜索的文件的时间,注意两个时间的中间顿号没有空格。

相对网络,谷歌、必应对于技术搜索,就相对准确许多,所以当你网络搜索不到时,尝试下别的搜索引擎,说不定会有新发现。

现在程序员使用的机器语言,都是国外的,更准确的说,都是美国的。所以很多论坛、资料等,都是英文。如果你只会用中文来搜索,某些小众的问题,当然搜不到啦。

所以,要学会使用英文关键字来搜索。

有时候甚至要去国外的一些论坛来搜索想要的答案,这就要求要有一定的英语阅读能力,不能一看到英文帖就放弃。

有时候不管你如何搜索,都找不到自己想要的答案,该怎么办呢?这种情况下,就只能硬着头皮尝试自己解决了。

或者,寻求同事或朋友的帮助,寻求大脑风暴,说不定就会有思路。

如果有些问题是因为新器件带来的,还可以找到器件供应商,让他们安排技术支持帮忙查找原因。

除此之外,还可以把问题整理好,写清发生的条件、复现步骤、测试方法、相关的LOG截图等资料,去一些技术论坛发求助帖,寻找大牛的帮助。

做技术时间久了,发现有些问题确实无解,根本没有办法去解决它。

这时候,我一般会尝试把它绕过,就是说,想办法让它无法复现,虽然问题还是存在,但是能把它掩盖过去。

比如有些驱动在开机启动时会加载不正常,那么就让它晚点启动,或者手动加载。这也不失为一种解决问题的方法。

以上就是我的建立,希望对你有帮助。

首先作为一个程序员,一个优秀的程序员最最最重要的能力就是解决问题的能力。这里解决问题的能力当然就包含了解决 bug 能力了

毕竟,程序员这一生,可能会写无数个 bug ,没有说哪个程序员敢保证自己写的程序没有 bug 。 所以,写了 bug ,遇到 bug 并不可怕,可怕的是你没有解决 bug 的能力 。

作为一个程序员,解决 bug 的途径有哪些呢?我们来一起聊一聊!

其实,每个程序员在学习编程的时候,都会使用编程工具,而现在的开发工具,其实功能都很强大。如果你自己合理利用编程工具,都了解和懂得开发工具的一些技巧,其实不仅仅能够提高开发效率,而且还能够帮助你解决很多编程中的实际问题。

debug 调试,大部分你常用的开发工具,都会有调试模式的,简而言之,就是你编程的时候,遇到了不是自己所想的结果的时候,你可以使用 debug 模式,来一步一步的调试,在调试模式下一般每一步都会显示所执行的结果,你可以看看在哪一步出错了,执行的结果与你预想的结果不对,那么你就能够找到问题所在了。

还有就是,开发工具的控制台,都会提示出报错信息的,现在的开发工具,都会直接告诉你哪一行,报了什么错。其实,很容易定位到错误的。你只需要在编程的过程中积累经验,知道报什么错,用什么方法来解决就行啦。

可是,提示的报错信息,我不知道用什么方法来解决的时候,该怎么办呢?这就是你需要积累的,也是问题中所描述的,就是通过搜索引擎来找答案。

不对,这里不应该是合理使用搜索引擎,应该是学会正确使用搜索引擎。比如:网络,你就不要用了,搜出一堆重复的信息,而且广告也多。作为程序员,建议你使用谷歌搜索。

其实,你在编程中所遇到的几乎所有的问题和 bug ,别人也同样遇到过,因为不管是经验丰富的老程序员,他技术再牛逼,也是初学者过来的,也都踩过你踩的坑。所以,互联网是个好地方,里面包含了你想要的问题的答案。

你只要把报错信息往搜索引擎上一放,回车一下,很多关于这个 bug 的答案就出来很多,你只需要找到跟你一样的 bug ,就能找到答案了。

在这里必须提一下这个网站,所有的程序员有必要学会使用这个网站,其实,你编程中所遇到的问题,这个网站上几乎都是由解答的。

Stack Overflow 可以说是最好的软件程序类问答网站了,给软件开发人员工作和学习提供了非常大的便利,以至于像小白,离了 Stack Overflow 简直都不会写程序了。

所以,建议大家一定要学会使用这个网站,对你编程肯定会有非常大的帮助的。

通过上面的方法,几乎应该能够解决到你所遇到的问题,但是,实在找不到答案的话,你可以问经验比你丰富的老程序员,实在解决不了,那就换种方法吧!

网络,谷歌,debug,断点调试,业务上的bug就需要问下同事或者产品。如果能知道大致范围,哪一部分错了,就换一种方法呗,一般都不会只有一种方法。

1.reload

2.restart

3.rewrite and then goto 2 or 4

4.reboot

5.rm -rf /

6.原谅我编不下去了[捂脸][捂脸][捂脸][捂脸][捂脸][捂脸][捂脸]

找bug跟医生看病的思路是一样的,要对症下药。得先把问题的根源找到,找到根源以后问题就容易处理了。搜索引擎找不到的问题,说明这个问题不是一个常见的问题,具有独特性,那么从bug出现的路径上一步一步去排查。必要时可以用排除法,尽可能的缩小排查范围。另外,当软件的业务逻辑比较繁多复杂的时候,一个结构清晰的架构能为你节省不少找bug的时间。还有,充分的单元测试能够帮你减少出bug的机会。以上均为个人看法,欢迎讨论!

一般程序员能碰到的bug无外乎其他上游程序员写库时手抖留下些不匹配或者容易溢出的问题,搜一下差不多能解决问题。如果是自己写的,那无非就是时序错误类型错误之类的,用break point一行行的调就好了。

再复杂点的bug就是程序员拿高薪的根本了,只可意会,不可言传~

仅仅靠搜索引擎、其他网站那必然无法解决大量问题,因为很多问题是跟业务逻辑相关的,是没有直接答案的。比如 游戏 开发有个界面一直无法显示,这个问题就不是网络可以解决的。问题需要调试分析,这和破案非常像,但在开发过程中更有利的是问题有机会可以重现。破案是逆向工程,需要反推。解决代码问题不仅仅可以反推,也可以通过阅读代码正向分析。下面说说如何debug一个业务逻辑问题。回到刚刚的例子,有个界面一直出不来,我们如何快速去定位:

1.思考这个问题发生的可能性。比如 游戏 内大量界面都是正常的,那么可以对比正常界面代码和异常界面代码的区别,这是对比法。

2.假设创建正常界面和这个异常界面的逻辑代码是一样的,那么问题就落到了这两个界面内部,继续在内部重复上面的对比法进行判断,直到锁定最终位置。

上面说的方法基本上可以杜绝卡在一个简单问题上,这是摆脱新手的一个过程。选择使用对比法或者其他方法的前提都是基于观察和对项目的认识,所以,搜集“案发现场”是最关键的。

其他的问题,不属于逻辑的,像其他网友说的那样,有些通过到github、stackoverflow等地方解决的。这些问题也不是直接就去查找的,它通常也有个分析过程。比如你使用了一个库,但是目前它不支持你的模块。对于新手,就是直接网络或者google了。实际上这样的问题也是有“案发现场”的。对于作者提供的api接口的统一性和便捷程度去推断作者在相关支持模块的位置以及命名以及拓展,再尝试在文件夹中搜索。如果都找不到,再去Google上获取更多的信息。重复推断、分析,决定如何拓展或者绕过。

综合上面的几种问题,可以看到的是都离不开对现场的观察和推理分析。这种能力也被称为经验。但是一般情况下你看不到它们这个分析过程,你能做的就是在实际环境中反复逼迫自己去思考,去训练。这个推理的培养,不仅仅是对事情,也是对人。

我在入行 游戏 开发的前期,也是类似的情况。卡在不同种类的问题上,有些在简单逻辑,有些在别人的代码支持上。后面解决的问题多了,就会发现里面共通的思维方式。常用的一些方法如下:

1.对比法,比较正常与异常代码区别

2.二分查找法。分段注释找问题,也会用在很多方面。比如最近版本突然出了一个奇怪bug,可以通过svn还原来定位。这个还原不是一个一个版本还原,而是用二分法去还原。

3.增加信息。在怀疑的位置或者过程添加日志或者打断点辅助自己更好的推理。

4.相似推理。比如一个引擎在api、性能使用程度上都非常友好,那么它在别的地方也有可能相对表现比较好。这时候如果有个功能我们的实现需要很复杂才能完成,那么就有可能是我们用错了。相似推理不一定都能正确,但会提供一些帮助。

以上。

Ⅳ 程序员是如何找项目练手的

首先,你能想到平时找项目来进行练手,说明你是一个在技术上面是一个非常上进的同学。 想要找到项目进行练手,第一个想到的地方应该是 Github。Github 上拥有全球最多的开源项目,你可以从其中找到自己感兴趣的开源项目,然后参与到开源项目的开发中去。 能够参与开源社区,这也是很多互联网公司非常看重的一点。

其次现在也有很多举办计算机类比赛的平台,比如阿里云的天池大数据、Kaggle、Datacasle等。 你如果有时间,可以参与上面举办的比赛,进行项目练手。

想要在 Github 上面找到自己想要参与的开源软件,首先你要确定好自己对什么技术方向感兴趣。 比如对于我来说,我对实时计算非常感兴趣,所以我找了很多开源的实时计算引擎,最后选择了 Flink 开源项目,现在也在努力的参与到 Flink 的开发中去。想要使用开源项目来进行练手,你一定要确定好自己的技术方向,找到感兴趣的开源项目,接着就是尝试参与到其中。

确定好自己感兴趣的开源项目后,第一步就是去订阅官方社区的邮件组,在社区的邮件组里面,你可以看到很多同学对于开源项目的问题以及解答,你未来有任何问题时,也可以在开源项目邮件组中进行提问。 其次,你可以去开源项目的官方网站,将里面的官方文档阅读和理解一遍,这对于你未来 API 的使用和概念的理解,会有很大的帮助。

最后,你可以去开源项目的 JIRA(问题主页),查看自己能解决哪些 JIRA,随着你解决的问题越来越多,我相信你的能力也会提升的越来越快。

其他方面,你也可以去阿里云的天池大数据等平台上面查找自己想要参与的比赛,上面的比赛主要以算法类比赛为主,但也有性能优化相关,编程类的比赛项目。 我以前在上面参加过阿里中间件的比赛,但是还是和同学一起来进行参加,一路跟着做下来,自己的能力也提升了很多,而且在校招的时候,面试官也问了很多这方面的问题。如果你能够跟着比赛做下来,我相信你肯定能够得到一定的收获。

我会持续大数据、数据库方面的内容,如果你有任何问题,也欢迎关注私信我,我会认真解答每一个问题。期待您的关注

刚入门可以在GitHub或者各个技术网站找一些基础的DEMO,不需要很复杂,有几个知识点就可以了,熟练了在学其他知识点。最后再找一些完整的DEMO练,理解各个知识点之间的联系,熟练掌握常用的设计模式。

初级程序员可以拿公司的项目练手,从头到尾熟悉代码,然后跟着版本更新,巩固掌握的技能,有新技术点多在网上查查资料,多理解,活学活用。

高级程序员可以对现有项目进行重构,搭建框架,深入底层原理。

大神程序员一般都很神秘,是我膜拜的对象[呲牙]

给你推荐一些比较实用的小项目吧,另外千锋也有很多实战项目视频教学。

文本操作

网络

线程处理

Web应用

文件

数据库

图像和多媒体

游戏

不用刻意找项目练手,可以从兴趣入手自己做一个项目,然后再不断的用新技术重构这个项目 。

从兴趣入手

为什么说要从兴趣入手呢?因为这个是一个需要长期进行下去的项目,如果不是自己感兴趣的东西,很难有动力坚持下去。

有哪些方向可以参考呢?比如你喜欢动漫,那么可以做一个动漫图片素材收集的网站;你喜欢足球,那么可以做一个 历史 数据统计的网站,其实只要是你感兴趣的都可以动手去做。

用新技术重构

一个项目做成以后并不是一层不变的,因为技术永远在更迭。当我们学习了一个新技术时,那么我们就可以用新技术把这个项目重构,顺便练练手。

比如说原来项目里有一个用java写的用来抓取数据的爬虫,现在你正好在学习Python语言,那么你就可以尝试用Python语言将这个爬虫重构。

总结

我一直认为一个好的程序员必定具备良好的产品思维,可以根据自身的兴趣点做一个项目并长期维护下去,并不断的用新技术重构这个项目,在练手的同时还能兼顾兴趣,可谓一举两得。

想通过项目练手,这说明你有上进心,非常值得鼓励。互联网上有不少资源,这些项目是比较成功的实践案例,还有相应的教程或者丰富的文档,便于使用者理解,这类项目非常适合程序员练手实践。这些宝藏级的资源在哪里最多呢,毫无疑问,在GitHub上最多。

有同学会问,GitHub上面这么多项目,我应该如何找到合适自己的呢?

从自己的兴趣出发

每个人喜欢做的项目都不一样。有的人喜欢爬虫,有的喜欢自己做些小 游戏 。从自己的兴趣出发入手,这样有利于保持学习的动力和热情,肯花时间学习,自然进步就快。

从容易的项目入手

一开始不要选择太难的项目,要从简单容易的项目入手,再慢慢过渡到难得项目。就像打 游戏 一样,先杀小怪积累经验,最后再跟boss单挑。顺序不要搞反了。

想要找项目练熟的话,肯定是找已经有人做出来的,有源程序的,如果你在项目中遇到问题不懂又没有人指导那这时候源程序就是你最好的指导老师,找项目最好是找自己喜欢的,这样你做起来就不会觉得累,即使做一天都不会感觉到累,特别是每一次中的小小的成功可以让自己更兴奋和开心。我以前就是这样过来的。

任何项目都没有实际项目练手快,各种进度,各种bug,各种要求,想想就头痛,刚解决了一个进度,下一个又来了,下一个写完了上一个又出bug了,没玩没了,这是练手最快学习最快,网上找的项目只能全是熟悉,要解决问题却比不上实际项目来的快

程序员的世界虽然是很精彩的,但是写代码本身是很枯燥的。

跟工作不一样,练手的项目一般不会给你任何回报,除了能够提高你的水平之外不能带给你其他东西。为了防止我们因枯燥的代码过程放弃练手,要尽可能地去找热门的东西,能够与人交流才能使这个练手的过程丰富起来,来自同行或者爱好者的交流反馈能使我们在枯燥的代码过程中更有目标,更能坚持下去。一个人枯燥的垒代码学到的东西比与同行在论坛上或者开源项目上的交流中要少得多。

所以说找项目练手最好是找自己感兴趣的,并且最好是有很多用户或者同行交流的,这样才能学的更多并且不容易放弃。

可以去bilibili上找找相关的项目练习,主要还是得跟着视频老师讲解多加练习才好,熟能生巧嘛。推荐你可以看看尚硅谷bilibili上的视频,更新及时内容也是贴合企业开发的需求呢。

“我的做法是,自己创造项目,然后哪里做不出来就去问,去搜。

童年接触过很多fc 游戏 ,我就把他们重新做一遍。

- - - - - - - - - - - - - - -

Ⅵ Java程序员 刚进公司 项目经理分配给的bug 怎么样去着手改

首先,看看主要的开发文档。
第二,请教经理大概讲解些平台整体结构,
第三,请教同事帮你讲解一些怎样快速的寻找或定位到那个类和那个页面的方法。因为是他们开发的,所以他们熟识。最好让他给我演示一二回如何寻找页面和类。
第四。修改时多用一些输出语句,在JAVA用System.out.println()
在JS里有alert();在JSP页面用out.println()等。
第五。记得多问,切记,这是成长的途径,最适合新手了。

Ⅶ Java程序员怎样调试bug

前端调试技巧:浏览器按F12 可以观察控制台输出的变量,可以看请求的情况(请求路径、参数等) ,这些都是常用的,每个浏览器不同。一般都是火狐的firebug 和谷歌浏览器

console.log(vartem);//控制台打印变量
alert("tem");//弹出框弹出变量

后台调试:eclipse IDE就是在相对应的java代码处打断点,看变量值等

Ⅷ 测试中遇到不可重现的Bug怎么办 详细�0�3

! 1. 记得有这么个缺陷,以后再遇到的时候可能就会了解发生的原因。 2. 尽力去查找出错的原因,比如有什么特别的操作,或者一些操作环境等。 3. 程序员对程序比测试人员熟悉的多,也许你提交了,即使无法重现,程序员也会了解问题所在。 4. 无法重现的问题再次出现后,可以直接叫程序员来看看问题。 5. 对于测试人员来说,没有操作错误这条.既然遇到,就是问题。即使真的操作错了,也要推到程序员那里,既然测试人员犯错误,用户也可能会犯同样的错误。错误发生的时候, Tester 最大。 二、程序不是测试人员写的,出问题也不是测试人员的原因。 至于无法重现,可能的原因很多,因为测试人员看到的只是程序的外部,无法深入程序内部,所以把责任推给测试人员是不对的。 测试人员的任务只是尽力重现问题,而不是必须重现!! 三、下次再遇到的时候,拉他们来看就可以了。 因为问题如果无论如何无法重现,程序员确实也没有什么好的解决方法。 而且此类问题即使程序员说修改了,测试员也没有好的方法去验证是不是。 四、你可以告诉程序员,测试过程是没有错误的。 测试人员只是检查程序中可能存在的问题,虽然测试人员使用一定的手段方法努力去覆盖所有的情况,但这些都是理论的推测。在实际中,可能因为人员、环境、配置等种种原因出现各种各样的问题,在测试人员这里发现问题是公司内部的事情,程序发到外面可就是公司的形象问题了。 需要让程序员理解,测试人员是帮助他们的,不是害他们的。 客户那里发现问题比测试员发现问题结果要严重的多。 五、测试部门是独立于开发部门的呀,真的打交道,也是经理对经理。 在我们这里,工作上面的事情,和程序员相互只能商议解决,并没有谁高谁低。 问题无法重现,也要提出,程序员那里可以回复无法再现。问题放在那里,等到再次出现的时候,就立刻叫程序员过来查看。 实在没有再次出现,最后可以写到报告中,说出现了什么现象,但无法再现(比较严重的问题才如此处理,小问题经理之间商量商量可能就算了)。 至于测试人员必须重现bug,你杀了我好了,我每次测试项目都有无法重现的问题,很多我能找到大概的原因,有些根本无法重现(仅仅出现一次)。 这种事情是无法避免的,并不能说测试人员无法重现问题,就是工作不到位(哼,程序有 bug,是否可以说程序员工作不到位的呀)。 六、测试部门要独立,最好不受开发的制约。其实真正要重视,就应该有否决的权利。 我们公司就是项目承包,要拿最后的项目尾款,就要测试部签字通过,这样就避免了很多的问题。 其实只要自己尽到心就可以了,管别人怎么说呢。 七、我们使用的状态有: 程序员处理的状态(由测试员提交的Action):等待处理的,再次出现的。 测试员处理的状态(由程序员提交的 Action):已经修改的,暂不修改的,系统限制的,使用错误的,无法再现的。测试员可以修改记录。 经理处理的状态(由测试员提交Action):管理员处理的。经理还可以删除记录。 按照比较标准的说法,其实对于缺陷还应该有“等待确认的”、“已经确认的”和“重复提交的”的状态,我们为了省事,统一使用了“等待处理的”。 最后结项的时候,缺陷的状态对我们来说有两种,“已经关闭的”(由测试员或经理确认)和“暂不修改的”(比如下一个版本处理等)。 呵呵,状态多,有些烦琐,特别是程序员很多的时候都不清楚应该回复什么状态,但我个人觉得对测试人员来说,这些状态比较清晰明了,容易处理。 八、一个叫 doer_ljy(可战)的网友回复了一些内容,我个人认为不很妥当,就回复了一些内容,绿颜色的是doer_ljy(可战)的内容: 关于“无法重现”我看是有这么个问题存在。 首先如果你在测试之前有严格的测试计划,就很难出现“无法重现”这种现象。“无法重现”的意思是不知道怎么操作才能再次看见这个BUG。那么这个BUG 多半是“计划外”的。 不清楚你是否是测试人员。“计划外”这个词,对测试员来说应该不存在。测试用例的粒度一直是个在讨论中的问题,测试人员很难有时间和精力写出包含内容、数据、步骤等等全部操作一切的测试用例(说白了,只要一个长手识字的人,按照测试单做,就能发现所有的问题,呵呵,有软件蓝领的感觉了)。即使真的有,意义也不大,测试很多的时候,是发散性的思维,带点创造性,想事先考虑完全,很难。所以更多时候,是在测试过程中逐步对用例等进行完善,所以说“计划外”最好不要提。 说说我现在测试的一个项目,有一个业务,首先查询出人员,有个“全选”按钮,“全选”后,再用鼠标一个一个取消选择,这个时候进行业务办理的时候,就会提示“没有选择人员”,至今为止一切都正常,但是这个时候再次点选人员进行业务处理,仍然会提示“没有选择人员”,这就是一个缺陷了。这个问题我想一般人都不会在测试用例中考虑到吧,因为发生的条件很苛刻:不用“全选”按钮的时候不会发生;全选后点击“取消全选”按钮再办理业务不会发生;全选全消后,先点击人员再办理业务也不会发生。 其次,成熟的测试人员即使无法再现 BUG,也能准确的描述出 BUG 发生之前几个步骤的操作方法,测试用例情况。这些对开发人员分析BUG 原因很重要。所谓的BUG 发现环境。 呵呵,看来我不是成熟的测试人员。手工测试,比较熟练的时候,和打字可以说差不多,应该进行到哪里,心中是有数的,但让我完全从头到尾的重复,不容易呀。写测试缺陷报告单的时候,也只是说明操作步骤和发生的现象。其实无法重现的问题,既然说“无法重现”,也就是测试人员已经对这个现象进行了多次的验证,一般从程序外部来说,测试人员的操作比程序员要熟练的。 最后,我不同意测试人员不假思索把发现的“问题”直接推给编码人员的做法。毕竟是大家合作,目标是一致的。测试人员总是处在 BUG 发生的第一现场,应该帮助分析出现问题的原因。确认是不是自己的此时Miss. 测试人员提交任何一个问题,都会经过反复的验证,如果容易重现,早就提出来了。绝对不是在推脱责任,还是那句话,对程序的结构,做的人当然比不做的人要清楚。另外,除非程序员询问,否则我不会给程序员提出修改分析和建议!!测试人员的任务是发现问题,解决问题是程序员的事情。这么做可能会影响程序员思考问题的思路;而且测试人员做的多了,程序员不但不感激,可能反而会反感(好像程序员对测试人员有好印象的不多)。 再说两个我这两天遇到的问题。第一个就是我们的程序有一个锁定数据的功能。锁定后,在其它的业务,此数据将不能再使用。我当时发现这个功能无效,而且经过了几次的验证都不行,我当然就提出了。但是程序员那里说此功能好使,我再验证的时候,就没有问题了,这个问题当时可以重现(但是我不可能遇到问题就拉程序员来看吧),后来却没有了,只能放在那里,最后关闭掉。第二个就是在一个界面中,录入有顺序要求,必须先选择一个ListBox (必填)再进行Edit 的录入,但一次操作我没有选择 ListBox 就录入的Edit,也正常保存了。后来无论我怎么操作此问题都没有出现(不够成熟呀),我就放弃了,也没有提交记录(为了避免麻烦)。 测试人员的时间是有限的,进度给的都很少,一般连用例都没有时间写,还要去花很多时间验证“无法重现”的问题?反正 10 分钟如果试验不出来,我就会放弃。严重的就提交,不影响的就当不知道。 下面是其它一些人的观点: doublefalse(散诸怀抱):如果不能重现的 bug 确实比较麻烦,但最好在测试过程中注意干净环境、正确的操作、相同的数据源,只要真的有问题,一定能否复现的。呵呵,多试试!!!我们以前一直有客户反映入库的数据经常有无关数据,但在家里测试没有问题,后来才发现是汉字编码错位,这样同样的字,错位后就变成另外的东西了。 liuxiaoyuzhou(蟀哥):遇到过同样的问题!主要是记住BUG 出现的环境!测试的时候这是关键! 在我们这里不能重现的BUG,是测试人员的工作不到位!我们这里程序员比测试人员说话有力度!郁闷呀! ericzhangali(另一个空间):首先一定要提交bug;其次不要企图RD 一定去解这个bug;某些时候还得关闭这个bug。如果RD 认为是测试错误,(不明白什么叫测试错误,是不是说他从测时要告诉你千万不要怎么怎么做,否则后果自负啊,)那也没什么办法,如果沟通解决不了,爱咋认为就咋认为吧。 darkcat_c(错了重来):没有 bug 是不可以重现的,bug 本事是建立在标准的规程上所出现的异常,如果你按test case 步骤做的话不太可能出现此类bug。作为测试人员一定要具备良好的记忆能力,一旦出现一些不知如何产生的bug,至少你要知道刚才你大致进行了那些操作。良好的分析能力,尽管你只是测试,但你应该全面的了解程序的架构,和一些重要的内部细节,不然你这个测试就是不合格的。定位bug 是开发的事情,而重现一个bug 是测试的本职工作,不要把所有的事情推给开发,不然你的确比开发要低一等。(编者按:这种话,不愿意去辩驳,标准开发人员的看法,也许应该让他们也来做做测试) liyan_1014(雁子):我觉得应该是这么处理: 1、一定提交bug,必须由负责bug 的tester 详细描述测试操作步骤,bug 发生的症状,并将 bug 发生的具体环境也描述清楚;这样对于再次重现也有一定的参考性。 2、测试和开发之间是需要良好沟通的,如果得到的回复是操作错误,那么请开发人员解释,为什么会允许存在操作错误,一般来说,对于错误控制,开发那边应该能很好的把握。

Ⅸ 我培训机构刚毕业出来的程序员,在公司里做软件工程师,项目代码做不出来,被开除了。出bug了就不知道

刚做项目都是这样,建议进一些正规公司,进入后有人带着一起做项目,不懂就问,实际做上2个项目就知道如何做了。不会一开始就让你单独接项目。
1、继续开发行业,找正规公司,不要太在乎工资。
2、做二次开发,一些软件公司有自己的产品,他们有合作商,做二次开发相对来说简单一点。
3、做实施,有开发相关经验一般会优先录取(学历、经验也很重要)。
4、做测试,额,测试行业不是很了解,大型公司的测试都是大神级别的。。。

阅读全文

与程序员出bug去哪里找帮手相关的资料

热点内容
bytejava详解 浏览:444
androidjava7 浏览:384
服务器在山洞里为什么还有油 浏览:885
天天基金app在哪里下载 浏览:972
服务器软路由怎么做 浏览:289
冰箱压缩机出口 浏览:225
OPT最佳页面置换算法 浏览:642
网盘忘记解压码怎么办 浏览:852
文件加密看不到里面的内容 浏览:651
程序员脑子里都想什么 浏览:431
oppp手机信任app在哪里设置 浏览:185
java地址重定向 浏览:269
一年级下册摘苹果的算法是怎样的 浏览:448
程序员出轨电视剧 浏览:89
服务器系统地址怎么查 浏览:56
解压游戏发行官 浏览:601
国外小伙解压实验 浏览:336
顶级大学开设加密货币 浏览:438
java重载与多态 浏览:528
腾讯应届程序员 浏览:942