??xml version="1.0" encoding="utf-8" standalone="yes"?>h色视频在线观看,免费看国产精品一二区视频 ,欧洲一区avhttp://www.aygfsteel.com/xiekai-blog/category/33858.html北冥有鱼Q其名ؓ鲌Ӏ鲲之大Q不知其几千里也。化而ؓ鸟,其名为鹏。鹏之背Q不知其几千里也。怒而飞Q其D垂天之云。是鸟也Qvq则徙于南冥。南冥者,天池也? zh-cnWed, 20 Aug 2008 00:09:54 GMTWed, 20 Aug 2008 00:09:54 GMT60E序中错误量的估?/title><link>http://www.aygfsteel.com/xiekai-blog/archive/2008/08/19/222929.html</link><dc:creator>言w寸</dc:creator><author>言w寸</author><pubDate>Tue, 19 Aug 2008 01:55:00 GMT</pubDate><guid>http://www.aygfsteel.com/xiekai-blog/archive/2008/08/19/222929.html</guid><wfw:comment>http://www.aygfsteel.com/xiekai-blog/comments/222929.html</wfw:comment><comments>http://www.aygfsteel.com/xiekai-blog/archive/2008/08/19/222929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xiekai-blog/comments/commentRss/222929.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xiekai-blog/services/trackbacks/222929.html</trackback:ping><description><![CDATA[<h2><a id="AjaxHolder_ctl01_TitleUrl" >错误植入法与老祖宗的智慧</a> </h2> <div id="wmqeeuq" class="postText"> <div style="margin-left: 40px"><span style="color: #5508ff">两个组独立地测试同一个程序,W一l发?5个错误,W二l发?0个错误,在两个小l发现的错误中有15个是共同的,那么可以估计E序中的错误L?___个?/span><br style="color: #5508ff" /> <br style="color: #5508ff" /> <span style="color: #5508ff">AQ?5 BQ?0 CQ?0 DQ?0</span><br /> </div> <br />     当然QQ何一个了解估方法的朋友都可以根据公式计出最l的l果?0个,q没有什么问题。——但是,我在q里引用q个题目Q是希望我们可以把学习这件事情通过cL变得更加有趣一炏V?br /> <br />     其实Q如何估一个系l中存在的缺hQ我们的老祖宗早有现成的方法了。不信,L我在我们老祖宗的数学专著中找到的一个实践问题:“有一口鱼塘,不知道其中有多少条鱼Q如何才能估出池塘中鱼的数量?”Q当Ӟ原文不是q样Q请原谅我一下子找不到出处,只好凭记忆用我的语言描述一下了Q。我们老祖宗给出的{案是这LQ?br /> <br /> <ol> <li style="color: #5508ff">首先Q从鱼塘中打捞出一些鱼Q假设数量ؓmQ; <li style="color: #5508ff">这些鱼做上记号Q然后将其放回鱼塘; <li style="color: #5508ff">{待一D|_{到鱼均匀分布在鱼塘中了之后,再次打捞上来一些鱼Q假设数量ؓnQ; <li style="color: #5508ff">l计W二ơ打捞上来的g的带记号者(假设数量为pQ; <li><span style="color: #5508ff">计算得出鱼塘中鱼的数量ؓ S = m / (p/n) </span></li> </ol> <br />     对这个答案最单的理解是:<span style="font-weight: bold">假设W一ơ做了记L鱼在鱼塘中是均匀分布的,W二ơ打捞上来的n条鱼中有p条是有记LQ则说明有记L鱼的分布密度是p/nQ鱼塘中一共有m条有记号的鱼Q当然ȝ鱼数量就?S = m / (p/n)?/span>?br /> <br />     再回到我们的原始问题Q很Ҏ做一个类比,W一个小l发C25个缺P相当于第一ơ打捞的鱼mQ,W二个小l发C30个缺P相当于第二次打捞上来的鱼nQ,两者相同的?5个(相当于是pQ,所以答案是 50?br /> <br />     所以,从现在开始,不要再认个方法是什么深奥的Ҏ——看看,我们的老祖宗都能熟l运用呢<img src="http://www.cnblogs.com/CuteSoft_Client/CuteEditor/images/emsmile.gif" align="absMiddle" border="0" alt="" /><br /> <br />     本来Q到q里可以告一D落了,可是我们能不能再深入Ҏ考这个问题呢Q?br /> <br />     q种Ҏ昄是可以得C个估结果,但这U方法在哪些情况下不合适,使用时有什么注意事Ҏ有呢Q?br /> <br />     q是回过头看我们养鱼的例子,很显Ӟ我们讨论的前提是“做记L鱼在池塘中分布均匀”Q如果这个条件不满Q我们的估算l果昄是有很大的偏差的。就鱼塘来说Q不同类型的鱼由于喜Ƣ的食物U类不同Q喜Ƣ分布在不同的层ơ,q样一来的话,在打捞的时候就要注意,如果只侧重在某一个水层,昄l果是有很大的偏差的Q另外,׃鱼塘边上的温度相对较低,夏天鱼更加喜Ƣ在鱼塘边休?#8230;…Q可见,要达?#8220;q_”q样的条件还是有隑ֺ?#8230;… —?{等Q我们讨Zq么久的|和我们的~陷有什么关pdQ?br /> <br />     别忘了,~陷在系l中的分布和鱼在鱼塘中的分布可是有异曲同工之妙的?img src="http://www.cnblogs.com/CuteSoft_Client/CuteEditor/images/emwink.gif" align="absMiddle" border="0" alt="" />。缺h不同的类型(功能~陷Q性能~陷Q安全性缺?#8230;…Q,分布在不同的模块Q由于模块设计和实现人员的水q的差异Q模块自w复杂度的差异等Q不同模块中的缺陷分布显然是不同的,一个系l中Q由于测试的试不同Q不同类型缺L发现效率也是不同?#8230;…——再看看Q这和我们的鱼塘是不是一回事Q?br /> <br />     关于鱼塘和缺L故事Q如果我们要q下去Q还会发C们的很多共同点,当然Q你也可以提出各U方法来修正我们q个单的模型——但q不是我们的重点?span style="font-weight: bold">我要说的重点是:无论如何Q在q条路上的思考是不是会比单的背公式更有趣一些呢Q?br /> <br /> </span><span style="font-weight: bold">     </span>l常有测试工E师问到Q应该怎样才有最高的学习效率呢?<br /> <br />     我的回答是:<span style="font-weight: bold">学习、思考是乐趣Q不是负担。我们学习是Zq求它自w的乐趣——获得知识的乐趣Q在自己头脑中天马行I的乐趣Q发现的乐趣Q以及分享的乐趣?br /> </span></div> <img src ="http://www.aygfsteel.com/xiekai-blog/aggbug/222929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xiekai-blog/" target="_blank">言w寸</a> 2008-08-19 09:55 <a href="http://www.aygfsteel.com/xiekai-blog/archive/2008/08/19/222929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微Y的测试方?/title><link>http://www.aygfsteel.com/xiekai-blog/archive/2008/08/18/222794.html</link><dc:creator>言w寸</dc:creator><author>言w寸</author><pubDate>Mon, 18 Aug 2008 07:52:00 GMT</pubDate><guid>http://www.aygfsteel.com/xiekai-blog/archive/2008/08/18/222794.html</guid><wfw:comment>http://www.aygfsteel.com/xiekai-blog/comments/222794.html</wfw:comment><comments>http://www.aygfsteel.com/xiekai-blog/archive/2008/08/18/222794.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/xiekai-blog/comments/commentRss/222794.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/xiekai-blog/services/trackbacks/222794.html</trackback:ping><description><![CDATA[<p>要点Q?br /> <br /> <strong>两类l典的Y件测试方?/strong><br /> W一cL试方法是试图验证软g?#8220;工作?#8221;Q所?#8220;工作?#8221;是指Y件的功能是按照预先的设计执行的;<br /> W二cL试方法则是设法证明Y件是“不工作的”?br /> <br /> <strong>两类Ҏ的优劣对?br /> </strong>很明显这两类试Ҏ在具体目标、或指导思想上截然相反。由此也军_了它们在思\、过E和重点上有很大的差别Qƈ各有利弊的?br /> W一cL试方法以需求和设计为本Q因此有利于界定试工作的范_更便于部|测试的侧重点,加强针对性。这一点对于大型Y件的试Q尤其是在有限的旉和h力资源情况下昑־格外重要?br /> W二cL试方法与需求和设计没有必然的关联,如果计划理不当Q测试活动很Ҏ丢失重点Q走入歧途?br /> W一cL试方法的~点是缺乏灵zL,不利于测试h员主观能动性的发挥Q不Ҏ扑ֈ软g的错误(BugQ。而这斚w正是W二cL试方法的长处?br /> <br /> <strong>微Y的策?/strong><br /> 正是因ؓ认识CcL试方法各有利弊,微Y在Y件测试活动中两cL法结合v来,以第一cL试方法ؓ基础和主要线索,阶段性地q用W二cL试方法?br /> <br /> <strong>微Y的第一cL?/strong><br /> 微Y的第一cL试M上说分ؓ三个步骤q行Q审栔R求和设计—〉设计测试—〉实施运行测试?br /> 需求和设计本n也有正确性的问题。依据不正确的需求和设计不可能开发出正确的Y件品,试也将是徒劳的。因此验证需求和设计是微软进行第一cL试的W一步?br /> 同时q种审核对于试人员也是一U热w活动,使他们尽早地q入技术和业务状态?br /> 从测试的q程来看QL先运行或执行单用例,然后再复杂用例;先验证单一的基本功能,再综合的端到端的功能Q先发现解决表面的,影响面大的BugQ再深层的,不容易重现的Bug?br /> Z防止质量回归有很多测试用例是要反复运行的?br /> <br /> <strong>微Y的第二类试</strong><br /> 微Y的第二类试是阶D|的Q常常根据需要而带有随机性和H击性。对于这cL试,在微软有一个专门的名称Q?#8220;Bug BashQBug大扫除)”?<br /> Bug Bash通常发生在项目开发各阶段Q微软叫里程)的末期,比如Beta版发布前Q划Z个专门的旉D(通常1-3天)Q在q期间所有参与项目的人员Q集中全部精力,q用各方面的知识Q尽全部智慧来搜寻项目的Bug?br /> q是一个非常有意思的zdQ但要组l好q样的活动ƈ非易事。一般有以下要点Q?br /> Q?Q尽这是一个测试活动,但参与者ƈ不仅限于试人员。项目经理,开发h员甚至于高层理人员都应参加Q如同全民动员。目的是要集思广益;<br /> Q?Q要鼓励各部门,领域交叉搜烦Q因为新的思\和视角通常有助于发现更多的BugQ?br /> Q?Qؓ调动U极性,增强味性,可以适当引入竞争机制Q比如当zdl束Ӟ评出发现Bug最多,发现最严重Bug的个人,l以物质和精奖励?br /> Q?Q可以分专题展开Q比如安全性、用L面可用性、国际化和本地化{等?/p> 通常Bug Bash会生超乎寻常数量的Bug?br /> 一般我们认为,产生Bug的量大好。因为,如果产生Bug的数量少Q你很难判断是因Z品的质量实很高Q还是Bug Bash做得不彻底。而且事实往往是后者?br /> 但同时会造成收敛的缺陯势出C重的发散现象?br /> <br /> 那么对Bug Bash所产生的大量Bug该怎么办?<br /> 在微软,?#8220;Bug Triage Q测试,开发和目理Q三方会审)”的制度?br /> 对于每个BugQ经q会审后不外乎有以下三中归宿QM上来_Q?<br /> Q?Q被认?#8220;~陷?#8221;BugQ这LBug必须交开发h员解冻I然后由原发现人验证?br /> Q?Q被调整为非“~陷?#8221;BugQ不用开发h员作M更改Q但必须问题纳入品用h档,明确向用戯释,q告诉用户如何避免和应对?br />       考虑刎ͼ一斚wq种情况在用户实际用品时发生的机率很低,而另一斚wQ从开发角度,解决q个问题有很大的技术难度,影响面也太大。这U情况下会把q个Bug改ؓ“文本?#8221;BugQ也是要求文本~写人员这一情况作一技术性解释。这cȝBug在Bug Bash中很常见Q因为大家在q种试zd中思维方式比较常?<br /> Q?Q被完全否定Q立d闭,不再U缠?br />       q类的情况在Bug Bash中也很常见。因为参与Bug Bash人ƈ不都很了解品功能的准确用法Q误报是隑օ的。尽对q类问题没有直接的后l措施,但这些信息仍然是有一定h值的Q因为将来用户中的新手很可能会犯同样的毛病,而品支持部门如果预先有q样的经验,p及时准确地提供帮助。所以这些信息要保存在Bug的管理库中,以备来产品支持部门查询?br /> l过q样的会审,{选,如果Q?Q(2Q类BugQ特别是Q?Q类Bug仍然很多Q那试部门很可能需要重新论证原先的试计划和测试用例设计,看是否需要增加测试用例。必要时q要早提出更改目M计划和发布日期?大量Bug的出C怸是g愉快的事Q但和把q些Bug留给用户相比Q代仯得太多了?br /> <br /> <strong>一些基本的事实<br /> </strong>微Y的测试h员和开发h员数量大致相{或略多<br /> 微Y的品成本中试大约?0%以上<br /> <br /> <strong>历史回顾</strong> <br /> 软g开发历史四个阶D:<br /> <u>W一个阶D?/u>?0q代及其以前Q那时Y件规模都很小、复杂程度低QY件开发的q程随意。开发h员的Debugq程被认为是唯一的测试活动。其实这q不是现代意义上的Y件测试,当然一阶段也还没有专门试人员的出现?br /> <u>W二个阶D?/u>?0q代Q这个阶D开发的软g仍然不复杂,但h们已开始思考开发流E问题,q提?#8220;软g工程Software Engineering”的概c但是这一阶段Z对Y件测试的理解仅限于基本的功能验证和Bug搜寻Q而且试zd仅出现在整个软g开发流E的后期Q虽然测试由专门的测试h员来承担Q但试人员都是行业和Y件专业的入门新手?<br /> <u>W三个阶D?/u>?0q代及其以后QY件和IT行业q入了大发展。Y件趋向大型化。Y件测试已成ؓ一个专业,需要运用专门的Ҏ和手D,需要专门h才和专家来承担?br /> <u>W四个阶D?/u>?0q代以后QY件的规模和复杂程度迅速提高,试与开发流E的融合也迅速走向更深层ơ,具体地说q种融合是整个软g开发活动对试的依赖性。传l上认ؓQ只有Y件的质量控制依赖于测试,但是C软g开发的实践证明Q不仅Y件的质量控制依赖于测试,开发本w离开试也将无法推进Q项目管理离开了测试也从根本上失去了依据。在微YQ测试的有q样的地位和作用。这是Z么微软在软g试上有如此大的投入?br /> <br /> 在微软,产品开发团队(主要包括开发、测试和目理Q一般都有百Z上规模,有些产品甚至上几千hQWindows2000的开发部门曾?000多hQ。这样大规模的h力资源作用在一个动态的Q内部相互联pȝpȝ中,若没有有效的协同Q其混ؕ是不可避免的。试惻I有两个开发h员,分别在开发两个不同的功能模块Q其怺有依赖关pRؓ了相互协调,他们可以随时q行当面讨论。如果这U关pd生在五个开发h员和五个功能模块之间Q这U协调就只能通过定期的会议来q行。而一个大型项目,会有许许多多q样的关p,而且很多时候这U关pL着不确定性和不可预见性?span style="color: red">当一个开发h员编写一D|的代码或对已有代码进行改动和调整Ӟ他(或她Q常常无法确定,或无法完全确定究竟有哪些相关的模块会受到影响Q以及在什么请况下q种影响会带来什么结果。因为系l的复杂性已q远出了h的逻辑思维、技能和l验所能力及的范畴?/span>因此q种传统的协调手D|q不能满需要的?<br /> 在微软,q种协调?span style="color: red">通过试来实?/span>的。具体来说就是:<span style="color: red">每日建?自动化测?/span>?br /> 关于每日~译和自动化试Q这里简单的说就是每天都建造一个新版本Q每个版本都要运行通过一定量的自动测试用例,以检验当天工作的质量?br /> 全面的自动测试,到早晨上班时间之前就会把l果自动通过e-mail{方式发送出来。开发h员上班后的第一件事往往是查测试结果。如果没有问题就会开始新的工作。如果有试有用例没有通过Q开发h员则必须协同试人员一LL出原因,解决后才能开始新的代码。有时一个小的失误会引v大面U的试用例p|Q很大一部分开发团队会受到影响。ؓ量避免q种情况Q要求开发h员在存入代码之前先在自己的个人徏造版本上q行一定量的自动测试,全部通过后在存入。如开发h员没有按照这L要求Q而擅自存入质量不高的代码而造成大量试p|Q这U不负责ȝ行ؓ是要受到严厉批评的?<br /> 从这一q程可以看出Q开发h员依赖测试来保证开发工作的质量Q开发整体地协调地向前推q?br /> <br /> 开发对试的这U依赖性对试和测是h员提Z更高的要求?br /> 在理念上QY件测试已q不仅仅只是软g功能的验证和Bug的搜寻;<br /> 在具体方法上Q自动测试和试工具的用已成ؓ基本的要求?br /> <br /> 一个Y件企业要提高其Y件开发的能力Q特别是针对大型软g的大规模的快速开发能力,在测试方面对传统理念和方法进行突破是必要的?br /> <br /> <hr /> <br /> 原文全文Q?font style="background-color: #cfe4d2"><a >http://www.51testing.com/?157364/action_viewspace_itemid_90429.html</a></font><br /> <img src ="http://www.aygfsteel.com/xiekai-blog/aggbug/222794.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/xiekai-blog/" target="_blank">言w寸</a> 2008-08-18 15:52 <a href="http://www.aygfsteel.com/xiekai-blog/archive/2008/08/18/222794.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͱ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">潭</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ں</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">彧</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">߰</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">躣</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">բ</a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">º</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>