教育技术
如何有效地报告 Bug
本文为配合上一文《提问的智慧》转帖。
——————————————以下为转帖内容——————————————————
作者:Simon Tatham 专业的自由软件程序员
翻译:Dasn
引言
为公众写过软件的人,大概都收到过很拙劣的bug(计算机程序代码中的错误或程序运行时的瑕疵——译者注)报告,例如:
在报告中说“不好用”;
所报告内容毫无意义;
在报告中用户没有提供足够的信息;
在报告中提供了错误信息;
所报告的问题是由于用户的过失而产生的;
所报告的问题是由于其他程序的错误而产生的;
所报告的问题是由于网络错误而产生的;
这便是为什么“技术支持”被认为是一件可怕的工作,因为有拙劣的bug报告需要处理。然而并不是所有的bug报告都令人生厌:我在业余时间维护自由软件,有时我会收到非常清晰、有帮助并且“有内容”的bug报告。
在这里我会尽力阐明如何写一个好的bug报告。我非常希望每一个人在报告bug之前都读一下这篇短文,当然我也希望用户在给我报告bug之前已经读过这篇文章。
简单地说,报告bug的目的是为了让程序员看到程序的错误。您可以亲自示范,也可以给出能导致程序出错的、详尽的操作步骤。如果程序出错了,程序员会收集额外的信息直到找到错误的原因;如果程序没有出错,那么他们会请您继续关注这个问题,收集相关的信息。
在bug报告里,要设法搞清什么是事实(例如:“我在电脑旁”和“XX出现了”)什么是推测(例如:“我想问题可能是出在……”)。如果愿意的话,您可以省去推测,但是千万别省略事实。
当您报告bug的时候(既然您已经这么做了),一定是希望bug得到及时修正。所以此时针对程序员的任何过激或亵渎的言语(甚至谩骂)都是与事无补的——因为这可能是程序员的错误,也有可能是您的错误,也许您有权对他们发火,但是如果您能多提供一些有用的信息(而不是激愤之词)或许bug会被更快的修正。除此以外,请记住:如果是免费软件,作者提供给我们已经是出于好心,所以要是太多的人对他们无礼,他们可能就要“收起”这份好心了。
“程序不好用” 程序员不是弱智:如果程序一点都不好用,他们不可能不知道。他们不知道一定是因为程序在他们看来工作得很正常。所以,或者是您作过一些与他们不同的操作,或者是您的环境与他们不同。他们需要信息,报告bug也是为了提供信息。信息总是越多越好。
许多程序,特别是自由软件,会公布一个“已知bug列表”。如果您找到的bug在列表里已经有了,那就不必再报告了,但是如果您认为自己掌握的信息比列表中的丰富,那无论如何也要与程序员联系。您提供的信息可能会使他们更简单地修复bug。
本文中提到的都是一些指导方针,没有哪一条是必须恪守的准则。不同的程序员会喜欢不同形式的bug报告。如果程序附带了一套报告bug的准则,一定要读。如果它与本文中提到的规则相抵触,那么请以它为准。
如果您不是报告bug,而是寻求帮助,您应该说明您曾经到哪里找过答案,(例如:我看了第四章和第五章的第二节,但我找不到解决的办法。)这会使程序员了解用户喜欢到哪里去找答案,从而使程序员把帮助文档做得更容易使用。
“演示给我看” 报告bug的最好的方法之一是“演示”给程序员看。让程序员站在电脑前,运行他们的程序,指出程序的错误。让他们看着您启动电脑、运行程序、如何进行操作以及程序对您的输入有何反应。
他们对自己写的软件了如指掌,他们知道哪些地方不会出问题,而哪些地方最可能出问题。他们本能地知道应该注意什么。在程序真的出错之前,他们可能已经注意到某些地方不对劲,这些都会给他们一些线索。他们会观察程序测试中的每一个细节,并且选出他们认为有用的信息。
这些可能还不够。也许他们觉得还需要更多的信息,会请您重复刚才的操作。他们可能在这期间需要与您交流一下,以便在他们需要的时候让bug重新出现。他们可能会改变一些操作,看看这个错误的产生是个别问题还是相关的一类问题。如果您不走运,他们可能需要坐下来,拿出一堆开发工具,花上几个小时来好好地研究一下。但是最重要的是在程序出错的时候让程序员在电脑旁。一旦他们看到了问题,他们通常会找到原因并开始试着修改。
“告诉我该怎么做” 如今是网络时代,是信息交流的时代。我可以点一下鼠标把自己的程序送到俄罗斯的某个朋友那里,当然他也可以用同样简单的方法给我一些建议。但是如果我的程序出了什么问题,我不可能在他旁边。“演示”是很好的办法,但是常常做不到。
如果您必须报告bug,而此时程序员又不在您身边,那么您就要想办法让bug重现在他们面前。当他们亲眼看到错误时,就能够进行处理了。
确切地告诉程序员您做了些什么。如果是一个图形界面程序,告诉他们您按了哪个按钮,依照什么顺序按的。如果是一个命令行程序,精确的告诉他们您键入了什么命令。您应该尽可能详细地提供您所键入的命令和程序的反应。
把您能想到的所有的输入方式都告诉程序员,如果程序要读取一个文件,您可能需要发一个文件的拷贝给他们。如果程序需要通过网络与另一台电脑通讯,您或许不能把那台电脑复制过去,但至少可以说一下电脑的类型和安装了哪些软件(如果可以的话)。
“哪儿出错了?在我看来一切正常哦!” 如果您给了程序员一长串输入和指令,他们执行以后没有出现错误,那是因为您没有给他们足够的信息,可能错误不是在每台计算机上都出现,您的系统可能和他们的在某些地方不一样。有时候程序的行为可能和您预想的不一样,这也许是误会,但是您会认为程序出错了,程序员却认为这是对的。
同样也要描述发生了什么。精确的描述您看到了什么。告诉他们为什么您觉得自己所看到的是错误的,最好再告诉他们,您认为自己应该看到什么。如果您只是说:“程序出错了”,那您很可能漏掉了非常重要的信息。
如果您看到了错误消息,一定要仔细、准确的告诉程序员,这确实很重要。在这种情况下,程序员只要修正错误,而不用去找错误。他们需要知道是什么出问题了,系统所报的错误消息正好帮助了他们。如果您没有更好的方法记住这些消息,就把它们写下来。只报告“程序出了一个错”是毫无意义的,除非您把错误消息一块报上来。
特殊情况下,如果有错误消息号,一定要把这些号码告诉程序员。不要以为您看不出任何意义,它就没有意义。错误消息号包含了能被程序员读懂的各种信息,并且很有可能包含重要的线索。给错误消息编号是因为用语言描述计算机错误常常令人费解。用这种方式告诉您错误的所在是一个最好的办法。
在这种情形下,程序员的排错工作会十分高效。他们不知道发生了什么,也不可能到现场去观察,所以他们一直在搜寻有价值的线索。错误消息、错误消息号以及一些莫名其妙的延迟,都是很重要的线索,就像办案时的指纹一样重要,保存好。
如果您使用UNIX系统,程序可能会产生一个内核输出(coredump)。内核输出是特别有用的线索来源,别扔了它们。另一方面,大多数程序员不喜欢收到含有大量内核输出文件的EMAIL,所以在发邮件之前最好先问一下。还有一点要注意:内核输出文件记录了完整的程序状态,也就是说任何秘密(可能当时程序正在处理一些私人信息或秘密数据)都可能包含在内核输出文件里。
“出了问题之后,我做了……” 当一个错误或bug发生的时候,您可能会做许多事情。但是大多数人会使事情变的更糟。我的一个朋友在学校里误删了她所有的Word文件,在找人帮忙之前她重装了Word,又运行了一遍碎片整理程序,这些操作对于恢复文件是毫无益处的,因为这些操作搞乱了磁盘的文件区块。恐怕在这个世界上没有一种反删除软件能恢复她的文件了。如果她不做任何操作,或许还有一线希望。
这种用户仿佛一只被逼到墙角的鼬(黄鼠狼、紫貂一类的动物——译者注):背靠墙壁,面对死亡的降临奋起反扑,疯狂攻击。他们认为做点什么总比什么都不做强。然而这些在处理计算机软件问题时并不适用。
不要做鼬,做一只羚羊。当一只羚羊面对料想不到的情况或受到惊吓时,它会一动不动,是为了不吸引任何注意,与此同时也在思考解决问题的最好办法(如果羚羊有一条技术支持热线,此时占线。)。然后,一旦它找到了最安全的行动方案,它便去做。
当程序出毛病的时候,立刻停止正在做的任何操作。不要按任何健。仔细地看一下屏幕,注意那些不正常的地方,记住它或者写下来。然后慎重地点击“确定” [...]
提问的智慧
今天在群里一个人问“我的 MySQL 为什么不启动了”,类似这样的问题已经不是第一次,想起以前看过的一篇文章《提问的智慧》,转帖到这里,用以自学,也用来给别人提醒,提问的时候要遵循基本的规则。
—————————————————以下为转帖内容——————————————
How To Ask Questions The Smart Way
提问的智慧
译者 D.H.Grand[本站会员]
Copyright (C) 2001 by Eric S. Raymond
中文版Copyleft 2001 by D.H.Grand(nOBODY/Ginux)
英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html
中文版:http://www.linuxforum.net/doc/smartq-grand.html
感谢Eric的耐心指点和同意,本文才得以完成并发布,本指南英文版版权为Eric StevenRaymond所有,中文版版权由D.H.Grand[nOBODY/Ginux]所有。
目录
简介 提问之前 怎样提问 谨慎选择论坛 尽量使用邮件列表 用辞贴切,语法正确,拼写无误 用易读格式发送问题 使用含义丰富,描述准确的标题 [...]
2007年教育技术学研究生入学考试专业课情况统计
目前,按照国家的学科规划,教育技术学是作为教育学的二级学科存在的,而教育学研究生入学考试的专业课是《教育学综合》,那么教育技术学是不是也考《教育学综合》呢?这是每一个教育技术学考研学子都很关心的问题。去年在教学技术学QQ群里,已经有人讨论过这个话题,今天同学在QQ上问我这个情况时我才从电脑中把这一情况翻出来,放到这里,希望能给大家一些帮助。就总体而言,非师范类院校多考《教育学综合》,而师范类院校多考其他专业课,是不是出乎您的想象?
考《教育学综合》的学校:首都师范大学,西南交通大学,浙江大学,上海外国语大学,江西师范大学,渤海大学,上海交通大学,山西师范大学,西南科技大学,西南大学,北京交通大学,南京邮电大学,西安电子科技大学,华中科技大学,西南交通大学,东南大学,深圳大学,西北工业大学,北京理工大学,第四军医大学,云南师范大学,福建师范大学,大庆油田学院,南京大学,天津工程师范学院,内蒙古师范大学,宁波大学,国防科学技术大学,第二军医大学,江西财经大学,石家庄陆军指挥学院,清华大学,辽宁师范大学,南昌大学,解放军外国语学院,扬州大学。
考其他专业课的学校:曲阜师范大学,华南师范大学,西北师范大学,东北师范大学,河南大学,河南师范大学,石家庄铁道学院,中国科学技术大学,同济大学,上海师范大学,南京师范大学,浙江师范大学,华东师范大学,北京师范大学,陕西师范大学,西北师范大学,山东师范大学,四川师范大学,云南大学,广西师范大学,河北大学,安徽师范大学,吉林大学,哈尔滨师范大学,北京邮电大学,聊城大学,沈阳师范大学,西华师范大学,天津师范大学,浙江工业大学,南京师范大学,中南大学,河北师范大学,徐州师范大学,中山大学。
需要说明的是:
1、这个专业课情况统计未经本人核实,如有差错,敬请谅解!
2、2008年的考研已经结束,具体情况如何,本人未做统计,如您需要最新情况,请查询招生院校的招生简章,以免造成失误。
除了抱怨,我们是不是该做点什么?
在《ECNU:一个让我心痛的地方》一文中我曾提到有幸到BNU进修一年。我曾为在BNU的一年没有完成自己的目标而后悔,我曾因自己并没有进入教育技术学科的大门而担心。当我身处ECNU,与众多教育技术学科出身的人同处一室的时候,我惊喜地发现我不是最差的。
我本身并非教育技术学专业出身,所在的单位没有教育技术学这一专业,也没有开设教育技术学公共课。我选择教育技术学只是凭着自己对教育技术学科的认识,当我花去两年多的时间即将跨入这一学科的大门时才发现,门里的很多人都在抱怨,抱怨教育技术学科没有自己的学科定位、抱怨教育技术学科没有自己的学科体系、抱怨教育技术学科没有广泛的应用领域,抱怨教育技术学科没有相应的社会认同、抱怨“学富五车”的自己因误入这一学科而被大材小用。而学界前辈专家学者对学科定位问题的研究他们不知道、学界前辈专家学者对构建学科体系所做出的努力他们不清楚、学界前辈专家学者对学科应用领域的拓展他们不了解;社会认同需要的我们教育技术学科人努力工作去争取而不只是抱怨他们没有思考,一大批认真工作而没有标榜自己学富五车的教育技术学科毕业生已经闯出了自己的一片新天地他们没有看到。
当我看到 time80s 所写的《拿什么来祝福你,我的学生,我的长辈》时,我有一些震惊,我也在反思。我们即将开题,开题之后,一年ECNU的学习生活也将结束。此情此景,除了抱怨,我们是不是该做点什么?
———————————————————(以下为引用内容)————————————————————
亲爱的学生,我的长辈,
就在今天,这个南方忽然降温的日子中,领导找我谈话了。原因是你的一封信,一封举报信。 我不想知道您是谁,虽然可以猜到。但,为什么要去猜呢?您在信中说到,我作为一名毕业论文指导老师不尽责,这让我很难接受。从8月份开始布置毕业论文,要求9月初交论文选题表,仅仅是选题表,您就一拖再拖,电话给您打了很多遍,您总是不露面。我不知道怎样去做,真的,老师很笨。
毕业论文在布置的时候,就一再强调,不要从网上抄。可是,亲爱的学生,我的长辈,您交过来的文章总是连HTML格式的标志都在。您总是说您很忙,是的,老师也是人,也能体会到,一边工作一边学习真的不容易,要处理工作、学习、家庭种种琐碎的事情。可是,亲爱的学生,您既然选择了学习这条道路,并且坚持到今天,为什么毕业论文不坚持下去呢?
一拖再拖,已经到10月底的时候,还是没有完成。在这样的情况下,我们决定,再安排几次集中辅导,并且我可以负责的说,我的电话打到您本人手中,跟您说“这是最后的机会了,即使您前面一点没有做,从现在开始,还有一个月的时间,我们安排的几次辅导课您必须要参加”,可是,您还是没有出现。
到目前为止,您的选题还没交来。
辅导课我们是从最基础的开始。并且可以负责的说,只要来听了,多少可以完成个大概。判断的依据是:这个班学生的程度都差不多,来参加辅导的学生到现在基本都完成的差不多了。
最后一次,您出现了。 那天来的人很多,有10多个,都带了自己的论文,代码,我在忙着给他们调试。您却在问我第一次辅导就已经强调过的问题。您说,我是否该放弃即将完成毕业论文的10多个人的辅导,耐心地给您讲ABC?
您在QQ上说,让我帮您完成毕业论文,我没有答应,跟您说了很多道理,您一再纠缠,我把您加如黑名单。
您一怒之下,给相关部门发去了举报信。
亲爱的学生,不,我的长辈。你们当中,有的在年龄上可以做我的哥哥、姐姐甚至叔叔、阿姨。人情事故的东西,你们比我懂。几年的学习当中,您总共来上过几次课?全日制的学生毕业论文一般要花整整一个学期去完成,您认真地花了几个小时?到最后关头,您毕业论文没法完成,能够去怪我么?事业上您可能比我成功,来上课的时候,我骑自行车您开汽车,经济上您比我条件好,那是事实。我没曾想过您的成功能带给我任何好出,甚至,我没有要求您去尊敬我这个老师。但,做人是否需要一点娘心?说话,是否需要一点依据。
亲爱的学生,我的长辈。也许毕业了您永远不会踏进学校大门,也许某个下雨的日子中您的车会从我身边一呼而过,溅我身上斑斑点点的污迹。也许,那个时候我们都形同陌路。您有您的人生准则,我也有我的处世原则。两条平行线上,我祝愿您一帆风顺。
某某老师 2007年11月27日
———————————————————(引用内容结束)—————————————————————
ECNU:一个让我心痛的地方
两年前,在我重新给自己定位的时候,我希望能在教育技术这个新兴的学科中找到自己的一席之地,那时,我完全是一个门外汉。为了能够迅速入门,我选择了到BNU进修。在BNU的一年里,曾经为不能完成课程的作业而惆怅,曾经为不能跟上老师的步伐而担忧。能不能在一年的时间跨入教育技术学科的大门,是我经常需要考虑的问题。短短的一年进修时间过去后,回头看,自己看了几本书,接触到一些新名词,但也有很多的目标并没有实现。
一年前,自认并没有进入教育技术学科大门的我重新选择ECNU,来到丽娃河畔,希望自己能在ECNU得到深造,真正成为ET行列中的一个人。在ECNU的一年已经过去了80%,回头看,有很多迷茫,有很多沮丧,有很多无奈,有很多失望。除了一纸文凭和几个朋友后,我不知道我的学业上有哪些收获。在我试图总结自己的收获时看到 教育技术的行与思 2005-11-02 写的《教育技术专业的老师们,你们的课究竟上的怎样?》一文,我想作为自己的总结似乎十分恰当。
———————————————————(以下为引用内容)——————————————————————
生存和发展的压力,对更加广阔天空的向望,使我选择了来到华东师范大学教育信息技术系。在不知不觉中,眼看就快到了离别的时候。
在离别的时候,想起了我的朋友的一句话“小时候想砀山,以为是山连山,长大了看砀山,却是一马平川”。此时此刻,真的觉得自己的心境就像那个刚刚长大的小孩,满是失望,满是迷茫。
总觉得,华东师大——高师院校的一面旗帜,那里的老师都该是学富五车,满腹经纶,在课堂上也应该是挥洒自如,颇有大家风范的。却不曾想,应了那句俗话“期望越大,失望越大”。看着同学们从教室里一个个的离去,选择坚守的也都一个个耷拉着脑袋,朦胧着双眼,心里不由的一阵阵的寒意。
是这些老师没有学问?但一看,都是博士、教授、副教授。暗自揣摩,他们的肚子里该是有点东西的呀,但为什么课上的都那么的味如嚼蜡。更有甚者连投影仪的遥控电源都没开,就说设备有问题,晕,真TMD晕。
由此可见,“有学问”和“成为专家教师”是截然不同的两个概念。没有学问不行,教学方法和策略运用的不好或者不恰当也不可,就如同人的两条腿,少一条,走路就不稳。“学高为师”,这句话是不是还该加上点什么。
这一思索,促使我反思自己的教学。我在教学中是不是也像他们一样,混然不觉同学们的反应。作为学教育技术的老师,就应该能够很好的设计自己的教学,就应该能够很好的将技术整合到自己的课堂教学中,就应该能够充分的体现学生的主体地位,就应该能够采取很好的与学生交流的策略……但是,我自己又做到了吗?
路漫漫其修远兮,吾将上下而求索。
————————————————————(引用内容结束)——————————————————————
