﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-qileilove-随笔分类-defalut managerment system 缺陷管理系统</title><link>http://www.blogjava.net/qileilove/category/51399.html</link><description>不想做屌丝的码农，不是好项目经理！屌丝生涯从此开始！</description><language>zh-cn</language><lastBuildDate>Mon, 22 Dec 2014 16:34:09 GMT</lastBuildDate><pubDate>Mon, 22 Dec 2014 16:34:09 GMT</pubDate><ttl>60</ttl><item><title>Jira5.0+greenhopper6.1.6的安装</title><link>http://www.blogjava.net/qileilove/archive/2014/12/22/421651.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 22 Dec 2014 15:56:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/12/22/421651.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/421651.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/12/22/421651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/421651.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/421651.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 0.5em 0px 1.5em; padding: 0px; line-height: 19px; text-align: center; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">字体:&nbsp;&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">小</a>&nbsp;&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">中</a>&nbsp;&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">大</a>&nbsp; |&nbsp;<a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=up&amp;itemid=229485&amp;catid=96" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">上一篇</a>&nbsp;<a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=down&amp;itemid=229485&amp;catid=96" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">下一篇</a>&nbsp;|&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">打印</a>&nbsp; |&nbsp;<a href="http://bbs.51testing.com/thread-77515-1-1.html" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">我要投稿</a>&nbsp; |&nbsp;<span style="word-break: break-all;">推荐标签：&nbsp;<a href="http://www.51testing.com/?action-tag-tagname-%C8%ED%BC%FE%B2%E2%CA%D4%B9%A4%BE%DF" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">软件测试工具</a>&nbsp;<a href="http://www.51testing.com/?action-tag-tagname-JIRA" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">JIRA</a></span></p><div id="articlebody" style="word-break: break-all; width: 627.1875px; margin: 0px auto; overflow: hidden; line-height: 1.8em; font-size: 12px; color: #333333; font-family: Arial, Helvetica, sans-serif; background-color: #ffffff;"><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　这种<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">文章</strong></u></a>其实不太想写，更愿意找一篇然后添加到自己的有道笔记里面收藏，但网上找的真心让我上火。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　不过不得不说一下，中国人真的很牛B，这软件啊，只要咱们想用，就肯定有人破解。对于做程序员的我来说，这是不是一种悲哀呢？用一个笑话来开题吧：</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　A：你们能不能不要这样？支持一下正版好不好？程序员也是要养家的</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　B：程序员哪来的家？</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　<strong style="word-break: break-all; line-height: normal !important;">　开始正题：</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　首先<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">jira</strong></u></a>就装5.0的吧，比这个版本高的通过网上找的方法也是可以破解的，但是插件管理是不可以用的。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　其实上火的就在这个地方，最刚开始是要搭一个jira+wiki。找了一个看到jira5.1.5+confluence5.3安装、破解、汉化一条龙服务的文档，于是屁颠屁颠的开始了。可是装上之后，怎么也找不到Jira中文代理上面看到的一种面板：Agile，后来自己点着点着，发现这是一个插件就是题目中提到的greenhopper。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　于是就开始各种安装啊，但是插件管理页面上面总有一行红字，意思就是说授权信息不对之类的。于是就开始找各种版本。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　吐糟的话就不多说了，下面开始正题了：</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　<strong style="word-break: break-all; line-height: normal !important;">Jira安装（简单说明）：</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　1.下载5.0windows安装版</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　2.安装，下一步到需要输入授权的地方</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　3.关闭Jira服务（开始&#8212;&gt;程序&#8212;&gt;Jira&#8212;&gt;Stop&#8230;）</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　<strong style="word-break: break-all; line-height: normal !important;">　Jira破解：</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　1.下载破解文件</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　2.将文件夹直接与Jira_home\atlassian-jira下的Web-Inf合并</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　3.开始Jira服务（开始&#8212;&gt;程序&#8212;&gt;Jira&#8212;&gt;Start&#8230;）</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　4.Jira license如下，其实ServerID需要改成你需要输入授权信息页上面显示的那个ServerID，别的维持原状就行。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 612px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">Description=JIRA\: longmaster</div><div style="word-break: break-all; margin: 10px 0px;">CreationDate=2010-02-22</div><div style="word-break: break-all; margin: 10px 0px;">ContactName=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">jira.LicenseEdition=ENTERPRISE</div><div style="word-break: break-all; margin: 10px 0px;">ContactEMail=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">Evaluation=false</div><div style="word-break: break-all; margin: 10px 0px;">jira.LicenseTypeName=COMMERCIAL</div><div style="word-break: break-all; margin: 10px 0px;">jira.active=true</div><div style="word-break: break-all; margin: 10px 0px;">licenseVersion=2</div><div style="word-break: break-all; margin: 10px 0px;">MaintenanceExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">Organisation=zzh</div><div style="word-break: break-all; margin: 10px 0px;">jira.NumberOfUsers=-1</div><div style="word-break: break-all; margin: 10px 0px;">ServerID=B25B-ZTQQ-8QU3-KFBS</div><div style="word-break: break-all; margin: 10px 0px;">LicenseID=LID</div><div style="word-break: break-all; margin: 10px 0px;">LicenseExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">PurchaseDate=2010-10-25</div></td></tr></tbody></table><br /><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><strong style="word-break: break-all; line-height: normal !important;">Jira汉化：</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　1.下载汉化包</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　2.将汉化包复制到：安装目录\Application Data\JIRA\plugins\installed-plugins</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.关闭Jira服务，再开启Jira服务就行了</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　GreenHopper安装和破解：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　1.下载GreenHopper</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　2.用管理员登录Jira</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.点击右上角的"Administrator"</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　4.选择插件（Plugins）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　5.点击install</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　6.上传插件</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　7.点击Manage Existing</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　8.找到GreenHopper，点config</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　9.输入如下内容，点add</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 975px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">Description=GreenHopper for JIRA 4\: longmaster</div><div style="word-break: break-all; margin: 10px 0px;">CreationDate=2010-02-21</div><div style="word-break: break-all; margin: 10px 0px;">ContactName=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.NumberOfUsers=-1</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.LicenseTypeName=COMMERCIAL</div><div style="word-break: break-all; margin: 10px 0px;">ContactEMail=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">Evaluation=false</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.LicenseEdition=ENTERPRISE</div><div style="word-break: break-all; margin: 10px 0px;">licenseVersion=2</div><div style="word-break: break-all; margin: 10px 0px;">MaintenanceExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">Organisation=zzhcool</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.active=true</div><div style="word-break: break-all; margin: 10px 0px;">LicenseID=LID</div><div style="word-break: break-all; margin: 10px 0px;">LicenseExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">PurchaseDate=2010-10-25</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　10.汉化的方式与jira的汉化方式一样，暂时还没有汉化的想法（我的jira也没有汉化），可以自己去网上</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　<strong style="word-break: break-all; line-height: normal !important;">　总结：</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　不论你是否会用这个做为项目管理软件，都应该看一下jira和confluence的软件设计，名门出身就是不一样~~~使用文档过两天项目不太紧的时候再来看怎样用吧，最近需要先Coding。</div></div></div> <div><div id="SL_button" class="ImTranslatorLogo" style="display: none; background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><div id="SL_shadow_translation_result2" style="display: none;"></div><div id="SL_shadow_translator" style="display: none;"><div id="SL_planshet" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png) #f4f5f5;"><div id="SL_TB"><div id="bubblelogo" class="ImTranslatorLogo" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><table cellspacing="1" border="0" id="SL_tables"><tbody><tr><td class="SL_td" align="left" width="20%"><div id="SL_lng_from">English&nbsp;&#187;</div></td><td class="SL_td" align="left" width="20%"><select id="SL_lng_to"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="bn">Bengali</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese&nbsp;(Simp)</option><option value="zh-TW">Chinese&nbsp;(Trad)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian&nbsp;Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="kn">Kannada</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option selected="" value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select></td><td class="SL_td" width="13%" align="center">&nbsp;</td><td class="SL_td" width="8%" align="center"><div id="SL_TTS_voice" title="Listen to the translation" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/tts-voice.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_copy" title="Select text" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/copy_hand.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_bbl_font_patch" onclick="alert('Not available for dictionary');"></div><div id="SL_bbl_font" title="Font size" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/font-off.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_TH" title="Translation history" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/history.png);"></div></td><td class="SL_td" width="5%"></td><td class="SL_td" width="8%" align="right"><div id="SL_pin" title="Pin pup-up bubble" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/pin-off.png);"></div></td></tr></tbody></table></div></div><div id="SL_shadow_translation_result" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg.png) #ffffff;"></div><div id="SL_bbl_donate" title="Make a small contribution" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/donate2.png);"></div><div id="SL_Balloon_options" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg3.png) #f4f5f5;"><a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/options-bbl.html" target="_blank" class="SL_options" title="Show options">Options</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/history.html" class="SL_options" title="Translation history" target="_blank">History</a>&nbsp;:&nbsp;<a href="http://about.imtranslator.net/add-ons/chrome-extension/" target="_blank" class="SL_options" title="ImTranslator Help">Help</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/feedback.html" class="SL_options" title="Feedback" target="_blank">Feedback</a></div><div id="SL_player"></div><div id="SL_alert100" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png);">Text-to-speech function is limited to 100 characters</div></div></div><img src ="http://www.blogjava.net/qileilove/aggbug/421651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-12-22 23:56 <a href="http://www.blogjava.net/qileilove/archive/2014/12/22/421651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jira5.0+greenhopper6.1.6的安装</title><link>http://www.blogjava.net/qileilove/archive/2014/12/22/421650.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 22 Dec 2014 15:55:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/12/22/421650.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/421650.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/12/22/421650.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/421650.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/421650.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 0.5em 0px 1.5em; padding: 0px; line-height: 19px; text-align: center; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">字体:&nbsp;&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">小</a>&nbsp;&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">中</a>&nbsp;&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">大</a>&nbsp; |&nbsp;<a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=up&amp;itemid=229485&amp;catid=96" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">上一篇</a>&nbsp;<a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=down&amp;itemid=229485&amp;catid=96" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;">下一篇</a>&nbsp;|&nbsp;<a target="_self" style="word-break: break-all; color: #202859;">打印</a>&nbsp; |&nbsp;<a href="http://bbs.51testing.com/thread-77515-1-1.html" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">我要投稿</a>&nbsp; |&nbsp;<span style="word-break: break-all;">推荐标签：&nbsp;<a href="http://www.51testing.com/?action-tag-tagname-%C8%ED%BC%FE%B2%E2%CA%D4%B9%A4%BE%DF" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">软件测试工具</a>&nbsp;<a href="http://www.51testing.com/?action-tag-tagname-JIRA" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">JIRA</a></span></p><div id="articlebody" style="word-break: break-all; width: 627.1875px; margin: 0px auto; overflow: hidden; line-height: 1.8em; font-size: 12px; color: #333333; font-family: Arial, Helvetica, sans-serif; background-color: #ffffff;"><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　这种<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">文章</strong></u></a>其实不太想写，更愿意找一篇然后添加到自己的有道笔记里面收藏，但网上找的真心让我上火。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　不过不得不说一下，中国人真的很牛B，这软件啊，只要咱们想用，就肯定有人破解。对于做程序员的我来说，这是不是一种悲哀呢？用一个笑话来开题吧：</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　A：你们能不能不要这样？支持一下正版好不好？程序员也是要养家的</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　B：程序员哪来的家？</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　<strong style="word-break: break-all; line-height: normal !important;">　开始正题：</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　首先<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">jira</strong></u></a>就装5.0的吧，比这个版本高的通过网上找的方法也是可以破解的，但是插件管理是不可以用的。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　其实上火的就在这个地方，最刚开始是要搭一个jira+wiki。找了一个看到jira5.1.5+confluence5.3安装、破解、汉化一条龙服务的文档，于是屁颠屁颠的开始了。可是装上之后，怎么也找不到Jira中文代理上面看到的一种面板：Agile，后来自己点着点着，发现这是一个插件就是题目中提到的greenhopper。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　于是就开始各种安装啊，但是插件管理页面上面总有一行红字，意思就是说授权信息不对之类的。于是就开始找各种版本。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　吐糟的话就不多说了，下面开始正题了：</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　<strong style="word-break: break-all; line-height: normal !important;">Jira安装（简单说明）：</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　1.下载5.0windows安装版</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　2.安装，下一步到需要输入授权的地方</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　3.关闭Jira服务（开始&#8212;&gt;程序&#8212;&gt;Jira&#8212;&gt;Stop&#8230;）</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　<strong style="word-break: break-all; line-height: normal !important;">　Jira破解：</strong></div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　1.下载破解文件</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　2.将文件夹直接与Jira_home\atlassian-jira下的Web-Inf合并</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　3.开始Jira服务（开始&#8212;&gt;程序&#8212;&gt;Jira&#8212;&gt;Start&#8230;）</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;">　　4.Jira license如下，其实ServerID需要改成你需要输入授权信息页上面显示的那个ServerID，别的维持原状就行。</div><div style="word-break: break-all; line-height: 1.8em !important; margin: 10px 0px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 612px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">Description=JIRA\: longmaster</div><div style="word-break: break-all; margin: 10px 0px;">CreationDate=2010-02-22</div><div style="word-break: break-all; margin: 10px 0px;">ContactName=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">jira.LicenseEdition=ENTERPRISE</div><div style="word-break: break-all; margin: 10px 0px;">ContactEMail=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">Evaluation=false</div><div style="word-break: break-all; margin: 10px 0px;">jira.LicenseTypeName=COMMERCIAL</div><div style="word-break: break-all; margin: 10px 0px;">jira.active=true</div><div style="word-break: break-all; margin: 10px 0px;">licenseVersion=2</div><div style="word-break: break-all; margin: 10px 0px;">MaintenanceExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">Organisation=zzh</div><div style="word-break: break-all; margin: 10px 0px;">jira.NumberOfUsers=-1</div><div style="word-break: break-all; margin: 10px 0px;">ServerID=B25B-ZTQQ-8QU3-KFBS</div><div style="word-break: break-all; margin: 10px 0px;">LicenseID=LID</div><div style="word-break: break-all; margin: 10px 0px;">LicenseExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">PurchaseDate=2010-10-25</div></td></tr></tbody></table><br /><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><strong style="word-break: break-all; line-height: normal !important;">Jira汉化：</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　1.下载汉化包</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　2.将汉化包复制到：安装目录\Application Data\JIRA\plugins\installed-plugins</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.关闭Jira服务，再开启Jira服务就行了</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　GreenHopper安装和破解：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　1.下载GreenHopper</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　2.用管理员登录Jira</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.点击右上角的"Administrator"</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　4.选择插件（Plugins）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　5.点击install</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　6.上传插件</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　7.点击Manage Existing</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　8.找到GreenHopper，点config</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　9.输入如下内容，点add</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 975px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">Description=GreenHopper for JIRA 4\: longmaster</div><div style="word-break: break-all; margin: 10px 0px;">CreationDate=2010-02-21</div><div style="word-break: break-all; margin: 10px 0px;">ContactName=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.NumberOfUsers=-1</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.LicenseTypeName=COMMERCIAL</div><div style="word-break: break-all; margin: 10px 0px;">ContactEMail=zzhcool@126.com</div><div style="word-break: break-all; margin: 10px 0px;">Evaluation=false</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.LicenseEdition=ENTERPRISE</div><div style="word-break: break-all; margin: 10px 0px;">licenseVersion=2</div><div style="word-break: break-all; margin: 10px 0px;">MaintenanceExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">Organisation=zzhcool</div><div style="word-break: break-all; margin: 10px 0px;">greenhopper.active=true</div><div style="word-break: break-all; margin: 10px 0px;">LicenseID=LID</div><div style="word-break: break-all; margin: 10px 0px;">LicenseExpiryDate=2099-10-24</div><div style="word-break: break-all; margin: 10px 0px;">PurchaseDate=2010-10-25</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　10.汉化的方式与jira的汉化方式一样，暂时还没有汉化的想法（我的jira也没有汉化），可以自己去网上</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　<strong style="word-break: break-all; line-height: normal !important;">　总结：</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　不论你是否会用这个做为项目管理软件，都应该看一下jira和confluence的软件设计，名门出身就是不一样~~~使用文档过两天项目不太紧的时候再来看怎样用吧，最近需要先Coding。</div></div></div> <div><div id="SL_button" class="ImTranslatorLogo" style="display: none; background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><div id="SL_shadow_translation_result2" style="display: none;"></div><div id="SL_shadow_translator" style="display: none;"><div id="SL_planshet" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png) #f4f5f5;"><div id="SL_TB"><div id="bubblelogo" class="ImTranslatorLogo" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><table cellspacing="1" border="0" id="SL_tables"><tbody><tr><td class="SL_td" align="left" width="20%"><div id="SL_lng_from">English&nbsp;&#187;</div></td><td class="SL_td" align="left" width="20%"><select id="SL_lng_to"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="bn">Bengali</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese&nbsp;(Simp)</option><option value="zh-TW">Chinese&nbsp;(Trad)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian&nbsp;Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="kn">Kannada</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option selected="" value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select></td><td class="SL_td" width="13%" align="center">&nbsp;</td><td class="SL_td" width="8%" align="center"><div id="SL_TTS_voice" title="Listen to the translation" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/tts-voice.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_copy" title="Select text" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/copy_hand.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_bbl_font_patch" onclick="alert('Not available for dictionary');"></div><div id="SL_bbl_font" title="Font size" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/font-off.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_TH" title="Translation history" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/history.png);"></div></td><td class="SL_td" width="5%"></td><td class="SL_td" width="8%" align="right"><div id="SL_pin" title="Pin pup-up bubble" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/pin-off.png);"></div></td></tr></tbody></table></div></div><div id="SL_shadow_translation_result" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg.png) #ffffff;"></div><div id="SL_bbl_donate" title="Make a small contribution" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/donate2.png);"></div><div id="SL_Balloon_options" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg3.png) #f4f5f5;"><a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/options-bbl.html" target="_blank" class="SL_options" title="Show options">Options</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/history.html" class="SL_options" title="Translation history" target="_blank">History</a>&nbsp;:&nbsp;<a href="http://about.imtranslator.net/add-ons/chrome-extension/" target="_blank" class="SL_options" title="ImTranslator Help">Help</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/feedback.html" class="SL_options" title="Feedback" target="_blank">Feedback</a></div><div id="SL_player"></div><div id="SL_alert100" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png);">Text-to-speech function is limited to 100 characters</div></div></div><img src ="http://www.blogjava.net/qileilove/aggbug/421650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-12-22 23:55 <a href="http://www.blogjava.net/qileilove/archive/2014/12/22/421650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jira迁移及内存调整</title><link>http://www.blogjava.net/qileilove/archive/2014/11/12/419946.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 12 Nov 2014 02:08:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/11/12/419946.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/419946.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/11/12/419946.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/419946.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/419946.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　目前公司研发使用<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">jira</strong></u></a>软件进行<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">项目管理</strong></u></a>，安装了GreenHopper，JIRA Subversion plugin，Links Hierarchy Reports等插件。jira数据库采用oracle 11g。由于历史原因，采用的<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">操作系统</strong></u></a>版本为windows&nbsp;<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">server</strong></u></a>&nbsp;2008 32位。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">一：新需求汇总：</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　1: 把jira迁移到windows server 2008 64位的新服务器上</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　2：新安装fisheye插件并解决授权问题</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　3: jira,fisheye,svn的整合</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　4：调整jira的运行内存</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　二：操作步骤及注意事项</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　1：新服务器上安装jira软件，安装路径务必同旧服务器保持一致，否则会出现插件缺失的情况！要采用和旧服务器同样的jira软件版本，这里采用jira版本4.4.5</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　2：下载并安装64位jdk,这里采用<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">java</strong></u></a>版本1.6.0_43</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　C:\Users\Administrator&gt;java -version</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　java version "1.6.0_43"</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　Java(TM) SE Runtime Environment (build 1.6.0_43-b01)</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　3：下载并安装fisheye,这里采用fisheye-2.4.3版本，下载完成后解压运行bin目录下的start.bat即可启动。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=49291" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357221NGVF.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　4：fisheye授权问题，参考<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">百度</strong></u></a>文库链接即可！</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; text-align: center; background-color: #ffffff;">　<a href="http://www.51testing.com/batch.download.php?aid=49293" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357223aOai.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　5：jira同fisheye以及svn的整合</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　进入jira的管理员页面，点击源代码控制，点击fisheye configuration标签进行整合</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=49294" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357224bPHb.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=49295" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357225S2mf.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px; text-align: left;">　6:调整jira运行内存</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px; text-align: left;">　　可参考jira官方文档</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px;"><a href="http://www.51testing.com/batch.download.php?aid=49296" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357226jWgU.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px;"><a href="http://www.51testing.com/batch.download.php?aid=49297" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357227dnp7.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px;"><a href="http://www.51testing.com/batch.download.php?aid=49298" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_2014111113572288S8A.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px; text-align: left;">　　7：其他问题</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px; text-align: left;">　　调整完内存，发现启动jira服务报如下错误！</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px; text-align: left;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 975px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">　　调整完内存，发现启动jira服务报如下错误！</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [info] &nbsp;Commons Daemon procrun (1.0.5.0 32-bit) started</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [info] &nbsp;Running 'JIRA180214141702' Service...</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [info] &nbsp;Starting service...</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [error] %1 不是有效的 Win32 应用程序。</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [error] Failed creating java C:\Program Files (x86)\Java</div><div style="word-break: break-all; margin: 10px 0px;">　　\jdk1.6.0_43\jre\bin\server\jvm.dll</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [error] %1 不是有效的 Win32 应用程序。</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [error] ServiceStart returned 1</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [error] %1 不是有效的 Win32 应用程序。</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [info] &nbsp;Run service finished.</div><div style="word-break: break-all; margin: 10px 0px;">　　[2014-02-21 09:59:09] [info] &nbsp;Commons Daemon procrun finished</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px; text-align: left;">　　于是采用bat脚本方式调度jira和fisheye的启动和关闭!</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px;"><a href="http://www.51testing.com/batch.download.php?aid=49299" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357229X08G.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px;"><a href="http://www.51testing.com/batch.download.php?aid=49300" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_2014111113572210o2Fr.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px; text-align: left;">　　使用fisheye可以在jira上直接查看svn个更新情况，但需要svn提交的时候写上对应jira问题的标签</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-size: 11.8181819915771px;"><a href="http://www.51testing.com/batch.download.php?aid=49292" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/11/14982672_201411111357222HZAs.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div></a></div> <div><div id="SL_button" class="ImTranslatorLogo" style="display: none; background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><div id="SL_shadow_translation_result2" style="display: none;"></div><div id="SL_shadow_translator" style="display: none;"><div id="SL_planshet" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png) #f4f5f5;"><div id="SL_TB"><div id="bubblelogo" class="ImTranslatorLogo" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><table cellspacing="1" border="0" id="SL_tables"><tbody><tr><td class="SL_td" align="left" width="20%"><div id="SL_lng_from">English&nbsp;&#187;</div></td><td class="SL_td" align="left" width="20%"><select id="SL_lng_to"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="bn">Bengali</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese&nbsp;(Simp)</option><option value="zh-TW">Chinese&nbsp;(Trad)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian&nbsp;Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="kn">Kannada</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option selected="" value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select></td><td class="SL_td" width="13%" align="center">&nbsp;</td><td class="SL_td" width="8%" align="center"><div id="SL_TTS_voice" title="Listen to the translation" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/tts-voice.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_copy" title="Select text" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/copy_hand.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_bbl_font_patch" onclick="alert('Not available for dictionary');"></div><div id="SL_bbl_font" title="Font size" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/font-off.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_TH" title="Translation history" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/history.png);"></div></td><td class="SL_td" width="5%"></td><td class="SL_td" width="8%" align="right"><div id="SL_pin" title="Pin pup-up bubble" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/pin-off.png);"></div></td></tr></tbody></table></div></div><div id="SL_shadow_translation_result" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg.png) #ffffff;"></div><div id="SL_bbl_donate" title="Make a small contribution" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/donate2.png);"></div><div id="SL_Balloon_options" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg3.png) #f4f5f5;"><a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/options-bbl.html" target="_blank" class="SL_options" title="Show options">Options</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/history.html" class="SL_options" title="Translation history" target="_blank">History</a>&nbsp;:&nbsp;<a href="http://about.imtranslator.net/add-ons/chrome-extension/" target="_blank" class="SL_options" title="ImTranslator Help">Help</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/feedback.html" class="SL_options" title="Feedback" target="_blank">Feedback</a></div><div id="SL_player"></div><div id="SL_alert100" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png);">Text-to-speech function is limited to 100 characters</div></div></div><img src ="http://www.blogjava.net/qileilove/aggbug/419946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-11-12 10:08 <a href="http://www.blogjava.net/qileilove/archive/2014/11/12/419946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多个常见代码设计缺陷</title><link>http://www.blogjava.net/qileilove/archive/2014/10/30/419240.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Thu, 30 Oct 2014 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/10/30/419240.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/419240.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/10/30/419240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/419240.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/419240.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　0、前言</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　在软件设计开发中，代码的设计都体现在：子系统与子系统、模块与模块、函数与函数之间的关系，设计越糟糕的软件，维护成本越高，质量也往往难以达标和称赞。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　好的设计必定是：层次关系简洁、清晰、易维护和扩展的。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　不会研究太高深的设计，只总结出一些常见的代码设计缺陷，这些设计缺陷如能很好的解决和避免，相信代码能力（编写、设计、评审、重构）能提高一个档次。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">主要介绍下面15个常见代码设计缺陷：</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=49038" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/10/14982672_201410281301481zIq3.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　1、复杂函数（Blob Operation）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：指的是代码行多，分支嵌套深，变量多，参数多，注释多，复杂度高等特征的函数。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：函数不易理解和维护，代码重复、冗余。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：新开发代码时，函数都是越写越复杂的，应该要有意识地、积极地去分解提炼成小函数或独立功能的函数，甚至当感觉需要以注释来说明点什么的时候，这时其实就应该独立成一个函数。函数建议值：代码行24，if语嵌套深度6，圈复杂度10，功能应该单一。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　2、数据泥团（Data Clumps）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：函数的参数多且参数列表相似，反复调用相同的参数列表。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：大量重复，影响编译的效率；参数多，很难理解和调用。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：参数列表应该封装成结构。建议值：函数参数平均为2，避免5个以上。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　伪码示例：GetDate(int year,int month,int day,int time) -&gt; GetDate(struct DateRange)。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　3、不必要的耦合（Unnecessary Coupling）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：包含某个头文件，但是却没有使用头文件中任何内容。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：编译链接速度慢，耦合度高，头文件错误包含，如包含某个头文件却没有使用里面的内容，某个头文件却依赖某个dll，则会引起不必要的dll依赖和错误。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：头文件不能乱包含，100%确认每个包含的头文件使用情况，删除不必要包含的头文件。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　4、过度耦合（Intensiue Coupling）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：一个函数调用大量其它模块的函数，却调用很少本模块的函数。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：一个函数与多个函数（这些函数属于少数一两个类）联系过于紧密；一个类提供了很多函数给外部某个函数调用；耦合度高，类不够抽象。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：识别内、外部模块函数，外部模块要足够抽象调用。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　5、循环依赖（Cyclic Dependencies）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：多个子系统处于一个环状互相依赖关系里面；函数的调用关系混乱、循环；文件直接或间接交叉引用。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：不易理解和维护，编译慢，关系混乱，重用困难。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：多文件或系统间要划分清楚结构、层次关系，应做到无环依赖。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　伪码示例：循环包含头文件，file A包含file B,而file B又包含了file A。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">6、依恋情节（Feature Envy）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：函数很少访问自己模块数据，总是访问外部模块数据；访问自己模块少，访问其它模块多；数据和操作不在同一模块；对其它类的数据比较感兴趣。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：耦合度高。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：同一模块的数据和操作应该放在一起。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">7、重复代码（Repeat code）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：不同模块或文件间有类似或重复功能的类；不同类间有类似或重复功能的函数；同一父类的子类间存在相似或重复功能的代码。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：代码膨胀混乱，不易维护，本来维护一处代码由于重复代码要维护多处。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：提炼重复代码。如工具函数封装成工具类，通用功能封装成公共库。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　8、不稳定依赖（Unstable Dependencies）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：一个子系统或模块依赖于另一个比它更不稳定的子系统或模块，如上层模块依赖于不稳定的底层模块，上层模块肯定会问题不断。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：不独立，不稳定，牵一发而动全身。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：当有依赖关系时，一定要先保证被依赖子系统或模块的稳定性。至少应保证不稳定的子系统要依赖稳定的子系统。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">9、未利用的接口（Underutiliaed Interface）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷特征：设计并实现了很多接口，大部分未使用或只在内部使用；定义了很多全局变量，大部分其它模块未使用。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺陷影响：冗余，设计过度，暴露可视化。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决方法：按需设计接口，不需要对外公开的变量和函数应该私有化。<br /><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;"><strong style="word-break: break-all; line-height: normal !important;">　10、紊乱类（Schizophrenic Class）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷特征：一个类实现了多个不同的功能，如界面类又处理了业务相关的功能。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷影响：不易理解，耦合度高，公共方法太多。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　解决方法：对多个功能进行拆分。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　<strong style="word-break: break-all; line-height: normal !important;">　11、复杂类（Blob Class）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷特征：规模非常庞大、复杂性高的类，常常包含多个复杂函数，有多重功能。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷影响：圈复杂度高，内聚性差，耦合度高，不易看懂和维护。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　解决方法：解决复杂函数，结构要清晰，类功能应该单一。建议值：类行数应在2000以内。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　<strong style="word-break: break-all; line-height: normal !important;">　12、全能类（God Class）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷特征：一个类集中了多个不相关类的功能；一个类操作其它模块数据太多；大而复杂。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷影响：破坏了类的封装性，耦合度高，内聚性差，不易维护。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　解决方法：多个功能不相关的类应该分别封装成不同的类，适当搬移函数，解决复杂函数问题。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　<strong style="word-break: break-all; line-height: normal !important;">　13、歪曲层次（Distorted Hierarchy）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷特征：类的继承关系比较深。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷影响：复杂度高，不易维护。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　解决方法：类的继承层次结构不应该超过6。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　<strong style="word-break: break-all; line-height: normal !important;">14、数据类（Data Class）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷特征：提供许多公共属性和函数，供很多其它类来操作，自己却很少操作。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷影响：非面向对象，缺乏封装性，不易维护。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　解决方法：封装性。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　<strong style="word-break: break-all; line-height: normal !important;">　15、破坏继承（Tradition Breaker）</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷特征：派生类几乎没有使用任何继承父类的功能，却增加了全新的功能。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　缺陷影响：非继承关系却继承，难理解，不易维护。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　解决方法：理清类与类之间的继承关系，不适合继承关系的类应该单独分开。</div></div> <div><div id="SL_button" class="ImTranslatorLogo" style="display: none; background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><div id="SL_shadow_translation_result2" style="display: none;"></div><div id="SL_shadow_translator" style="display: none;"><div id="SL_planshet" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png) #f4f5f5;"><div id="SL_TB"><div id="bubblelogo" class="ImTranslatorLogo" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><table cellspacing="1" border="0" id="SL_tables"><tbody><tr><td class="SL_td" align="left" width="20%"><div id="SL_lng_from">English&nbsp;&#187;</div></td><td class="SL_td" align="left" width="20%"><select id="SL_lng_to"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="bn">Bengali</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese&nbsp;(Simp)</option><option value="zh-TW">Chinese&nbsp;(Trad)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian&nbsp;Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="kn">Kannada</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option selected="" value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select></td><td class="SL_td" width="13%" align="center">&nbsp;</td><td class="SL_td" width="8%" align="center"><div id="SL_TTS_voice" title="Listen to the translation" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/tts-voice.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_copy" title="Select text" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/copy_hand.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_bbl_font_patch" onclick="alert('Not available for dictionary');"></div><div id="SL_bbl_font" title="Font size" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/font-off.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_TH" title="Translation history" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/history.png);"></div></td><td class="SL_td" width="5%"></td><td class="SL_td" width="8%" align="right"><div id="SL_pin" title="Pin pup-up bubble" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/pin-off.png);"></div></td></tr></tbody></table></div></div><div id="SL_shadow_translation_result" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg.png) #ffffff;"></div><div id="SL_bbl_donate" title="Make a small contribution" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/donate2.png);"></div><div id="SL_Balloon_options" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg3.png) #f4f5f5;"><a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/options-bbl.html" target="_blank" class="SL_options" title="Show options">Options</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/history.html" class="SL_options" title="Translation history" target="_blank">History</a>&nbsp;:&nbsp;<a href="http://about.imtranslator.net/add-ons/chrome-extension/" target="_blank" class="SL_options" title="ImTranslator Help">Help</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/feedback.html" class="SL_options" title="Feedback" target="_blank">Feedback</a></div><div id="SL_player"></div><div id="SL_alert100" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png);">Text-to-speech function is limited to 100 characters</div></div></div><img src ="http://www.blogjava.net/qileilove/aggbug/419240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-10-30 11:31 <a href="http://www.blogjava.net/qileilove/archive/2014/10/30/419240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用户体验质量控制体系</title><link>http://www.blogjava.net/qileilove/archive/2014/10/30/419236.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Thu, 30 Oct 2014 03:27:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/10/30/419236.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/419236.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/10/30/419236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/419236.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/419236.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">许多刚开始接触用户体验概率的企业非常希望能有一套标准体系，照做就可以保证产品的优质用户体验。其实，有许多讲解用户体验评估要素和方法的公开资源，那么为什么还是只有少数产品拥有优质的用户体验呢？这其中有什么&#8220;秘密&#8221;？</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">用户体验质量的基础要素</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　有用性。满足用户的需求，为用户解决实际问题，给用户带来价值。比如开发者需要明确输入法产品的主要功用是帮助用户在<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">手机</strong></u></a>上进行更快的文字输入，而不是在手机上进行文字输入的同时利用手势动作给手机充电。当然，产品不一定只能围绕用户的现有需求。事实上很多优秀的产品就是通过创造性地发掘用户需求并解决，从而为产品带来巨大价值。比如，直观的触摸控制、随时随地连接网络、利用随身携带的<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">移动</strong></u></a>设备，做以往需要通过不同设备才能实现的事情，当这些用户需求被创造性地发掘、整合和满足时，就出现了iPhone这样划时代的产品。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　可用性/易用性。这是用户体验中最核心也是最庞杂的部分，包括可识别、可理解、可预测、掌控感、及时反馈、操作连续、一致性、稳定、可靠、效率、使用疲劳度、易记忆、避免用户犯错并宽容对待用户错误等内容。可用性不仅包括界面设计，也包括产品的整体表现。比如产品是否使用流畅、稳定，就是典型的涉及产品整体表现的例子。另外，在不同的使用情景下，可用性的侧重点也不同。比如坐在办公室中用手机拨打电话和开车时用手机拨打电话，对产品可用性的要求就不同，相应的对产品的要求也不同。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　感性满意度：给予用户美感、愉悦或其他特定感受（比如游戏中的紧张感），给予用户成就感或被关注、被尊重等感受。这些感受甚至可以延伸到产品之外，比如让用户觉得自己使用某个产品，在朋友圈里就显得很牛。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　激发性。经典的用户体验评估主要包括以上三种要素，但随着Web 2.0、社交网络的兴起，在融入了分享和社交元素的产品以及很多游戏和探索创造型产品（比如绘图、音乐创作等）中，可以引入一个新的基础要素，用来评估产品激发用户进行探索、创造、分享、互动的活跃程度。用户的这些行为已经超越了单纯的把产品作为工具使用的概念，而是把产品作为一个平台，发挥自己的能力和潜力，和其他用户一起产生聚变的力量。营造这种用户体验的要素，我称之为激发性。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=48849" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/10/14982672_201410171348111q9Px.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; text-align: center; background-color: #ffffff;">　　用户体验<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">质量控制</strong></u></a>体系</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">实际产品的常见问题</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　在实际产品中，最容易判断却又最常见的是和可用性有关的问题。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺乏重点和引导。用户进入页面，看到的东西很多，却不知道从何入手、该做什么，或者重要的功能被隐藏起来让用户很难发现。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　缺乏明确的规则和一致性。如一个界面上的部分文字或图案可以点击、另一部分文字或图案不能点击；有些操作自动保存、有些操作默认不保存；同一个功能的按钮在不同界面上位置不同、或者形态不同。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　界面设计容易引起误操作。当用户发现时已造成了严重后果，或者让用户产生困惑。其次，经常会出现和感性满意度相关的问题。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　犯基础设计错误。对界面元素的色彩、段落的排布、字体的选取过于随意，是最容易让产品显得不专业的几个方面。<br /><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　采用与产品气质不符的视觉设计。把轻量的网络应用设计成层次复杂、质感厚重，或者在精致的界面中突然出现一个简陋的系统自带控件，以及抄袭其他知名产品的设计。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　为形式而形式。故意做一些很酷的效果，而不是为了更好地实现功能，甚至影响正常操作。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　然而，并不是仅仅依照这些用户体验要素定制产品就一定能获得优质的用户体验。首先，不同类型的产品需要不同的用户体验要素评价标准。比如工具类产品需要提高完成任务的效率，而游戏类产品反而可能需要降低完成任务的效率。面向普通用户的产品往往强调简洁易用，而企业级产品最重要的特质是稳定和可靠，反而要把操作做得复杂，反复确认以避免误操作；其次，即便是同一产品，在不同的使用情景下，可用性的侧重点也不同，需要全局化平衡考量；再次，在企业的不同发展阶段，需要制订相应的用户体验评价标准。比如有些产品在发展初期需要重点积累种子用户，用户体验侧重于让这些特殊的种子用户满意。而到了快速成长期，重点变为大量发展普通用户，用户体验就会变为兼顾普通用户和种子用户的需求。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　要做好产品的用户体验质量控制，第一件事是想清楚产品究竟需要什么样的用户体验：怎样的用户，在何种情景下，用产品做什么；产品的用户体验近期目标和长期目标是什么。由此再去组织资源，制订工作流程，以及考评和激励手段。同时，用户体验的质量控制不能只靠评估。如果产品在研发过程中没有用户体验力量的参与，而在随后的评估中发现了问题，常常意味着大量的工作需要推倒重来，可往往已经没有时间进行修正了。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;"><strong style="word-break: break-all; line-height: normal !important;">　　用户体验质量监控体系</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　用户体验质量控制体系不仅仅是产品完成时的检验，而应成为贯穿研发过程始终的工作。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　在研发过程中，让用户体验工作尽早开始。进行访谈、焦点小组（Focus Group）、跟踪观察（Field Study或Diary Study）、问卷、数据分析等用户研究、基于用户体验的竞品分析，快速形成产品概念。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　快速设计、快速检验。充分进行设计探索，将设计想法做成效果图或原型，及早请目标用户进行测试，根据反馈快速改进方案。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　有条件的团队可以请资深的产品和用户体验人员组成委员会，定期开用户体验评审会（UX/UI review）。有时，资浅但是不属于这个项目团队的产品人员或用户体验人员提出新鲜的意见和建议。同时，用户体验评审会也是资浅人员观察学习资深人员分析问题、讨论问题的好场所。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　请非项目组成员的用户体验人员详细试用和评估产品（Cognitive Walkthrough）。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　在产品中预埋监测点。等产品上线后收集用户数据，或者主动进行对比实验（A/B test），分析数据作为产品改进的依据。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　建立通畅的用户反馈渠道，以及鼓励用户反馈的机制。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　根据产品特质、用户特点、使用情景、产品发展阶段，选择相应方法、流程、评估要素，在研发过程中推动用户体验工作，就是质量控制体系保证用户体验质量的秘密。</div></div> <div><div id="SL_button" class="ImTranslatorLogo" style="display: none; background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><div id="SL_shadow_translation_result2" style="display: none;"></div><div id="SL_shadow_translator" style="display: none;"><div id="SL_planshet" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png) #f4f5f5;"><div id="SL_TB"><div id="bubblelogo" class="ImTranslatorLogo" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/imtranslator-s.png);"></div><table cellspacing="1" border="0" id="SL_tables"><tbody><tr><td class="SL_td" align="left" width="20%"><div id="SL_lng_from">English&nbsp;&#187;</div></td><td class="SL_td" align="left" width="20%"><select id="SL_lng_to"><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="bn">Bengali</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese&nbsp;(Simp)</option><option value="zh-TW">Chinese&nbsp;(Trad)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="eo">Esperanto</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="gu">Gujarati</option><option value="ht">Haitian&nbsp;Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="kn">Kannada</option><option value="ko">Korean</option><option value="lo">Lao</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option selected="" value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select></td><td class="SL_td" width="13%" align="center">&nbsp;</td><td class="SL_td" width="8%" align="center"><div id="SL_TTS_voice" title="Listen to the translation" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/tts-voice.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_copy" title="Select text" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/copy_hand.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_bbl_font_patch" onclick="alert('Not available for dictionary');"></div><div id="SL_bbl_font" title="Font size" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/font-off.png);"></div></td><td class="SL_td" width="8%" align="center"><div id="SL_TH" title="Translation history" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/history.png);"></div></td><td class="SL_td" width="5%"></td><td class="SL_td" width="8%" align="right"><div id="SL_pin" title="Pin pup-up bubble" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/pin-off.png);"></div></td></tr></tbody></table></div></div><div id="SL_shadow_translation_result" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg.png) #ffffff;"></div><div id="SL_bbl_donate" title="Make a small contribution" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/donate2.png);"></div><div id="SL_Balloon_options" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg3.png) #f4f5f5;"><a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/options-bbl.html" target="_blank" class="SL_options" title="Show options">Options</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/history.html" class="SL_options" title="Translation history" target="_blank">History</a>&nbsp;:&nbsp;<a href="http://about.imtranslator.net/add-ons/chrome-extension/" target="_blank" class="SL_options" title="ImTranslator Help">Help</a>&nbsp;:&nbsp;<a href="chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/feedback.html" class="SL_options" title="Feedback" target="_blank">Feedback</a></div><div id="SL_player"></div><div id="SL_alert100" style="background: url(chrome-extension://noaijdpnepcgjemiklgfkcfbkokogabh/img/util/bg2.png);">Text-to-speech function is limited to 100 characters</div></div></div><img src ="http://www.blogjava.net/qileilove/aggbug/419236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-10-30 11:27 <a href="http://www.blogjava.net/qileilove/archive/2014/10/30/419236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>把质量控制工作往前推进(1)—安装sonarqube</title><link>http://www.blogjava.net/qileilove/archive/2014/10/15/418728.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 15 Oct 2014 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/10/15/418728.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/418728.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/10/15/418728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/418728.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/418728.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">以前关注点一直在怎么提高应用程序的质量，没太在意代码级别的质量。最近因为某些因素的推动，需要关注到代码级别的质量去，把质量<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>尽量往前推，也符合质量控制的原则。 &nbsp;试用了一下<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">sonarqube</strong></u></a>(老版本的叫sonar,ww.sonarqube.org)，对代码的提升的确有很多的作用，sonarqube能从7个维度来对代码质量进行度量。多大的作用，大家实践下就很容易看出来。尤其是建议大家把rules里面的说明和例子都好好看看，对以后自己写代码的时候，质量提高有很大好处。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">Sonarqube安装：</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　Sonarqube一共分3 部分:</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　以下安装步骤是<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Linux</strong></u></a>下的安装示例</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">数据库</strong></u></a>:</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　这里我用的是<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">mysql</strong></u></a>数据库，直接执行<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">SQL</strong></u></a>：</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　CREATEDATABASEsonarCHARACTERSETutf8COLLATEutf8_general_ci;</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　赋予后面连接sonarqube的数据库用户读写权限即可</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">&nbsp; &nbsp;web服务： &nbsp;修改sonarqube/conf/sonar.properties</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 612.727233886719px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;"># Permissions to create tables, indices and triggers must be granted to JDBC user.</div><div style="word-break: break-all; margin: 10px 0px;"># The schema must be created first.</div><div style="word-break: break-all; margin: 10px 0px;">sonar.jdbc.username=mysql_username</div><div style="word-break: break-all; margin: 10px 0px;">sonar.jdbc.password=mysql_password</div><div style="word-break: break-all; margin: 10px 0px;"># Comment the following line to deactivate the default embedded database.</div><div style="word-break: break-all; margin: 10px 0px;">#sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar</div><div style="word-break: break-all; margin: 10px 0px;">#----- MySQL 5.x</div><div style="word-break: break-all; margin: 10px 0px;"># Comment the embedded database and uncomment the following line to use MySQL</div><div style="word-break: break-all; margin: 10px 0px;">sonar.jdbc.url=jdbc:mysql://192.168.22.99:3306/sonarqube?useUnicode=true&amp;characterEncoding=utf8&amp;rewriteBatchedStatements=t</div><div style="word-break: break-all; margin: 10px 0px;">sonar.web.host=0.0.0.0</div><div style="word-break: break-all; margin: 10px 0px;">sonar.web.context=/sonarqube</div><div style="word-break: break-all; margin: 10px 0px;">sonar.web.port=9001</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　sonarqube自带<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">web</strong></u></a>服务器，性能也足够好，不需要配置tomcat什么的，到这里整个sonar web服务配置完成了，到sonarqube/bin/linux-x86-64目录下，启动./sonar.sh start即可，启动后有任何问题可以查看log: sonarqube/logs/sonar.log, 通过浏览器访问http://192.168.22.99:9001/sonarqube, 打开登陆页面，默认管理员账户是admin/admin</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">分析器：</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　Sonarqube通过插件 支持20+种语言， Java, python, C#, C/C++, PL/SQL, Cobol等， 但C语言的插件是收费的。到这里http://docs.codehaus.org/display/SONAR/Plugin+Library 下载对应语言的插件，放置到sonarqube/extensions/plugins目录下，重启web服务即可。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">分析器主要5种：</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　SonarQube Runner(万能，支持后面几种方式的工程)，</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　Maven（和maven编译工程集成），</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　SonarQube Ant Task（和ant编译工程集成），</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　Gradle（和Gradle编译工具集成，很少听过），</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　CI Engine（主要和Jenkins ， Hudson等CI工具集成）。<br /><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">以下主要讲Sonarqube runner分析器的使用：</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　下载Sonarqube 分析器：http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+SonarQube+Runner， 解压后修改conf目录下的sonar-runner.properties， 如下例子。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;"><table align="center" style="word-break: break-all; border-style: solid; border-color: #999999; width: 612.727233886719px; font-size: 12px; background-color: #dddddd;"><tbody style="word-break: break-all;"><tr style="word-break: break-all;"><td style="word-break: break-all;"><div style="word-break: break-all; margin: 10px 0px;">#----- Default SonarQube server</div><div style="word-break: break-all; margin: 10px 0px;">sonar.host.url=http://192.168.23.94:9001/sonarqube</div><div style="word-break: break-all; margin: 10px 0px;">#----- PostgreSQL</div><div style="word-break: break-all; margin: 10px 0px;">#sonar.jdbc.url=jdbc:postgresql://localhost/sonar</div><div style="word-break: break-all; margin: 10px 0px;">#----- MySQL</div><div style="word-break: break-all; margin: 10px 0px;">sonar.jdbc.url=jdbc:mysql://192.168.23.99:3306/sonarqube_qa?useUnicode=true&amp;characterEncoding=utf8</div><div style="word-break: break-all; margin: 10px 0px;">#----- Oracle</div><div style="word-break: break-all; margin: 10px 0px;">#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE</div><div style="word-break: break-all; margin: 10px 0px;">#----- Microsoft SQLServer</div><div style="word-break: break-all; margin: 10px 0px;">#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor</div><div style="word-break: break-all; margin: 10px 0px;">#----- Global database settings</div><div style="word-break: break-all; margin: 10px 0px;">sonar.jdbc.username=mysql_username</div><div style="word-break: break-all; margin: 10px 0px;">sonar.jdbc.password=mysql_password</div><div style="word-break: break-all; margin: 10px 0px;">#----- Default source code encoding</div><div style="word-break: break-all; margin: 10px 0px;">sonar.sourceEncoding=UTF-8</div><div style="word-break: break-all; margin: 10px 0px;">#----- Security (when 'sonar.forceAuthentication' is set to 'true')</div><div style="word-break: break-all; margin: 10px 0px;">sonar.login=admin</div><div style="word-break: break-all; margin: 10px 0px;">sonar.password=admin</div></td></tr></tbody></table></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　把sonarruner/bin加入到path目录下，在环境变量里面加上SONAR_RUNNER_HOME="/home//sonarruner"。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　到这里整个Sonarqube的运行环境就全部配置完成了，下一篇讲解怎么运行分析器。</div></div><img src ="http://www.blogjava.net/qileilove/aggbug/418728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-10-15 09:49 <a href="http://www.blogjava.net/qileilove/archive/2014/10/15/418728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在wamp下安装bugfree</title><link>http://www.blogjava.net/qileilove/archive/2014/10/13/418662.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 13 Oct 2014 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/10/13/418662.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/418662.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/10/13/418662.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/418662.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/418662.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">1.wamp安装，</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　wamp的安装时相当简单的了</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　2.如果出现问题，请修改配置</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　1）打开wamp安装目录，搜一下 httpd.conf 这个文件，找到后打开；</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　2）搜一下&#8220;LoadModule rewrite_module modules/mod_rewrite.so&#8221;，找到这一行，去掉前面的&#8220;#&#8221;；</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　3）deny from all 全部修改为 Allow from all</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　4）然后在php.ini文件中查找"pdo"，你就可以一下找到 &nbsp;;extension=php_pdo.dll &nbsp;这一行，看这行前面是否有分号，如果有的话，把它去掉。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　5）然后找找有没有 &nbsp;extension=php_pdo_mysql.dll &nbsp; 如果有，同样去掉前面的分号。如果没有，则手动添加上</div><img src ="http://www.blogjava.net/qileilove/aggbug/418662.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-10-13 09:53 <a href="http://www.blogjava.net/qileilove/archive/2014/10/13/418662.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>缺陷管理、分类、提交</title><link>http://www.blogjava.net/qileilove/archive/2014/10/13/418663.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 13 Oct 2014 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/10/13/418663.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/418663.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/10/13/418663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/418663.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/418663.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">一、<a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;">bug</strong></u></a>管理</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　目前管理bug工具众多， 只要符合方便公司的<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>流， 就可以采用。比如有：Bugzilla，B/S架构的mantis TestCenter</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　工具各异，但是bug管理流程具有共通性，一般有如下流程：</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　处理状态:</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　未确认 新建 已分派 再开启 已确认 已关闭</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解决状态:</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　已解决 &nbsp;无效的 &nbsp;wontfix不被修改 &nbsp; 保留 &nbsp; 重复 &nbsp; worksforme暂时不重现</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">二、bug类型说明</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　1、Bug错误类型</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　阻碍开发和/或<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>工作</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　死机，丢失数据，内存溢出较大的功能缺陷</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　业务逻辑错误</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　配置问题</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　客户端代码/js/ajax问题</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　版本与兼容性问题</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　用户界面</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　建议或意见</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　2、重现概率</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　必然出现</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　有规律出现</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　无规律出现</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　只出现一次</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　3、 bug缺陷级别</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　致命、严重、一般、较小</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　4、 bug优先级别</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　严重strategic、高high、中normal、低low</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　三、提交bug</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　必要元素有：</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　bug摘要 、操作步骤(重现步骤)、预期结果、实际结果</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　另外，一个较完整的bug还需要填写：</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　测试模块及版本 &nbsp;测试环境 &nbsp;优先级 附件图 &nbsp;分配人员等</div><img src ="http://www.blogjava.net/qileilove/aggbug/418663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-10-13 09:53 <a href="http://www.blogjava.net/qileilove/archive/2014/10/13/418663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS安装搭建BugFree</title><link>http://www.blogjava.net/qileilove/archive/2014/10/09/418536.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Thu, 09 Oct 2014 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/10/09/418536.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/418536.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/10/09/418536.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/418536.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/418536.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;"><a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">BugFree</strong></u></a>基于PHP和<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">MySQL</strong></u></a>开发，是免费且开发源代码的<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">缺陷管理</strong></u></a>系统。服务器端在<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Linux</strong></u></a>和<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Windows</strong></u></a>平台上都可以运行；客户端无需安装任何软件，通过IE，FireFox等浏览器就可以自由使用。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　BugFree 2 在BugFree 1.1的基础上，集成了Test Case和Test Result的管理功能。具体使用流程是：首先创建Test Case（<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;"></strong></u></a><u style="word-break: break-all; line-height: normal !important;"><strong style="word-break: break-all;"><a target="_self" style="word-break: break-all; color: #202859; text-decoration: none;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>用例</strong></u>），运行Test Case产生Test Result（测试结果），运行结果为Failed的Case，可以直接创建<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Bug</strong></u></a>。Test Case标题、步骤和Test Result运行环境等信息直接复制到新建的Bug中。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　关闭selinux：</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　# vim /etc/selinux/config</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　将配置文件中 SELINUX=permissive</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　关闭iptables</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　# chkconfig --level 35 iptables off</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　[root@bugfree ~]# chkconfig --list |grep iptables &nbsp; 查看iptables状态 &nbsp; &nbsp; 0:off 1:off 2:on 3:off 4:on 5:off 6:off</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">1. 安装apache</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　yum install httpd</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">2. 安装mysql</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　yum install mysql mysql-server</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　注：已安装mysql的跳过此步骤</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　3. 安装PHP</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　yum install php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　4. 安装PHP加密算法插件</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　yum install libmcrypt</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　yum install php-mcrypt</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　centos 6.x 默认yum源没有libmcrypt 相关的包</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　从这里下载： http://www.lishiming.net/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　然后再</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　yum install -y &nbsp;libmcrypt-devel &nbsp; 即可解决安装php加密算法找不到yum源的问题</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　注：libmcrypt是加密算法扩展库，php-mcrypt是Mcrypt对PHP的一个扩展</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　5. 安装bugfree</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　bugfree官网已停止对它进行更新，我在<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">百度</strong></u></a>搜索的一个版本是：bugfree3.0.4</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　解压：unzip bugfree3.zip</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　重命名解压后的文件：mv bugfree3 bugfree</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　把bugfree放到apache的DocumentRoot：mv bugfree /var/www/html</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　改变bugfree的读写权限：chmod -R 777 bugfree</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　6. 配置</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　1) 配置apache</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　vi /etc/httpd/conf/httpd.conf</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　修改默认端口号 Listen 80 --&gt; Listen 7999</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11.8181819915771px; background-color: #ffffff;">　　启动httpd服务：service httpd start<br /><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　2) 配置mysql</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　启动mysqld服务：service mysqld start</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　注：mysqld服务已启动的跳过此步骤</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　登陆mysql：mysql -uroot -p</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　创建新用户：CREATE USER 'bugfree'@'localhost' IDENTIFIED BY '123456';</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　新用户授权：grant all privileges on *.* to bugfree@localhost identified by '123456';</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　注：以上授权方式需要把mysql和bugfree安装在同一台机器上</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　3) 配置bugfree</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　浏览器访问http://&lt;servername&gt;:port/bugfree/install</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　例如：http://192.168.1.20:7999/bugfree/install</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　安装第一步有个提示/var/www/html/BugFile/ &nbsp;文件不可读不可写</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　创建BugFile文件夹 &nbsp;mkdir BugFile</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　chmod -R 777 BugFile 即可解决</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　按照提示配置bugfree关联的数据库</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　注：要在root权限下操作，即用root登陆或者sudo来操作</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　<strong style="word-break: break-all; line-height: normal !important;">7. 完成安装，进入BugFree</strong></div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　初始用户名: admin 初始密码：123456</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　查看是否已经是开机启动：chkconfig --list|grep httpd</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　[root@localhost ~]# chkconfig --list|grep httpd</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　mysql &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0:关闭 &nbsp;1:关闭 &nbsp;2:关闭 &nbsp;3:关闭 &nbsp;4:关闭 &nbsp;5:关闭 &nbsp;6:关闭</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　0：关机。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　1：单用户字符界面。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　2：不具备网络文件系统（NFS）功能的多用户字符界面。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　3：具有网络功能的多用户字符界面。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　4： 保留不用。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　5：具有网络功能的图形用户界面。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　6：重新启动系统。</div><div style="word-break: break-all; line-height: 21.6000022888184px; margin: 10px 0px; font-size: 11.8181819915771px;">　　用命令 chkconfig --level 2345 mysqld on （更改相应级别即可）更改httpd随系统启动状态</div></div><img src ="http://www.blogjava.net/qileilove/aggbug/418536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-10-09 10:21 <a href="http://www.blogjava.net/qileilove/archive/2014/10/09/418536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用测试管理系统对比（测试用例、缺陷管理）</title><link>http://www.blogjava.net/qileilove/archive/2014/09/22/418150.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 22 Sep 2014 01:22:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/09/22/418150.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/418150.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/09/22/418150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/418150.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/418150.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">本文简介：</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　对于中小企业来说，选择一款适合的<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>管理工具或者工具集合石走向规划管理的必经之路，本文从以下几个方面对目前流行的几款工具：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、QC（QC是TC的升级版，QC的升级版QC 11就是ALM11）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、禅道(bugfree升级版）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、mantis</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　4、JIRA</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　5、TestLink</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　6、Bugzilla</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　从以下几个方面进行一个简单的对比，供大家参考。其中一些数据来之网上，不全和不对的地方欢迎大家回帖补充。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">功能</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　（1.原始<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">需求管理</strong></u></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2.测试需求管理</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3.测试用例管理</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　4.测试过程管理（测试任务分配）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　5.BUG管理</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　6.结果统计（进度、缺陷指标等）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　7.灵活性（可否流程自定义等）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　8.权限管理</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">成本</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　（1.购买成本</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2.部署成本</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3.使用成本易用性</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　4.维护成本 稳定性）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">扩展性</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　（1.与<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">自动化测试</strong></u></a>工具的接口</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2.与<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">性能测试</strong></u></a>工具的接口</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3.与其他<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">项目管理</strong></u></a>软件的接口</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　4.与office的接口）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">性能</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　（1.支持的用户数</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2.用例数等KPI指标）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　技术支持</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　(1.官方支持</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2.使用人气)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　工具简单描述<br /><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">对比结果如下：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><a href="http://www.51testing.com/batch.download.php?aid=48460" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409191329121qGJf.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><a href="http://www.51testing.com/batch.download.php?aid=48461" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409191329122RAQH.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><a href="http://www.51testing.com/batch.download.php?aid=48462" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409191329123Xqnv.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　通过以上对比，考虑成本、功能、质量等方面因素，推荐一下两种方案：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　1、 &nbsp; &nbsp; &nbsp; &nbsp;可以接受引入成本：QC，禅道</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　2、 &nbsp; &nbsp; &nbsp; &nbsp;希望使用免费方案： Mantis + TestLink</div></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"></div><div id="weixin_s" style="word-break: break-all; line-height: 21.6000003814697px; margin: 0px 0px 10px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; width: 182px; height: 32px; display: inline-block; position: relative; background-image: url(http://www.51testing.com/html/wx.jpg); background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: no-repeat;"></div><img src ="http://www.blogjava.net/qileilove/aggbug/418150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-09-22 09:22 <a href="http://www.blogjava.net/qileilove/archive/2014/09/22/418150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JIRA6.0更换数据库到MYSQL</title><link>http://www.blogjava.net/qileilove/archive/2014/09/22/418148.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 22 Sep 2014 01:21:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/09/22/418148.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/418148.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/09/22/418148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/418148.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/418148.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;"><a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;">JIRA</strong></u></a>更换<a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;">数据库</strong></u></a>方法</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　说明：jira自带数据库是HSQL，为内存数据库，当数据量比较大时，其性能会有问题，所有将其改为mysql</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">1、准备环境</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　mysql安装程序：mysql-essential-5.0.87-win32.msi</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　mysql驱动程序：mysql-connector-java-5.1.7-bin.jar</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　安装mysql，然后创建jira数据库，语句如下：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　create database jira character set 'UTF8'</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　将jira的license备份出来，以备后面使用</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　2、备份jira</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　用管理员账户登录jira，将其备份，具体如下：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　系统管理--导入导出--备份数据</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">　3、修改配置</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　停止jira</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　将mysql-connector-java-5.1.7-bin.jar驱动程序拷贝到 JIRA\lib 目录下</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　启动JIRA\bin\config.bat程序，配置Database，配置完成后，<a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>连接</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">4、恢复数据</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　启动jira</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　由于修改了配置，且mysql数据库里的内容为空，所以刚启动jira的时候会提示输入license，创建管理员账户什么的，随便填，只要能过去就行。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　配置完成后，进入系统管理，进行恢复数据（要求将其备份的zip文件拷贝到其要求的目录下即可）</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<strong style="word-break: break-all; line-height: normal !important;">5、验证</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　用之前的管理员账户登录jira，查看issue内容，或者用户信息等等，验证成功。</div><img src ="http://www.blogjava.net/qileilove/aggbug/418148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-09-22 09:21 <a href="http://www.blogjava.net/qileilove/archive/2014/09/22/418148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XAMPP和Bugfree详细教程</title><link>http://www.blogjava.net/qileilove/archive/2014/09/17/418004.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 17 Sep 2014 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2014/09/17/418004.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/418004.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2014/09/17/418004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/418004.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/418004.html</trackback:ping><description><![CDATA[<div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　<strong style="word-break: break-all; line-height: normal !important;">一、<a target="_self" style="word-break: break-all; color: #202859;"><u style="word-break: break-all;"><strong style="word-break: break-all;">XAMPP</strong></u></a>安装配置</strong></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　xampp是一款跨平台的集成 apache + mysql + php环境，是的配置AMP服务器变得简单轻松，支持windows，solaris，</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　下载地址：http://sourceforge.net/projects/xampp/files/</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=48393" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101311FTr0.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=48399" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101317bPmr.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=48400" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101318cwfH.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: center; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=48401" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101319xbZK.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　启动apache和mysql服务，如果apache不能成功启动，最大原因是80端口被占用（），把占用端口的进程关掉即可.<br /><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">xampp默认安装路径为：C:\xampp</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　解决方案：运行在cmd中运行 (安装目录)apache/bin/httpd.exe</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　如我的路径是&#8220;C:\xampp\apache\bin\httpd.exe&#8221;</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　找到错误的具体原因(发现真的是端口被占用)</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　&#8220;(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 &nbsp;: AH00072: mak</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　e_sock: could not bind to address 0.0.0.0:80</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　AH00451: no listening sockets available, shutting down</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　AH00015: Unable to open logs&#8221;</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　转自网络</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　XAMPP修改Apache端口 无法重启服务</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　由于先前装了PHPNOW,之后又装了XAMPP,XAMPP的apache服务就启动不了，改了XAMPP的apache的端口号后，服务还是无法启动；</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　解决方法：由于apache中httpd.conf文件加载了SSL，而之前已有SSL，所以XAMPP要修改apache与SSL才可使用，或在httpd.conf文件中将SSL的加载用#号注释掉，操作如下：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　打开apache配置文件，如D:\xampp\apache\conf\httpd.conf：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　修改&#8220;Listen 80&#8221;为&#8220;Listen 8080&#8221;；</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　修改&#8220;ServerName localhost:80&#8221;为&#8220;ServerName localhost:8080&#8221;；</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　打开SSL加载文件，如D:\xampp\apache\conf\extra\httpd-ssl.conf</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　将所有443端口改为4433端口 或 直接在Apache配置文件httpd.conf中，去掉或注释&#8220;Include "conf/extra/httpd-ssl.conf"&#8221;</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　最后启动mYSQL发现启动不了，原因是我已经安装了dedeCMS,其中也使用了XAMPP，所以果断把安装目录删除了，重装，发现OK了，哈哈</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　<a href="http://www.51testing.com/batch.download.php?aid=48402" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_2014091611013110xIFE.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　表示已经安装成功，点击界面上排右侧可切换多种语言，这里选择&#8220;中文&#8221;，将界面语言设置为中文。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　选择左边的&#8220;安全&#8221;选项</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　<a href="http://www.51testing.com/batch.download.php?aid=48403" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_2014091611013111gkjP.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　红字是不安全的，所以要去掉红字。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　MySQL安全控制台&amp;XAMPP目录保护</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　浏览器中输入http://localhost/security/xamppsecurity.php ，敲回车后出现如下图：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　<a href="http://www.51testing.com/batch.download.php?aid=48404" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_2014091611013112yiDh.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　为mysql root设置密码&#8220;111111&#8221;，输入自己的密码（这里需要自己设置密码）；PhpMyAdmin 认证选择http，然后点击【改变密码】，密码设置成功。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　设置Xampp目录保护，输入用户名和密码，点击【保护XAMPP文件夹】后，提示XAMPP目录保护设置成功。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　一定要记住密码哦，每次配置的时候都需要输入用户名和密码的。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　下面用PHPmyadimin配置mysql，在浏览器中输入http://localhost/phpmyadmin，敲回车后如下图</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　<a href="http://www.51testing.com/batch.download.php?aid=48405" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_2014091611013113fhqA.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　下面用PHPmyadimin配置mysql，在浏览器中输入http://localhost/phpmyadmin，敲回车后如下图</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><a href="http://www.51testing.com/batch.download.php?aid=48406" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_2014091611013114Jps3.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　刚才设置的密码在这里要用到了，用户名输入root，密码输入刚才自己设置的密码。就可以进入数据库了。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　如果重新登录phpmyadmin，发现无法连接，需要在PHPmyadmin下配置config.inc.php文件，该文件位于</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　C:\xampp\phpMyAdmin中，找到config.inc.php文件，打开编辑，配置如下：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　cfg[&#8242;Servers&#8242;][i]['auth_type'] &nbsp; &nbsp; = 'http';</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　cfg[&#8242;Servers&#8242;][i]['user'] = 'root'；</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　cfg[&#8242;Servers&#8242;][i]['password'] = '123456'；</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　pwd那行，是根据自己情况设置的。保存一下就可以了。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　设置PHP运行于安装模式</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　这里设置和XAMPP 1.7的版本不同，1.8的版本中设置：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　在安装好的XAMPP界面点击Apache后侧的Config会弹出一个下拉框，这里选择打开</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　PHP(php.ini),文档打开后，查找safe_mode字段设置为ON保存退出。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　然后通过http://localhost/security/index.php检查其状态。</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　bugfree3.0.4下载、安装和配置：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.1 下载地址：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.2 安装步骤：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.2.1 解压后拷贝bugfree</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.0.4至xampp安装目录的htdocs文件夹的根目录下，例如D: \xampp\htdocs\，命名为bugfree3；</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;">　　3.2.2 浏览器中输入http://localhost/bugfree3/install/，所有环境都检查ok后 【继续】按钮变为可点击状态；</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px;"><a href="http://www.51testing.com/batch.download.php?aid=48394" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101312YjE0.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333;">上图错误解决方法：xampp安装目录的htdocs文件夹的根目录下新建BugFile文件夹。 修改后，点击【继续】至下图</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; text-align: center;"><a href="http://www.51testing.com/batch.download.php?aid=48395" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101313oE7K.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; text-align: center;"><a href="http://www.51testing.com/batch.download.php?aid=48396" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101314drm3.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333;">　　解决：将上图的数据库用户名改为root即可</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333;">　　完成安装，进入BugFree，初始用户名: root &nbsp;初始密码：111111</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; text-align: center;">　　<a href="http://www.51testing.com/batch.download.php?aid=48397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_20140916110131596Ns.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333;">　　安装成功了：</div><div style="word-break: break-all; line-height: 21.6000003814697px; margin: 10px 0px; color: #333333; text-align: center;">　　<a href="http://www.51testing.com/batch.download.php?aid=48398" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img src="http://www.51testing.com/attachments/2014/09/14982672_201409161101316hZJY.jpg" border="0" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></div></a></div></div><img src ="http://www.blogjava.net/qileilove/aggbug/418004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2014-09-17 09:42 <a href="http://www.blogjava.net/qileilove/archive/2014/09/17/418004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SVN服务器搭建和使用（一）</title><link>http://www.blogjava.net/qileilove/archive/2013/11/22/406661.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 22 Nov 2013 03:56:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/11/22/406661.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/406661.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/11/22/406661.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/406661.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/406661.html</trackback:ping><description><![CDATA[<p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">&nbsp;Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">首先来下载和搭建SVN服务器.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">现在Subversion已经迁移到apache网站上了,下载地址:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><a href="http://subversion.apache.org/packages.html" data-ke-src="http://subversion.apache.org/packages.html" style="cursor: pointer; color: #56b6e9;">http://subversion.apache.org/packages.html</a></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">这是二进制文件包的下载地址,你可在左侧的导航栏找到源代码,文档的下载地址.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">windows操作系统下面的二进制文件包一共有5种,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2934/F1AF6169783C4053B8294BCDC2644F61" data-ke-src="http://note.youdao.com/yws/res/2934/F1AF6169783C4053B8294BCDC2644F61" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">个人认为最好用VisualSVN server 服务端和 TortoiseSVN客户端搭配使用.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">点开上面的VisualSVN连接,下载VisualSVN server,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2916/110DAB46A3D74B5BBFB2FF40A14E8B8D" data-ke-src="http://note.youdao.com/yws/res/2916/110DAB46A3D74B5BBFB2FF40A14E8B8D" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">然后下载TortoiseSVN客户端,官网下载地址:<a href="http://tortoisesvn.net/downloads.html" data-ke-src="http://tortoisesvn.net/downloads.html" style="cursor: pointer; color: #56b6e9;">http://tortoisesvn.net/downloads.html</a></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2929/BDDD3D3886534CBC8C3A22F55DC0F54E" data-ke-src="http://note.youdao.com/yws/res/2929/BDDD3D3886534CBC8C3A22F55DC0F54E" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">注意下载跟你电脑匹配的安装包,在页面的下面你还可以找到语言包,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2918/26E9029E7E444463A70988D19933AD2C" data-ke-src="http://note.youdao.com/yws/res/2918/26E9029E7E444463A70988D19933AD2C" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">下载完成后,应该有这些安装包,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2925/ABE23B8D8AA0404FA29AFB4BB2B45BEE" data-ke-src="http://note.youdao.com/yws/res/2925/ABE23B8D8AA0404FA29AFB4BB2B45BEE" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">&nbsp;TortoiseSVN安装包和简体中文语言包</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2930/D2AD76C417AF492E99BDBA637C932646" data-ke-src="http://note.youdao.com/yws/res/2930/D2AD76C417AF492E99BDBA637C932646" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">VisualSVN server安装包</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">先安装VisualSVN server的安装包,双击VisualSVN server安装包,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2932/DA11FBD2ABAF40E49ACE659DB05B7D1E" data-ke-src="http://note.youdao.com/yws/res/2932/DA11FBD2ABAF40E49ACE659DB05B7D1E" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">点Next,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2922/5F950C2367BB4F838F9740EB88D25A25" data-ke-src="http://note.youdao.com/yws/res/2922/5F950C2367BB4F838F9740EB88D25A25" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">点同意,进图下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2923/70BA05CE69CF487BA1221F463F90D443" data-ke-src="http://note.youdao.com/yws/res/2923/70BA05CE69CF487BA1221F463F90D443" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">选择上面一个选项,点Next,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2937/FDB340823D8745E7BFC0F7DC788B3DDA" data-ke-src="http://note.youdao.com/yws/res/2937/FDB340823D8745E7BFC0F7DC788B3DDA" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">Location是指VisualSVN Server的安装目录,Repositorys是指定你的版本库目录.Server Port指定一个端口,Use secure connection勾山表示使用安全连接,Use Subversion authentication 表示使用Subversion自己的用户认证.点击Next,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2915/104CF11D7FC14784943CE2DFFD5D5548" data-ke-src="http://note.youdao.com/yws/res/2915/104CF11D7FC14784943CE2DFFD5D5548" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">点Install,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2927/B3A872F0EB9147F5971D55E5515F9B61" data-ke-src="http://note.youdao.com/yws/res/2927/B3A872F0EB9147F5971D55E5515F9B61" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">等待安装完成,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2928/B84C418D13BA44779410D1A78AD7AA71" data-ke-src="http://note.youdao.com/yws/res/2928/B84C418D13BA44779410D1A78AD7AA71" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">安装完成后,启动VisualSVN Server Manager,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2919/3AA385BF5D8646DA86A4B354B4CC571F" data-ke-src="http://note.youdao.com/yws/res/2919/3AA385BF5D8646DA86A4B354B4CC571F" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">接下来我们安装TortoiseSVN,双击安装包,进入下一步.如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2921/5EB05F3E11304178960638A8096C0F0E" data-ke-src="http://note.youdao.com/yws/res/2921/5EB05F3E11304178960638A8096C0F0E" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">点击Next,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2936/FA4A32F9E64B43D4A3529C8411B89FA1" data-ke-src="http://note.youdao.com/yws/res/2936/FA4A32F9E64B43D4A3529C8411B89FA1" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">选择接受,然后点击Next,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2935/F455B9181B254A2699421BF47CAA4E65" data-ke-src="http://note.youdao.com/yws/res/2935/F455B9181B254A2699421BF47CAA4E65" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">选择安装路径,然后点击Next,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2920/450FC54276C04CB5B4E35DE036AA7B1B" data-ke-src="http://note.youdao.com/yws/res/2920/450FC54276C04CB5B4E35DE036AA7B1B" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">点击Install,开始安装,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2917/15E565BA538D47AC96A4830DF7A06BEE" data-ke-src="http://note.youdao.com/yws/res/2917/15E565BA538D47AC96A4830DF7A06BEE" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">等待安装完成,安装完成后如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2931/D40BC51355504E60BC8600937E34BDBA" data-ke-src="http://note.youdao.com/yws/res/2931/D40BC51355504E60BC8600937E34BDBA" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">接下来我们安装简体中文语言包,这个非常简单,一路Next就行,就不截图了.语言包安装完成以后在桌面任意空白地方单击鼠标右键,会在右键菜单里找到SVN,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2933/E61EA9B5244B44A688F8D0477B3A642D" data-ke-src="http://note.youdao.com/yws/res/2933/E61EA9B5244B44A688F8D0477B3A642D" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">选择设置,进入下一步,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2924/982B714FAE0E415890498E6B43479245" data-ke-src="http://note.youdao.com/yws/res/2924/982B714FAE0E415890498E6B43479245" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">在右边的语言里面选择简体中文,然后点击应用,确定,汉化即完成,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><img src="http://note.youdao.com/yws/res/2926/AD32DEFCCBF94D4B948379E8B8106AE5" data-ke-src="http://note.youdao.com/yws/res/2926/AD32DEFCCBF94D4B948379E8B8106AE5" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">到这里,服务端和客户端都已经安装完毕,下一篇介绍用VisualSVN Server创建版本库,以及TortoiseSVN的使用.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;">&nbsp;</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><br /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">首先打开VisualSVN Server Manager,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2957/FBE6DEC8DE88463FAAE9221468B498C0" data-ke-src="http://note.youdao.com/yws/res/2957/FBE6DEC8DE88463FAAE9221468B498C0" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.要建立版本库,需要右键单击左边窗口的Repositores,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2943/67E4B39759FE4BB4A749DD863C0FAA95" data-ke-src="http://note.youdao.com/yws/res/2943/67E4B39759FE4BB4A749DD863C0FAA95" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">在弹出的右键菜单中选择Create New Repository或者新建-&gt;Repository,进入下一步:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2949/7C912AB8D3454AA58656E47127DC53AC" data-ke-src="http://note.youdao.com/yws/res/2949/7C912AB8D3454AA58656E47127DC53AC" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">输入版本库名称,勾上Create default structure复选框(推荐这么做).点击OK,版本库就创建好了,版本库中会默认建立trunk,branches,tags三个文件夹,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2950/8C144DD65DFB414EB25F926AEB71DADC" data-ke-src="http://note.youdao.com/yws/res/2950/8C144DD65DFB414EB25F926AEB71DADC" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">这时候我们将项目导入到版本库中,找到你的项目文件夹,在项目文件夹上点击鼠标右键,找到SVN菜单,选择导入,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2951/8C18D80590104415949B8197D85A3CAC" data-ke-src="http://note.youdao.com/yws/res/2951/8C18D80590104415949B8197D85A3CAC" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">在弹出的对话框中填上版本库URL,这个URL可以从VisualSVN Server Manager中获取,在你的版本库上单击右键,选择Copy URL to Clipboard,这样就把版本库URL复制到你的剪贴版了.如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2947/75FB4D9E751D40E8A4395DD505745649" data-ke-src="http://note.youdao.com/yws/res/2947/75FB4D9E751D40E8A4395DD505745649" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">将复制的版本库URL粘贴上,在URL后面加上trunk子路径.然后在导入信息里面填上导入信息"导入项目到版本库".如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2954/A7EE146904434167AC06D784A6051672" data-ke-src="http://note.youdao.com/yws/res/2954/A7EE146904434167AC06D784A6051672" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">点击确定,所选中的项目就会被导入到版本库中.如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2941/6121B54DB40C40C78FFD2D2DB9A9FF58" data-ke-src="http://note.youdao.com/yws/res/2941/6121B54DB40C40C78FFD2D2DB9A9FF58" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">项目导入到版本库以后,不能随便让谁都能够读写版本库,所以需要建立用户组和用户.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create User或者新建-&gt;User,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2948/7A0ECEB85A474D6EB89FEA30DD62CEE3" data-ke-src="http://note.youdao.com/yws/res/2948/7A0ECEB85A474D6EB89FEA30DD62CEE3" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">在弹出的对话框中填写User name和Password,然后点击OK,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2942/6266848D1DF248D2B8DA4AFB981BCF9D" data-ke-src="http://note.youdao.com/yws/res/2942/6266848D1DF248D2B8DA4AFB981BCF9D" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">用相同的方式分别创建用户Develpoer1,Develpoer2,Develpoer3,Test1,Test2,Manger六个用户,分别代表3个开发人员,两个测试人员和一个项目经理,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2945/6BF802749741487D93E5A9ABE6FB28D6" data-ke-src="http://note.youdao.com/yws/res/2945/6BF802749741487D93E5A9ABE6FB28D6" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">然后我们建立用户组,在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create Group或者新建-&gt;Group,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2939/1F8751F08F9F4AD58D21E191611DA8A6" data-ke-src="http://note.youdao.com/yws/res/2939/1F8751F08F9F4AD58D21E191611DA8A6" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">在弹出窗口中填写Group name为Developers,然后点Add按钮,在弹出的窗口中选择三个Developer,加入到这个组,然后点Ok,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2940/3E88B2FFEECD48EC8C11C150A22154C9" data-ke-src="http://note.youdao.com/yws/res/2940/3E88B2FFEECD48EC8C11C150A22154C9" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">用相同的方式创建组Managers,Testers,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2955/D74007339931438D8A0BE02A8C127D0A" data-ke-src="http://note.youdao.com/yws/res/2955/D74007339931438D8A0BE02A8C127D0A" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">接下来我们给用户组设置权限,在MyRepository上单击右键,选择属性,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2946/6CF0A0F0EA5F48AB8F23E6E9382C692B" data-ke-src="http://note.youdao.com/yws/res/2946/6CF0A0F0EA5F48AB8F23E6E9382C692B" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">在弹出的对话框中,选择Security选项卡,点击Add按钮,选中Developers,Managers,Testers三个组,然后添加进来,给Developers,Managers权限设置为Read/Write,Tester权限设置为Read Only,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2956/F8CFA036DFFD455C88C1FBBB366BC782" data-ke-src="http://note.youdao.com/yws/res/2956/F8CFA036DFFD455C88C1FBBB366BC782" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">到此,服务端就完成了.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">接下来,我们用客户端去检出代码,在桌面空白处单击右键,选择SVN检出,在弹出的对话框中填写版本库URL(具体获取方式,上面讲上传项目到版本库的时候讲过),选择检出目录,点击确定.如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2953/A563C724D04947CAA092014E0FF331FD" data-ke-src="http://note.youdao.com/yws/res/2953/A563C724D04947CAA092014E0FF331FD" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">开始检出项目,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2944/6B869AD66C2C41FB94364D27D2D13D4A" data-ke-src="http://note.youdao.com/yws/res/2944/6B869AD66C2C41FB94364D27D2D13D4A" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">检出完成之后,我们打开工作副本文件夹,会看到所有文件和文件夹都有一个绿色的&#8730;.如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;"><img src="http://note.youdao.com/yws/res/2952/93519261AED148AEB0D7D726E7A53A78" data-ke-src="http://note.youdao.com/yws/res/2952/93519261AED148AEB0D7D726E7A53A78" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">至此,创建版本库和使用TortoiseSVN导入项目,检出项目已经介绍完毕.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">下一篇介绍TortoiseSVN的使用,以及冲突解决办法.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px;">&nbsp;</p><p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-left: 0px;"><br /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; color: #232323; font-family: Verdana, Arial, helvetica, sans-seriff; line-height: 25px; background-color: #ffffff;"><br /></p><div style="word-wrap: break-word; font-size: 13px; font-weight: bold; margin-bottom: 10px;"><a href="http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2408089.html" data-ke-src="http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2408089.html" style="cursor: pointer; text-decoration: initial; color: #56b6e9;">SVN服务器搭建和使用（三）</a></div><div id="cnblogs_post_body" style="word-wrap: break-word; word-break: normal !important;"><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">添加文件</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2966/796D205456924DD7B51FECC585A3012E" data-ke-src="http://note.youdao.com/yws/res/2966/796D205456924DD7B51FECC585A3012E" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">这时候,你需要告知TortoiseSVN你的操作,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2968/F5BAC78435BF4DA5B539B7587C6FDFDB" data-ke-src="http://note.youdao.com/yws/res/2968/F5BAC78435BF4DA5B539B7587C6FDFDB" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">加入以后,你的文件会变成这个状态,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2969/FB563146720B4096AFFCA528D27D2096" data-ke-src="http://note.youdao.com/yws/res/2969/FB563146720B4096AFFCA528D27D2096" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">这时候使用TortoiseSVN进行提交.这样别人就能看到你所做的更改了,如图.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2965/785CA501B51B43B5BE0011F0CE9E1396" data-ke-src="http://note.youdao.com/yws/res/2965/785CA501B51B43B5BE0011F0CE9E1396" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">修改文件</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">使用TortoiseSVN更新,修改工作副本中的Readme.txt文件,加入"hello world!",然后保存,你会发现Readme.txt文件的图标改变了,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2962/68495965618443CA8F449C7E69DE9EB5" data-ke-src="http://note.youdao.com/yws/res/2962/68495965618443CA8F449C7E69DE9EB5" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">这个红色的叹号代表这个文件被修改了,这时候,提交更改,其他人即可看到你的更改.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">重命名文件</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">使用TortoiseSVN更新,重命名工作副本中的Readme.txt文件为"Readme1.txt',然后保存,你会发现Readme.txt文件的图标改变了,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2967/B4E731113D27420A878BA73AD28E1B82" data-ke-src="http://note.youdao.com/yws/res/2967/B4E731113D27420A878BA73AD28E1B82" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">更添加文件一个道理,这时候你需要告诉TortoiseSVN你的操作,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2959/1835D2D925114D069712A77CFC82D19E" data-ke-src="http://note.youdao.com/yws/res/2959/1835D2D925114D069712A77CFC82D19E" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">加入以后,提交,这时候版本库中的Readme.txt文件将会被重命名为"Readme1.txt".</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">删除文件</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">使用TortoiseSVN更新,使用TortoiseSVN删除工作副本中的Readme.txt文件,然后提交,版本库中的相应文件即被删除掉了,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2963/6A22B63933134AF292C79E3DEB5F3891" data-ke-src="http://note.youdao.com/yws/res/2963/6A22B63933134AF292C79E3DEB5F3891" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">强制写注释</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">为了以后你能更清晰的看到你所做的每一次更改的原因,你在每次提交的时候应该写上注释,而且尽量详细.如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2961/2C71BC3ED7B14DB3B7F8177521E93224" data-ke-src="http://note.youdao.com/yws/res/2961/2C71BC3ED7B14DB3B7F8177521E93224" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">但是,可能有的人因为觉得太繁琐,而不填写注释,这不利于以后的版本控制,可以将强制在提交的时候写注释,首先单击右键,选择TortoiseSVN-&gt;属性,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2964/6BBE2FC2529B4C17887573A77D4326EB" data-ke-src="http://note.youdao.com/yws/res/2964/6BBE2FC2529B4C17887573A77D4326EB" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">在弹出的对话框中,点击新建-&gt;日志大小,设置提交日志的最小字符数和锁定日志的最小字符数为20,提交文本框中显示边线的字符位置设置为100,点击确定,如图:</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;"><img src="http://note.youdao.com/yws/res/2960/1A9D099504014879BD03D1D440160C2F" data-ke-src="http://note.youdao.com/yws/res/2960/1A9D099504014879BD03D1D440160C2F" alt="" data-media-type="image" data-inited="true" style="border: 0px;" /></p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">提交,以后再次提交的时候,如果输入的注释少于20个字符,将无法提交.</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">冲突解决</p><p style="word-wrap: break-word; margin-top: 10px; margin-bottom: 10px; font-family: 宋体, 'sans serif', tahoma, verdana, helvetica; font-size: 16px; line-height: 24px;">冲突问题是最常见的问题,它是这样产生的,A用户check out了一个工作副本A,接着B用户又check out了一个工作副本B.然后A用户对副本A中的文件C做了修改(可以是内容修改,文件删除,重命名,以及位置移动),并且提交.这时候B用户也对文件C的相同部分做了修改,这时候如果B用户进行提交,会先被告知版本过时,要求更新,然后更新的时候会提示冲突了,这时候可以用冲突编辑器进行手动选择.</p><div></div></div><img src ="http://www.blogjava.net/qileilove/aggbug/406661.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-11-22 11:56 <a href="http://www.blogjava.net/qileilove/archive/2013/11/22/406661.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让Quality Center走下神坛--测试管理工具大PK</title><link>http://www.blogjava.net/qileilove/archive/2013/07/25/401936.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Thu, 25 Jul 2013 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/07/25/401936.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/401936.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/07/25/401936.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/401936.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/401936.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　让Quality Center走下神坛--测试管理工具QC/ALM 和 RQM、Jira、TP、SCTM大PK</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　在写完了《让<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">QTP</strong></u></a>走下神坛》之后，现在来谈谈<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;"></strong></u></a><u style="word-break: break-all; line-height: normal !important;"><strong style="word-break: break-all;"><a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>管理</strong></u>工具，献给所有正在或打算做测试管理<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>的同行。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　当然，话题离不了Quality Center&#8212;&#8212;但又不只是谈QC，我会结合对比各种主流的企业级测试管理工具，包括标题提到的：HP QC/ALM、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">IBM</strong></u></a>&nbsp;RQM、51Testing TP、Micro Focus SCTM、Atlassian Jira。但是不会提及Bugzilla、Bugfree、Mantis这些，因为它们只能属于<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">缺陷管理</strong></u></a>工具，和以上几款工具不在一个级别上。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　当然，得先从QC说起。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;"><br style="word-break: break-all; line-height: normal !important;" />　　既然提及Quality Center，就得先谈Mercury，而既然提及Mercury，就得先谈HP。毕竟是大环境的衰败造就了QC的没落，难道不是吗？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　（一）因此，先说HP。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　HP原来有三大业务：PSG、IPG、EB，分别是个人电脑，打印和影像设备，企业级业务（软件服务）。PC业务利润微薄，压力大，HP早已江河日下；打印机扫描仪随着iPad等设备出现，早已经疲态尽显；HP倒一直想模仿IBM转型服务，号称要打造&#8220;Service Anywhere（一切皆服务）&#8221;，但从QTP、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">LoadRunner</strong></u></a>和Quality Center多年以来除了更换了华丽的界面，新增了零星半点的小特性，越来越耗资源，越来越不稳定，甚至继续保留着一堆N年以前的<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Bug</strong></u></a>，&#8230;&#8230;，管中窥豹，可知其所谓的服务越来越流于表面了。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;"><br style="word-break: break-all; line-height: normal !important;" />　　据说今年HP对外宣称自己做组织架构调整，变为PPS（打印）、EG（企业集团）、ES（企业服务）和HP Software（软件），我对HP内部不太熟，不过在我看来换汤不换药。它们在历史上架构不知道调整了多少次，用业内人的说法是&#8220;总是在用一个错误纠正另一个错误&#8221;。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　（二）再说Mercury和Quality Center。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;"><br style="word-break: break-all; line-height: normal !important;" />　　HP在2006年7月以45亿美元收购了Mercury公司。而在此之前，Mercury是专注与<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">软件测试</strong></u></a>工具研发的专业厂商，曾几何时在<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试工具</strong></u></a>这块与<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Rational</strong></u></a>、Segue号称&#8220;测试三巨头&#8221;。它们推出的每一款产品都堪称划时代：测试管理工具TestDirector、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">性能测试</strong></u></a>工具LoadRunner、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">功能测试</strong></u></a>自动化工具WinRunner/QuickTest，分别迅速占领了全球70%左右的市场，时至今日，仍然威震江湖。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;"><br style="word-break: break-all; line-height: normal !important;" />　　QC为什么能有很强大的用户基础，其实不是因为QC的强大，归根结底，是TD当年打下大片江山，占尽了用户基础。我是从TD(TestDirector 7.2)开始用的，十年前当我第一次看到TestDirector真的是&#8220;亮瞎了眼&#8221;！世界上居然有这么Cool的测试管理工具！亮点在哪里？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　TD的安装相当简单，几乎是傻瓜式操作，&#8220;下一步&#8221;、&#8220;下一步&#8221;、&#8230;&#8230;、&#8220;完成&#8221;。连<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">数据库</strong></u></a>都删繁就简的采用Access，安装的便捷，怎一个爽字了得！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　而且基本不太消耗内存资源，使用起来一点都不卡。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　2、强大的易用性。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　TD的设计思路简单清晰，整个过程就是：写测试需求&#8211;》写<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试用例</strong></u></a>&#8211;》执行测试用例&#8211;》提交缺陷、跟踪缺陷。总共只有四件事，而且完全符合Testers的日常工作流程。在当时同类竞争对手几乎只有缺陷管理工具Mantis、Bugfree、Bugzilla、ClearQuest，论强大论易用性都明显被拉开了一大截&#8212;&#8212;绝对领先优势！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　3、放号策略。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　大家应该都还记得著名的TD License吧？有人称之为&#8220;Sale Policy&#8221;。什么意思呢？就是当初Mercury推出TD 7.6的时候，网上立刻有人出来发布TD 7.2的License；当Mercury推出8.0的时候，网上立刻有人出来发布TD 7.6的License；当HP Mercury推出Quality Center 8.2的时候，网上立刻有人出来发布TD 8.0的License&#8230;&#8230;</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　呵呵，就这么巧合，至于为什么会这样，明眼人一看就知。现在明白什么叫&#8220;Sale Policy&#8221;了吗？我先让你用旧版的，等你用上了以后，数据都在上面了，然后我推新版的，诱惑你用，&#8230;&#8230;，一步步让你深陷其中，当你有一天发现你已经离不开我的时候，我对你实行收费&#8230;&#8230;WOW！pfpf，果然厉害！所以，一代又一代的Test Manager前赴后继，大力推行TD。51Testing软件测试网%t Vm%}'p！i+_</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13.333333969116211px; background-color: #ffffff;">　　但是你们看，现在HP ALM还有吗？我毫不怀疑，没有继续延续之前的战略方针，ALM确实正在不断失守城池。《2012年测试从业人员调查报告》可以清晰看到，下面会有详细描述。<br /><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><strong style="word-break: break-all; line-height: normal !important;">　（三）嫁对男人是女人一生的事业。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　悲剧就在这里，自从HP收购了Mercury，内部发生了大动乱，HP素以抠门闻名，收购了Mercury研发团队后，很多人的薪资被砍掉了三分之二！于是整个团队分崩离析&#8230;&#8230;</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　这也是为什么大家总感觉当初使用Mercury工具的时候那样心潮澎湃，现在每每看到HP的升级版却诸多失望多于期望。因为最核心的高层、架构师和专家早已离开了HP Mercury团队。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　所以，你们都看到了，&#8230;&#8230;，就像QTP的新版本UFT一样，加了什么PDF验证、类增强、支持移动设备&#8230;&#8230;，都有啥用啊？！你内核没有改变啊，大侠。。。一一大帮子人做了一整年就加了这么一点东西，还好意思拿出来说啊？！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　QC也莫过于此。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><strong style="word-break: break-all; line-height: normal !important;">　　（四）关于&#8220;改名&#8221;的乐趣。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　从频繁改名就可以知道HP的无能&#8212;&#8212;没有本事升级内核，只能改改花哨的界面，加一点噱头，再换个名字，看看都有啥名字吧。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　测试管理工具：TestDirector&#224;Quality Center&#224;ALM</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　自动化测试：Astra QuickTest&#224;QuickTest Professional&#224;UFT</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　HP肯定会说：你不了解名字背后的意义，好吧，我替你们来说：TD升级为QC的本意是从测试整合为质量中心，把QTP捆绑进来，QC改名为ALM就是希望它不再只是针对测试或质量的管理平台，而是一个完整的软件生命周期管理平台。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　我想问一句：累不累啊？真以为改了名字以后用户就收获了什么好处吗？我倒觉得反而增加了用户的认知成本、使用成本，最终反而伤害了自己的品牌。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><strong style="word-break: break-all; line-height: normal !important;">　　（五）没落是一个不争的事实。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　好吧，废话不说，下图是我们针对国内测试从业人员做的问卷调查。你可以看到QC正在市场上节节败退，按正常估计，明年一定跌破四成&#8212;&#8212;极有可能被Atlassian Jira取代霸主地位。</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/batch.download.php?aid=41437" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/07/14982672_201307221143381pDKI.jpg" width="695" height="442" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 500px; height: 283px;"  alt="" /></a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　看到了吗？QC从昔日的一股独大，变成了今天群雄并争。最明显的就是Jira，从2009年的14%上升为24%！！猛增10个百分点哦！这风头在自动化那边也是同样，Selenium从2009年的4%上升为12%。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　为什么？很多原因。且听我细细道来。为了更好的说明，我以和它体量相当的大型测试管理平台比如Micro Focus SCTM(Silk Central Test Manager)、51Testing TestPlatform、IBM RQM来跟它做个简单对比&#8212;&#8212;为什么不拿Atlassian Jira对比？因为Jira现在虽然也在朝着&#8220;全生命周期管理&#8221;的方向靠，也有需求管理、错误跟踪这些模块，但是走的路数和QC不太一样（设计思路不太一样，Jira走的是敏捷&amp;项目管理模式），而且对测试需求和测试用例没有提供直接的方式进行管理（可以和别的工具集成），不好对比。当然后面还是会提及。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">版权声明：本文出自 songfun 的51Testing软件测试博客：copy Bookmark&nbsp;<a href="http://www.51testing.com/?songfun" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">http://www.51testing.com/?songfun</a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">原创作品，转载时请务必以超链接形式标明本文原始出处、作者信息和本声明，否则将追究法律责任。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">相关文章：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;"><font color="#202859">让Quality Center走下神坛--测试管理工具大PK（中）</font><br /></a><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><strong style="word-break: break-all; line-height: normal !important;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　1、莫名其妙的架构设计。</a></strong></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　前面提到过TestDirector的架构设计，完全走轻快的路子，B/S架构，基于<u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">Windows</strong></u><font color="#202859"><span style="line-height: normal !important;">&nbsp;2000平台，安装IIS4.0即可，</span></font><u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">数据库</strong></u><font color="#202859"><span style="line-height: normal !important;">可以是Access/Sybase/SQL Server6.5,7.0,2000/Oracle7,8,9这些，内存只需要128M，CPU只要Pentium&#8545;足矣。</span></font></a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　但是到了QC的时候，莫名其妙的变成了Java EE架构，号称可以安装在Windows、<u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">Linux</strong></u><font color="#202859"><span style="line-height: normal !important;">、Solaris等系统上，Web服务器可以是Apache、IIS，应用服务器可以是JBOSS、WebLogic、WebSphere，一个比一个复杂，一个比一个强大，&#8230;&#8230;，架构师对外宣称QC可以更好的支持企业级用户，支持高并发&#8230;&#8230;</span></font></a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　到了QC 11.5(ALM 11.5)的时候，官方的建议配置变成了Windows 2008 sp2 64bit + JBOSS 5.1 +&nbsp;<u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">SQL</strong></u><u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">Server</strong></u><font color="#202859" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><span style="line-height: normal !important;">&nbsp;2008 sp1，最低配置也得是Windows 2003 sp2 + (IIS 6) + JBoss 5.1 + SQL Server 2005 sp3，而硬件方面的最低配置更让人咂舌&#8212;&#8212;最低内存8 GB！硬盘最少8GB！而且连客户端的内存最低配置都必须是2GB！</span></font></a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　各位都明白了吗？这也是为什么越来越多的用户抛弃了HP Quality Center的原因，内存要求短短几年之间翻了62.5倍！！惊人吧！！！</a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　看到这里我狂汗啊！要知道，微软Windows 2000这么庞大的系统，不过动用了1700个开发，3200个<u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">测试</strong></u><font color="#202859"><span style="line-height: normal !important;">，世界上有几个</span></font><u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">微软</strong></u><font color="#202859"><span style="line-height: normal !important;">这种巨量级的软件研发公司？难道他们的架构师没有读过《长尾理论》？事实上，大部分的公司测试开发比本来就很低，真正考虑到实时并发的话，能做到一两百并发读写已经很好了，而且就像Infosys、Tata这样的航空母舰级的外包服务公司，也没有必要整个公司只用一个QC啊&#8212;&#8212;再者说了，就算出于企业级管理的需要，这样的公司能有几家，为这些大公司定制化一个不就行了吗？真正要考虑的是广大的受众群体所在的企业规模和研发团队规模啊！兄弟，这只是一个内部研发管理系统！对内的系统决定了对性能的要求不可能像对外开放的大型系统那么高，既不是12306，也不是天猫，更不是谷歌/百度首页，设计这样的架构，我想问一句：有那必要吗？图啥呢？</span></font></a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　假如还觉得不够的话，那么我们对比看看现在也非常流行的TestLink&#8212;&#8212;一款可以和Jira、Bugzill、Mantis集成的测试过程管理工具。它的架构非常的简单：WAMP/LAMP，也就是Windows/Linux + Apache + PHP +&nbsp;<u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">MySQL</strong></u><font color="#202859"><span style="line-height: normal !important;">。因为现在有大量的一键集成安装包（如WAMP Server、XAMPP），所以安装过程极其简单方便。正是因为TestLink的便捷性，这几年使用的用户比例也在攀升，而且别忘了，它可以集成很多主流的</span></font><u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">缺陷管理</strong></u><font color="#202859"><span style="line-height: normal !important;">工具哦！</span></font></a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><strong style="word-break: break-all; line-height: normal !important;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　2、复杂繁琐的安装和登录、惊人的资源消耗。</a></strong></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　QC的服务器端姑且不提，看看其复杂而坑爹的客户端&#8212;&#8212;其实还是架构设计的问题。</a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　相信很多朋友都见过下图的这个页面吧？</a></p><p align="center" style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><font color="#202859"><span style="line-height: normal !important; width: 532px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;"><img border="0" src="http://www.51testing.com/attachments/2013/07/14982672_201307221233481HY4m.jpg" width="510" height="88" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 532px; height: 215px;"  alt="" /></a></span></font></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　假如你真的经常使用Quality Center的话，一定对这个页面再熟悉不过，相信大家都有同感，这个页面往往需要下载非常的久，运气不好的话得下载5-10分钟，而且还经常下载到最后了打不开！！这时还得检查有没有关闭UAC(User Account Control)、DEP(Data Extension Prevention)等等，这种BT的架构设计真的让人不可思议了：这明明是B/S架构的系统，为啥需要下载安装这么多ActiveX？这不是挂羊头卖狗肉，打着B/S的旗帜，行C/S之事吗？与其这么麻烦，还不如你就做成C/S算了！</a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　当然，它还真有客户端，而且官方推荐你使用，叫：QC Explorer。说白了，就是专门为打开QC开发的一款基于IE内核的浏览器。唉，真的无语了，放着那么多流行的JavaScript. Framework Libraries不用，偏要用ActiveX这种落伍又笨拙的东西。这还不要紧，关键是这样一来，对你的浏览器就会非常的挑剔！请看这段官方描述（针对QC客户端的浏览器要求）：Microsoft Internet Explorer 7 or 8。就是说你的客户端只能用微软的IE浏览器，而且必须是IE 7或者IE 8这个版本，不能用微软的IE 6或IE 9（一定要用高版本的IE还得到jboss\server\default\deploy目录下修改20qcbin.war里的内容），不能用Chrome、Firefox，更别提什么Opera、Safari之流了。还有更让人崩溃的，就是除了浏览器之外，你的系统上还必须要安装：Microsoft .NET Framework 3.5 (SP1)、Visual C++ 2005 SP1 ATL Security Update Redistributable、Microsoft Office 2007 (SP2)等一系列东西，你说有多烦有多烦！！！</a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　相比之下，真的建议他们（HP QC的架构师）去<u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">学习</strong></u><font color="#202859"><span style="line-height: normal !important;">一下Jira和Micro Focus SCTM，全部是用JavaScript类库实现，真正意义上的纯B/S架构，所以所有的浏览器都可以轻松访问，无需额外安装其他ActiveX！</span></font></a></p><p style="word-break: break-all; color: #333333; text-decoration: none; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">　　纯B/S架构带来的好处还有很多，包括友好的用户体验，以及无缝切入<u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">移动</strong></u><u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">互联网</strong></u><font color="#202859" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><span style="line-height: normal !important;">（</span></font><u style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><strong style="word-break: break-all;">手机</strong></u><font color="#202859" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><span style="line-height: normal !important;">访问），这些后面会单独列出来提及。</span></font><br /></a><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　这里还没说它的服务器端的安装呢！假如你曾装过Quality Center的服务器端，十有八九遇到过&#8220;数据库连接属性不正确&#8221;的问题，一般原因是数据库那边还得再做正确的配置，具体得看是SQL Server还是Oracle，各有各的招，这里就不多说了。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　总而言之一堆的问题要注意要设置好，还记得当年我写的那篇《关于"The RPC server is unavailable"的探讨及解决方案》吗？这个也是其中之一。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　再来说资源消耗。其实从上面的&#8220;最低配置要求8GB内存&#8221;大家就可以大致看出QC有多吃内存了。这么说吧，我们51Testing的讲师都最怕上QC这门课，不是因为这门课很难，而是很痛苦，每次从虚拟机里启动出来至少15分钟，中间还有很多操作也非常的卡。PS：我用的笔记本是HP ProBook 4230s，CPU是i3-2310M 2.10GHz，内存8GB，也是如此。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　<strong style="word-break: break-all;">　3、过于简化的需求管理模块。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　QC的需求管理严格意义上不属于真正意义上&#8220;开发需求的管理&#8221;，而是指针对测试需求的管理，并且可以结合Release模块设定简单的基线，不过如果你用过CaliberRM这种专业级的需求管理工具，就会发现QC的Requirements实在是弱爆了！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　Micro Focus SCTM就不一样了，它支持项目级的需求基线，而且可以直接切进CaliberRM（这是亮点），这才是真正意义的需求全生命周期管理。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　当然假如你的SRS是word文档，QC倒也可以把开发需求导入进去，但是问题是QC的word插件非常非常难用，导入的工作量一点都不比你自己手工输入来的快（因为需要针对每一个需求项去打begin和end标记）！！所以通常我们在企业实战中只能采用折中的方式，先把SRS转为Excel文档，再通过Excel Addin导入进去，当然导入的过程也不那么轻松，具体可以参考我的《ALM(Quality Center) Excel Addin深入剖析》，链接是：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　http：//wenku.baidu.com/view/04a20cee998fcc22bcd10d81.html</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><strong style="word-break: break-all;">　　4、不伦不类的test plan&#8212;&#8212;关于&#8220;测试计划&#8221;和&#8220;测试用例&#8221;的混淆。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　从TD以来一直到后来的QC、ALM，Quality Center一直把test plan认为是test cases&#8212;&#8212;从这里很容易看出来，设计这款工具的人是做开发出身的，不懂测试，呵呵。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　测试计划是什么？首先测试过程会分为计划、设计、实现、执行几个活动（按ISTQB的说法是测试过程分为计划和控制阶段、分析和设计阶段、实现和执行阶段、评估出口准则和报告阶段以及结束收尾阶段），分别解决&#8220;做什么&#8221;、&#8220;如何做&#8221;、&#8220;具体步骤是什么&#8221;、&#8220;发现缺陷并跟踪缺陷&#8221;、&#8220;评估测试报告&#8221;这几个问题。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　《测试计划》，是有国际性的模板的，即IEEE 829。请各位参考维基百科：http：//zh.wikipedia.org/wiki/IEEE_829内容包括明确组织形式（强矩阵、平衡矩阵、弱矩阵），明确测试对象，明确测试的需求跟踪和覆盖，明确测试的&#8220;通过/失败&#8221;标准，明确测试的挂起标准和恢复条件，明确工作的任务分配，明确项目可交付物。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　然而，QC里所谓的测试计划（test plan）对于以上这些统统没有涉及，实质上却是编写测试用例的模块，你可以看到用例的目录规划、用例的名称、用例的步骤，还可以看到用例的类型（是手工测试还是自动化测试），&#8230;&#8230;，总而言之，这就是Test Cases。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　而它的Release模块倒可以理解为粗略的测试计划模块，只是太粗糙了点儿。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　真正做到了可以沿着IEEE 829的样板编写测试计划的工具目前还没有，不过IBM RQM算是比较接近的，它们可定义做到的是定义测试目标，定义过程，定义每次迭代的进度并对重要的milestone跟踪，可以估计工作量，可以列出测试环境，定义开始和结束的标准，&#8230;&#8230;，总体来说还算不错。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　还有就是我们51Testing的TP(Test Platform)，也有独立的测试计划管理模块，可以建立多级测试计划，也包含了任务分配、工作量估计、风险管理、测试环境管理和分配等，也能通过度量监控测试的执行进度，质量状况。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><strong style="word-break: break-all;">　　5、华而不实的Business Components。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　QC中有个HP自己鼓吹的&#8220;业务驱动测试&#8221;的概念，叫：Business Components。核心理念是：BPT(Business Process Testing)，业务流程测试。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　干嘛用呢？简单的说，就是让SME（主题事件专家，也就是&#8220;业务专家&#8221;）可以借助自身对业务的熟悉通过对系统的熟练操作，让这个Business Components把所有操作记录下来，生成一个自动化脚本，然后通过QTP进行回归测试（只能通过QTP）。实际上如果大家对QTP的Keyword View比较熟悉的话，就能明白是怎么回事了。HP认定做测试的人主要分为两类：一类熟悉测试技术（包括精通编程、数据库，但对业务不甚精熟），一类则熟悉业务（但可能是编程白痴），这两类人都有测试的盲点，通过这个业务设计让两类截然不同的人得以协作。很美好吧？其实也有一点儿TDD的味道（沾边）。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　SCTM也有个类似的东西叫workbench，基于StoryBoard技术，也不需要编程（Visual Test）。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">　　但事实上，很少有公司可以做到清晰的划分这些，往往做测试的必须懂业务，即使你是自动化测试工程师，也得了解业务。所以，&#8230;&#8230;，就黄了，这个组件根本没有办法大面积推广开，在内部被证明失败之后，HP开始转型做 Sprinter&#8212;&#8212;这个东西后面会提，是个神器！不过国内还没有汉化，也几乎没人深入研究，大部分testers还没能体会到它的强大。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">版权声明：本文出自 songfun 的51Testing软件测试博客：copy Bookmark&nbsp;<a href="http://www.51testing.com/?songfun" style="word-break: break-all; color: #202859; text-decoration: none;">http://www.51testing.com/?songfun</a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">原创作品，转载时请务必以超链接形式标明本文原始出处、作者信息和本声明，否则将追究法律责任。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;">相关文章：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849395" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">让Quality Center走下神坛--测试管理工具大PK（上）</a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px;"><a href="http://www.51testing.com/?action-viewnews-itemid-849398" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none;">让Quality Center走下神坛--测试管理工具大PK（下）<br /><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><strong style="word-break: break-all; line-height: normal !important;">　6、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>设计分析的薄弱。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　QC把自己的架构做的很复杂很&#8220;强大&#8221;，可遗憾的是，在测试的分析设计上却非常的薄弱，可以说几乎没有&#8212;&#8212;很难想象一个被假设为如此强大的公司居然会没有测试分析？这种感觉就像给一个拖拉机安上了波音747的引擎。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　关于测试分析：其实业内的大部分<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试管理</strong></u></a>工具往往都是跳过分析这一环直接从测试需求跳到了<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试用例</strong></u></a>设计，而实际上对测试需求分解出来的东西直接进行<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">用例设计</strong></u></a>的话会造成分解粒度过于粗糙，导致大量测试分析细化的过程无法以可视化的方式体现出来，从而造成漏测。假如你的系统比较复杂，这个过程应该是：从测试需求分解出测试项，测试项分解出测试子项，然后在测试子项中设计测试用例。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　TP在这块上做的很不错，可以进行继承性分析、质量模型分析（ISO9126 Model六大特性27子特性）、功能交互分析、用户场景分析等专业性的分析，通过这些系统性的分析我们可以得到高质量的测试项。而且TP把我们测试人员对分析思考的过程记录和管理起来，这样就实现了对分析过程的评审了。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　所有做测试的人都知道V&amp;V，即Test = Verification + Validation。&#8220;测试&#8221;本质上就是验证和确认，验证过程的正确性，确认结果的正确性。而TP真正意义上实现了既确认结果，又验证过程。但很遗憾，QC不具备这个功能。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　而测试设计这块，也就是我们通常提到的等价类划分、边界值分析、判定表、因果图、状态迁移法、场景法（流程分析法）、正交实验法、输出域分析、错误猜测法等各种测试用例设计方法。它们同样在QC中也无法体现，这就意味着我们没有办法评审我们测试设计的过程！而漏了这个过程的评审，那么漏测也是在所难免了！比如我们只考虑了边界值，忽略了两两组合的分析（通过判定表或正交实验），虽然针对需求的覆盖可以达到100%了，但是仍然忽略了一些情况的考虑，那么QC这时是根本&#8220;察觉&#8221;不出来的。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　目前市面上的所有测试管理工具中，普遍缺少这块的功能实现，究其原因，我还是认为这些软件的设计者不是一个经验丰富的测试专家（应该只是做开发出身的），所以忽略了这些核心模块的功能实现。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　目前做到这一点的，只有51Testing的Test Platform这款工具&#8212;&#8212;这里我得自卖自夸一下，周峰（90年代就已经通过国家系统分析员认证），对测试的理解确实是高瞻远瞩，要比很多人都深入、全面。而他所有的考虑都融入到了TP里面，我也衷心希望同行可以借鉴，把这些功能添加到各自的工具模块中，毕竟百花齐放、百家争鸣才是最应该看到的景象。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　<strong style="word-break: break-all; line-height: normal !important;">　7、忽略<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;"><u style="word-break: break-all;"><strong style="word-break: break-all;">白盒测试</strong></u></a>，缺少代码覆盖率分析。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　所有熟知测试过程V模型的人都知道，测试活动分为：<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">单元测试</strong></u></a>、集成测试、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">系统测试</strong></u></a>，验收测试，分别验证软件的内部质量、外部质量、使用质量。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　然而QC似乎并不关心这些。因为QC只实现了测试用例对需求的覆盖关联，却没有办法进行代码级别的覆盖率分析。给人感觉QC更多关注的其实是黑盒层面的测试。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　而SCTM则进行全面的关注，它也可以关联需求，还可以收集Java/.Net的代码覆盖率，而且可以提供比较报告，让SQA随时掌握代码覆盖率的趋势变化，了解测试用例的充分程度。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　这样可以更好的帮助项目成员一起来使用这个测试管理平台。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　顺便说一下，SCTM在单元测试这块应该是所有测试管理工具中做的最好的，可以支持Fitness、JUnit、NUnit、.Net Explorer、Process Executor、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Windows</strong></u></a>&nbsp;Scripting等主流的单元测试/集成测试框架，而QC根本不支持，除非你做二次开发。差的远了！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><strong style="word-break: break-all; line-height: normal !important;">　　8、最关键的缺陷分析和Report功能。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　经常有朋友问我QC导出报告的问题，比如怎么把测试用例或缺陷以Excel的方式导出。其实QC的报告导出功能也很弱，特别是在Excel上，而且word的导出一直有<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">Bug</strong></u></a>，基本上不可定制的，特别是你如果针对前面的Test Plan等模块做过定制化或二次开发，在导出的时候会有各种问题。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　后来QC整合了Dashboard（其实就是展现各种数据指标的仪表盘），但是这意味着你必须是Enterprise Edition（收费更高昂），而且即使整合了Dashboard，只是在展示上更华丽了，导出的问题还是没解决！而其实&#8220;测试报告&#8221;才是关键，只要做过项目的兄弟都知道，甲方需要的是漂亮的word报告！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　而SCTM的报告功能却非常的丰富，它提供了一个专门的报告引擎BIRT，可以定制各种报告，也可以支持项目群报告、Dashboard，而且最重要的是：它们都是免费的！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　再说度量和缺陷分析，这更是QC的一大软肋！严格意义上来说，QC的那些数据分析离真正的缺陷分析还非常的远！可以说几乎就没有。而51Testing TP在这块上做的非常出众，提供了专业的ODC分析、Gompertz分析、Rayleigh分析、四象限分析、DRE/DRM等工程分析方法，可以对缺陷进行单、多维度分析、进行缺陷趋势分析、对缺陷进行预测等，为测试<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>质量评估、测试退出判断、遗留缺陷预测提供支撑。51Testing软件测试网9oz;R+nG(t2w:V]5LL"m</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　一句话：QC弱爆了，TP&#8220;碉堡了&#8221;！！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><strong style="word-break: break-all; line-height: normal !important;">　　9、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none;"><u style="word-break: break-all;"><strong style="word-break: break-all;">敏捷</strong></u></a>哪儿去了？</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　敏捷时代，不能不提敏捷。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　&#8220;个体与交互胜过过程与工具&#8221;&#8212;&#8212;这是著名的《敏捷宣言》的第一条价值观。不过，有意思的是，工具却成了今天大多数敏捷团队的重要组成部分。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　做过敏捷的人应该听说过Rally，这家公司是做敏捷项目生命周期管理工具的。其实还有很多，比如VersionOne、Mingle、DotProject、Redmine等。。。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　很遗憾，QC不提供这些工具的集成工具，也没有技术支持！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　这块做的最好的应该是Micro Focus SCTM，它提供了配套的集成工具，而且还提供技术支持，因为Micro Focus和这些软件厂商本身就是战略伙伴。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　当然，Atlassian Jira也是具有敏捷基因的工具，它有个GreenHopper插件，可以通过快速创建User Story来建立一个产品Backlog，可以在整个发布过程中管理Backlog、Sprint，并且监控项目的进度。此外，Jira还有一个名为Bonfire的插件，做<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">敏捷测试</strong></u></a>管理的，不过我还没有使用过，不敢做太多评论。</p><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　<strong style="word-break: break-all; line-height: normal !important;">10、移动端的访问。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　十年前，我就在想这件事情。作为团队的项目经理、测试经理，或公司的老板，日理万机，每天就为了了解项目状况，得扛着笔记本电脑&#8220;飞来飞去&#8221;，看上去实在大煞风景。更何况，在讲究&#8220;碎片化时间利用&#8221;的今天，我们在公交上、地铁里，掏出手机访问一下我们的测试管理系统，了解下&#8220;张三用例写到哪里了，李四缺陷修复了没有&#8221;岂不更加方便、高效？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　要说敏捷，我觉得这也算一种&#8220;敏捷&#8221;。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　QC有移动端APP吗？或是能通过手机浏览器访问吗？道听途说过，却从未曾见。个人觉得很不靠谱，为什么？别忘了前面第2点提到的QC客户端对Windows平台和IE浏览器的依赖，假如我们用的是iPhone、iPad，或者Android设备，那怎么可能访问呢？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　相比之下，Jira和SCTM就具有这样的先天优势了。为什么呢？别忘了它们都是用JavaScript类库实现的，不需要安装ActiveX，是真正的纯B/S&#8212;&#8212;自然可以通过手机浏览器访问了！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　事实上，Jira确实有移动端的APP，我刚特地去App Store上搜索了一下，呵呵，见下：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><a href="http://www.51testing.com/batch.download.php?aid=41439" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/07/14982672_201307221249211peg3.jpg" width="356" height="263" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px;"  alt="" /></a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　而且，连Bugzilla也有移动端的APP了！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　个人觉得，移动互联网时代，这些测试管理工具也都将面临着新一轮的洗牌，HTML5的支持、CSS3的支持、大量的JavaScript类库&#8230;&#8230;QC还能撑多久，我们拭目以待！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><strong style="word-break: break-all; line-height: normal !important;">　　11、用户体验哪儿去了？</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　其实TD当初的用户体验还真的挺好的，但是QC的用户体验，唉，不提也罢。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　庞大的身躯、臃肿的组件、极差的兼容性、缓慢的运行速度、滞后的设计理念、封闭性&#8230;&#8230;其实前面都已经提到过了。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　用户体验的精髓在于&#8220;Don&#8217;t make me think&#8221;，而QC却是&#8220;make me think hard&#8221;。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　<strong style="word-break: break-all; line-height: normal !important;">12、唯一的亮点：Sprinter，探索性测试（Exploratory Testing）和兼容性测试的头号利器！</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　QC唯一的亮点应该就是从QC 11.0开始推出了Sprinter&#8212;&#8212;一个半自动化测试的集成工具。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　它既不是QTP，也不是Selenium，而是可以把你手工测试的过程直接记录下来，进行&#8220;自动化回归&#8221;，比如屏幕捕捉（截图、截视频）、屏幕记录（截图以后可以在上面做标记）、自动数据注入（Data Injection），可以在执行用例的同时直接生成缺陷报告，非常适合做探索式测试。还可以做镜像测试，也就是同时进行多环境的配置测试，是兼容性测试的利器！我亲见过它的强大，确实&#8220;亮瞎了眼&#8221;！我推荐大家去体验一把，这种针对手工测试的自动化一点都不需要你有编程基础，用起来又快又方便，真的是&#8220;谁用谁知道&#8221;！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　只是很可惜，HP没有足够的重视Sprinter，没有把这张王牌打好。因为准确的说，QC是用不了Sprinter的，ALM才能支持Sprinter，这意味这你必须先升级到它们的ALM(QC 11)。这成了它的第十二宗罪！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><strong style="word-break: break-all; line-height: normal !important;">　　13、离线模式和版本管理。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　随着GIT的兴起，离线开发和离线Repository将成为一种新兴的需求和开发模式。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　我们51Testing出去和用户推TP的时候，就遇到有用户提出这样的需求（而我们的TP已经实现了离线模式）。但事实上，QC并没有离线模式，必须始终保持QC Connection，而且消耗你的License！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　除了51Testing的TP，Micro Focus SCTM也支持离线模式（通过MTC来支持），也可以在你工作完成后提交测试结果。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　好吧，即使我们不谈离线模式，就说版本管理，QC仍然在同类测试管理工具中处于下游。QC虽然提供了版本管理的功能，但是非常弱，易用性也极差。比如你编写了测试用例，经过评审之后修改了用例，过几天删除了，过几天又想恢复&#8230;&#8230;那么这些通过QC实现是几乎不可能的。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　在版本管理这块，SCTM(Silk Central Test Manager)就不一样了，它可以支持测试用例的版本化，还可以指定当前测试项目测试用例的活动版本！是不是很强大？！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><strong style="word-break: break-all; line-height: normal !important;">　　14、相形见绌的扩展性。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　QC几乎没有任何扩展性！虽然它有一个Add-in Pages，但是基本都没有和业界主流工具集成，上面可以下载的都是诸如QTP Addin、Excel Addin这种东西，实在不值一提。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　扩展性这块，Jira很不错，不过最强的还是SCTM，还记得前面发过的文章吗？&#8212;&#8212;《你见过的这么强大的开箱即用的测试管理工具吗？》</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　好吧，这里再次描述一次：SCTM号称业界最开放的测试管理平台，需求部分支持CaliberRM、DOORS、RequisitePro、Word，变更管理部分支持StarTeam、Subversion(SVN)、VSS、CVS、PVCS、VSTS，缺陷管理部分支持Atlassian Jira、Bugzilla、IBM ClearQuest、Microsoft VSTS、StarTeam，自动化测试这块支持JUnit、NUnit、Fitness、TestPartner、SilkTest、SilkPerformer、VMWare Lab Manager&#8230;&#8230;据说现在还在增加扩展&#8230;&#8230;不得不赞美一句，牛B！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">　　OK，至此，《让Quality Center走下神坛》已经全部打完收工！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">版权声明：本文出自 songfun 的51Testing软件测试博客：copy Bookmark&nbsp;<a href="http://www.51testing.com/?songfun" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">http://www.51testing.com/?songfun</a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">原创作品，转载时请务必以超链接形式标明本文原始出处、作者信息和本声明，否则将追究法律责任。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;">相关文章：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><a href="http://www.51testing.com/?action-viewnews-itemid-849395" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">让Quality Center走下神坛--测试管理工具大PK（上）</a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 23.99305534362793px; color: #333333;"><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;">让Quality Center走下神坛--测试管理工具大PK（中）</a></p><div style="word-break: break-all; line-height: 23.99305534362793px; margin: 10px 0px; color: #333333; height: 21px; position: relative; width: 627.1875px;"></div><br /><br /></a></p></a></p><a href="http://www.51testing.com/?action-viewnews-itemid-849397" target="_blank"></a></p></p><img src ="http://www.blogjava.net/qileilove/aggbug/401936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-07-25 10:09 <a href="http://www.blogjava.net/qileilove/archive/2013/07/25/401936.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于需求的软件测试</title><link>http://www.blogjava.net/qileilove/archive/2013/06/04/400151.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Tue, 04 Jun 2013 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/06/04/400151.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/400151.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/06/04/400151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/400151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/400151.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">&#9679; 目的：保证需求质量</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 手段：针对需求开展<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>设计</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 测试设计面临的挑战：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、测试准则不确定（测试是比较预期结果与实际结果的过程，预期结果最了解的人群是开发、需求人员还是客户？答案未知，但是如果需求的质量更高些的话，会更利于更准确的知道预期结果）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、测试无穷尽：要用少的用例覆盖尽可能多的需求，如何挑选合适的用例显得尤其重要</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、用例执行pass是否真正代表对应场景或功能就pass =&gt;缺陷隐藏效应证明不一定，那么在挑选用例时如何做到，RBT会有所考虑</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　RBT是如何实现上面所提挑战的？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; 为什么要基于需求来开展测试？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、导致软件失败的原因如下：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　a）需求不完整</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　b）需求多变</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　c）需求缺少来自用户的实际输入</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　从而导致仅有60%~70%的需求交付量，且此其中50%左右的需求未被使用过，而开发团队针对这些未使用过的需求，投入了大量精力，存在一定程度的浪费。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、BUG分析缺陷来自哪个阶段？=&gt;60%来源于需求阶段（怎么有效区分BUG是哪个阶段？）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; RBT解决的是偏重型的测试问题（考虑项目的可适用性），是针对每条需求进行分析设计</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; RBT倡导的思维是先测试，再构建</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; RBT过程两大步：需求模糊度分析、因果图方法进行测试设计</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、需求模糊度分析</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　实际是分析需求是可测试的、可观察可触发的、结果是确定的（结果是确定的指：给定输入后，能准确得出其唯一的结果，对于输入A，结果为C，再次输入A，结果为B的情况则是不符合&#8220;结果是确定的&#8221;原则。当出现这种情况，则需求是肯定有问题的）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、因果图方法进行测试设计，以下是几类设计方法的对比分析</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　a）根据用户实际使用场景、环境参数来设计用例的情况：30%左右的覆盖不乐观，且异常考虑不充分，依赖时间的场景无法覆盖</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　b）依据直觉进行设计的情况：依赖测试者经验，覆盖不确定，只能代表执行过的是OK，不能证明其完整覆盖度</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　c）组合测试设计的情况：所有场景组合全部覆盖，量太大</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　d）因果图方法设计的情况：借鉴了硬件领域的一些工程算法，覆盖率高</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　&#9679; RBT方法选择用例的标准：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、体现变量间的各种逻辑关系</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、体现每个变量各种状态间的约束</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、考虑各节点的可观察性，如下面的例子</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　例子：</p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=40172" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2013/05/346836_201305241341041IYyW.jpg" width="452" height="223" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 452px; height: 215px;"  alt="" /></a></p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　A、B、D、E全为T，C、F、G均为True，假定当A恒为False的缺陷存在时，直接通过对G的观察是无法发现此缺陷的，因为C、F是不可观察的</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　4、需测试哪些功能块<br /><br /><br /><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　&#9679; RBT过程12步骤（12步记录不全）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　1、分析为什么要做这个需求？（如同敏捷测试中要求一样，即：需求来自于哪里？用户是什么样的群体？基于什么原因提出这样的需求？要解决什么样的问题？有无其它可替代方案来解决？是否一定要做这样的需求？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　2、用场景分析方法来分析需求的应用情况</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　3、进行模糊度分析，即：识别不清晰、不完整、疑惑点的地方（此点更期望是不了解需求的人来做，而非专家）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　4、领域专家进行更深层次的审视</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　5、针对需求建模，理出所有业务逻辑，采用因果图方法</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　6、用工具检查逻辑不一致问题，可能是需求本身的问题，也可能是建模的问题</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　7、工具自动生成用例（此处的用例可以理解为是测试验证点，而非具体的测试数据）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　8、确认生成的用例是否正确（此处有一个个人问题：既然自动生成的用例已经是很精简了，再进行评审怎么保证评审出的问题是否需要补充到用例的？=&gt;答案：评审的目的一是确认是否正确理解了规则与需求，二是通过评审问题反向识别出需求遗漏的场景（如果可能，要求客户对需求进行review是最合适的）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　9、设计编码阶段，用生成的用例进行验证</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　&#9679; RBT工具用途（记录了一些，不全）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　1、自动生成测试用例</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　2、自动生成两张表单：因与果清单、规则VS用例覆盖率的对照表（&#8220;X&#8221;表示多个用例覆盖此规则，&#8220;#&#8221;表示1个用例覆盖此规则）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　3、生成测试统计数据</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　4、自动反向生成较规范的需求文档，适用场景：a、review需求时发现的问题确认后，不会更新需求，通过自动生成更新得到全集；b、敏捷项目中适用，项目结束后形成需求与用例的匹配</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　5、生成用例过程中自动进行功能逻辑一致性校验，并给出提示，如同开发程序编译时的错误提示</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　6、维护过程会考虑对原有用例的最大程度复用</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　7、告诉你可优先执行哪些用例</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　8、支持快速设计（推荐在配置测试中使用，如移动领域测试环境支持验证，可生成基础用例）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; font-size: 12px;">　　9、可定义节点间的状态、约束，以便生成的用例是可执行或真实的组合，对于不可执行的用例前面会有&#8220;I&#8221;标识，点击后会显示原因<br /></p></p><div style="word-break: break-all; line-height: 21.59375px; margin: 10px 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; height: 21px; position: relative; width: 627.1875px;"></div><img src ="http://www.blogjava.net/qileilove/aggbug/400151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-06-04 10:28 <a href="http://www.blogjava.net/qileilove/archive/2013/06/04/400151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试人员如何做好需求分析</title><link>http://www.blogjava.net/qileilove/archive/2013/05/20/399492.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 20 May 2013 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/20/399492.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399492.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/20/399492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399492.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399492.html</trackback:ping><description><![CDATA[<div><strong><div><strong>什么是需求</strong><p>　　需求是产品必须完成的事以及必须具备的品质。</p><p>　　功能性需求</p><p>　　功能性需求是产品必须完成的那些事，要求一定的功能和品质。</p><p>　　例子：培训机构的班主任可以给所在班级学员打考勤</p><p>　　非功能性需求</p><p>　　非功能性需求是产品必须具备的属性或品质。诸如观感、可用性、安全性和法律限制等。</p><p>　　例子： 平台用户数为5万人，每天登录用户数为10000左右，网络的带宽为100M带宽。在<a target="_self"><u><strong>工作</strong></u></a>时间根据资料名称条件进行搜索，可以在3秒内得到搜索结果。</p><p>　　这类需求通常在产品的功能确定之后（但并非总是如此）。也就是说，一旦知道了产品要做的事情，就可以确定它的行为方式，它需要具备什么品质以及它的响应速度、可用性、可读性和安全性。</p><p>　　限制条件</p><p>　　限制条件是全局性的需求。它们可以是对项目本身的限制，或是对产品最终设计的限制。</p><p>　　例子：南京平台必须在2010年开学的第一学期上线</p><p>　　客户是在说，如果顾客不能在给定的时间前使用该产品，那么它就没有什么用了。其效果是，<a target="_self"><u><strong>需求分析</strong></u></a>师必须对需求进行限制，只包括那些在最后期限前能够提供最大价值的需求。</p><p>　　<strong>需求分析的重要性</strong></p><p>　　背景：冯大勇吃鱼时嗓子被鱼刺卡住了。现在正坐在椅子上候诊。<br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大夫：（在桌上拿起一份挂号单，大声的喊）冯大勇！<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 冯大勇：（病怏怏的样子，边走边咳嗽）我是。<br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大夫：怎么了？（低头整理手中的资料，自言自语，并打手势，示意冯大勇坐下）<br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 冯大勇：我．．．（咳嗽）．．．我今天．．．（咳嗽）<br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大夫：不用说了，我知道了。（从桌子下面拿出一个大盒子，放在桌子上）我看你适合吃这种药。这是本院独家开创的哮喘新药&#8220;咽喉糖浆&#8221;，疗程短，见效快，一个疗程吃3盒，平均每天只需花费3块钱。给你先开6盒吧！（边说边开药方）<br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 冯大勇非常惊讶地瞪大眼睛并止不住地弯腰大声咳嗽，以至于把鱼刺都咳出来了。冯大勇从口里掏出一条巨型鱼刺，递给医生。医生见到鱼刺先是吃惊，而后又非常尴尬。</p><p>　 　医生不了解病人的需求就用药，是草菅人命；销售员不了解客户的需求就进行推销，不仅自己要徒劳无功地浪费很多口舌，更重要的是完不成销售的目标。给客户 推销软件产品，也相当于医生给病人治病，应当首先充分、全面地了解客户的需求所在、期望所在，然后才能带给他一个完美的解决方案。</p><p>　　<strong>需求分析没有做好的后果一般会有下列现象：</strong></p><p>　　1、浪费时间和资源来满足用户并不需要的需求（过度实现一些功能）；</p><p>　　2、开发出来的产品技术上先进，但不满足用户需求；</p><p>　　3、总是需要比较长的时间来达成对产品设计的共识；</p><p>　　4、在产品设计，开发和<a target="_self"><u><strong>测试</strong></u></a>工作中对于用户需求的解释不一致；</p><p>　　5、员工会厌倦因需求不断被重新解释而导致的返工；</p><p>　　6、未说明的或不正确的需求会导致员工与用户间的不满；</p><p>　　7、不稳定的产品，用户的不满意对我们未来的市场造成损失；</p><p>　　8、浪费时间，增加成本，使得在一些投标的项目中不能低价；</p><p>　　1、如果你在编码的时候发现某几行有误，那么改掉这几行就行了。而如果在编码阶段发现需求有误，那么你很可能需要改变所有代码来适应新的需求</p><p>　　2、在需求阶段消除问题的代价最小，而如果需求问题等到产品发布出去后才发现的话，那修复的成本就会N倍的增加。</p><p>　　3、稳定的需求是<a target="_self"><u><strong>软件开发</strong></u></a>的关键。有了稳定的需求，软件开发工作可能从结构设计到详细设计到代码到测试都会平稳顺利的进行。</p><p>　　<strong>为什么要做需求分析</strong></p><p>　　1、&#8220;决策性&#8221;--要不要做这个产品，通过对市场需求的分析来决策项目是否需要立项；</p><p>　　2、&#8220;方向性&#8221;--良好的需求分析可以对项目人员明确方向，让项目成员知道下面应该如何实施；</p>　　3、&#8220;策略性&#8221;--既然知道了为什么要做需求分析，就需要了解什么是需求分析，及如何做。需求分析并不是简单的对与错，比如说做一个产品，&#8220;做技术最先进的软件，还是做最好卖的软件&#8221;，这个需求有错吗，没有，只能说需要从不同的地方去考虑，去定位。</div><br />如何进行需求分析</strong> <p>　　&#8220;  需求分析&#8221;不代表&#8220;用户要求什么就是什么&#8221;也不代表&#8220;我们能做什么就做什么&#8221;，做为需求人员，在进行需求分析的时候，首先应该明白用户的需求，然后再加上 自己的分析处理过程，知道哪些我们现在能做，哪些我们做不了，哪些我们咬咬牙齿能做，需求人员在做需求分析的时候不能一味的成为客户的传话筒，要有自己的 分析。</p> <p>　　一般可以从三个方面去考虑：</p> <p>　　1、功能需求--产品应该完成哪些功能，即向用户提供的功能，一般来说这个都是比较硬性的标准；</p> <p>　　2、非功能性需求--用户可能不能明确告诉你的一些需求，比如说性能达到什么要求，可靠性方面，响应时间，扩展性，性能方面等，这块的内容并不 是说用户需要，而是说不知道需要做成什么样的，我们不能不做，做了只会对自己受益。要不然等到后期用户使用感觉这慢，那不爽，那倒霉的还是是自己；</p> <p>　　3、限制条件--在需求分析中需要考虑一些条件约束，规则等，比如客户的约束，行业的约束，法律的约束以及自己的约束等，这些都需要在需求分析考虑清楚，要不然做出一款白人狂殴黑人的游戏给黑人玩，那就惨了&#8230;&#8230;</p> <p>　　<strong>测试需求分析的步骤</strong></p> <p>　　1 、 熟悉需求背景及商业目标：</p> <p>　　a) 了解清楚项目发起的原因，是为了解决用户的什么问题。</p> <p>　　b) 当前的解决方案是不是最优的，为什么会这样做？</p> <p>　　2 、业务模型法：</p> <p>　　a) 考虑本项目与外部系统的交互，划分系统边界（除了本项目的需求中要求做的事情，其他的都可以是外部系统，本系统和外部系统之间的交互就是系统的边界），可以参考系统分析说明书。</p> <p>　　b) 确定测试范围和关注点。系统的边界是测试的重点，特别需要关注边界交互时的数据交互。</p> <p>　　3 、业务场景法：</p> <p>　　a) 考虑用例的调用者；考虑每一个用例提供的服务是供哪些外部用例或者系统调用，找出所有的调用者。调用的前提、约束都要考虑。每一个调用都可以考虑成一个大的业务流程。（一般和外部有交互的用例出错的概率比较大，需要重点关注）</p> <p>　　b) 考虑系统内部各个用例之间的交互，形成内部业务流程图。需要分析每个用例之间的约束关系、执行条件，组织出各种业务流程图。</p> <p>　　4 、功能分解法</p> <p>　　a). 业务功能：与用户实际业务直接相关的功能 或细节。</p> <p>　　b). 辅助功能：辅助完成业务功能的一些功能或者是细节，比如，设置过滤条件。</p> <p>　　c). 数据约束：功能的细节，主要是用于控制在执行功能时，数据的显示范围、数据之间的关系等。</p> <p>　　d). 易用性需求：功能的细节，产品中必须提供了，便于功能操作使用的一些细节，比如快捷键就是典型的易用性需求。</p> <p>　　e). 编辑约束：功能的细节，在功能执行时，对输入数据项目的一些约束性条件，比如只能输入数字。</p> <p>　　f). 参数需求：功能的细节，在功能中，需要根据参数设置不同，进行不同处理的细节。</p> <p>　　g). 权限需求：功能的细节，这里的权限是指在功能的执行过程，根据根据不同的权限进行不同处理的，不包括直接限制某个功能的权限。</p></div><div><strong>一个有趣的例子</strong> <p>　　某日，老师在课堂上想考考学生们的智商，就问一个男孩：&#8220;树上有十只鸟，开枪打死一只，还剩几只？&#8221;</p> <p>　　男孩反问：&#8220;是无声枪么？&#8221;</p> <p>　　&#8220;不是。&#8221;</p> <p>　　&#8220;枪声有多大？&#8221;</p> <p>　　&#8220;80~100分贝。&#8221;</p> <p>　　&#8220;那就是说会震的耳朵疼？&#8221;</p> <p>　　&#8220;是。&#8221;</p> <p>　　&#8220;在这个城市里打鸟犯不犯法？&#8221;</p> <p>　　'不犯。&#8220;</p> <p>　　&#8220;您确定那只鸟真的被打死啦？&#8221;</p> <p>　　&#8220;确定。&#8221;老师已经不耐烦了，&#8220;拜托，你告诉我还剩几只就行了，OK？&#8221;</p> <p>　　&#8220;OK。鸟里有没有聋子？&#8221;</p> <p>　　&#8220;没有。&#8221;</p> <p>　　&#8220;有没有关在笼子里的？&#8221;</p> <p>　　&#8220;没有。&#8221;</p> <p>　　&#8220;边上还有没有其他的树，树上还有没有其他鸟？&#8221;</p> <p>　　&#8220;没有。&#8221;</p> <p>　　&#8220;方圆十里呢？&#8221;</p> <p>　　&#8220;就这么一棵树！&#8221;</p> <p>　　&#8220;有没有残疾或饿的飞不动的鸟？&#8221;</p> <p>　　&#8220;没有，都身体倍棒。&#8221;</p> <p>　　&#8220;算不算怀孕肚子里的小鸟？&#8221;</p> <p>　　&#8220;都是公的。&#8221;</p> <p>　　&#8220;都不可能怀孕？&#8221;</p> <p>　　&#8220;&#8230;&#8230;&#8230;，决不可能。&#8221;</p> <p>　　&#8220;打鸟的人眼里有没有花？保证是十只？&#8221;</p> <p>　　&#8220;没有花，就十只。&#8221;</p> <p>　　老师脑门上的汗已经流下来了，下课铃响起，但男孩仍继续问：&#8220;有没有傻的不怕死的？&#8221;</p> <p>　　&#8220;都怕死。&#8221;</p> <p>　　&#8220;有没有因为情侣被打中，自己留下来的？&#8221;</p> <p>　　&#8220;笨蛋，之前不是说都是公的嘛！&#8221;</p> <p>　　&#8220;同志可不可以啊！&#8221;</p> <p>　　&#8220;&#8230;&#8230;&#8230;&#8230;，性取向都很正常！&#8221;</p> <p>　　&#8220;会不会一枪打死两只？&#8221;</p> <p>　　&#8220;不会。&#8221;</p> <p>　　&#8220;一枪打死三只呢？&#8221;</p> <p>　　&#8220;不会。&#8221;</p> <p>　　&#8220;四只呢？&#8221;</p> <p>　　&#8220;更不会！&#8221;</p> <p>　　&#8220;五只呢？&#8221;</p> <p>　　&#8220;绝对不会！！！&#8221;</p> <p>　　&#8220;那六只总有可能吧？&#8221;</p> <p>　　&#8220;除非你他妈的是猪生的才有可能！&#8221;</p> <p>　　&#8220;&#8230;好吧，那么所有的鸟都可以自由活动么？&#8221;</p> <p>　　&#8220;完全可以。&#8221;</p> <p>　　&#8220;它们受到惊吓起飞时会不会惊慌失措而互相撞上？&#8221;</p> <p>　　&#8220;不会，每只鸟都装有卫星导航系统，而且可以自动飞行。&#8221;</p> <p>　　&#8220;恩，如果您的回答没有骗人，&#8221;学生满怀信心的回答，&#8220;打死的鸟要是挂在树上没掉下来，那么就剩一只，如果掉下来，就一只不剩。&#8221;</p> 　　老师当即倒！</div><div><strong>举例说明如何进行测试需求分析</strong> <p>　　先看一段关于日志文件的需求描述如下：&#8220;软件要将所有的访问者都要记录下来，对每次访问要记录访问开始时间、访问结束时间、访问者的IP地址这三个信息作为一条日志记录。要求以天为单位每天生成一个访问记录日志文件。</p> <p>　　在这段需求描述中，我们首先要想象自己是日志模块的开发者，根据这段需求描述，是否能够开发出日志模块来呢？日志文件要记录的信息内容上面都提到了：访问开始时间、结束时间、IP地址。乍一看好像可以根据这个需求描述进行开发。</p> <p>　　但仔细来分析一下这段需求的话，就会发现并不是想象的那样乐观。先找出需求中涉及的三个显性元素：</p> <p>　　1、访问者</p> <p>　　2、访问记录</p> <p>　　3、日志文件</p> <p>　　首先对访问者和访问记录这两个元素进行分析，先看访问者有那些属性，除了描述中提及的访问时间和IP地址外，访问者还有那些属性呢？显然访问者 的访问内容是最重要的属性，仅记录访问时间和访问者的IP地址是否足够呢，从日志能分析出什么有用的信息呢？从时间信息上最多只能看出那段时间访问的人数 较多，得到用户的时间分布规律，但很难对用户的行为有深入的分析，只有知道访问者在访问那些内容才能得到更有价值的信息。象Web服务器软件要记录下访问 的URL信息以便知道访问者访问的内容，所以访问记录中遗漏了关于访问内容的信息。</p> <p>　　从访问记录这个元素来分析，访问记录主要属性是记录格式，每条记录是以什么格式来记录呢？没有描述出来。有经验的开发者就知道日志记录格式是一 个很重要的问题，因为日志记录的分析一般是需要使用专门的分析软件或者写专门的分析程序来分析的。如何设计合理的记录格式来利用已有的日志分析软件来进行 分析是首要考虑的问题。</p> <p>　　再对日志文件这个元素进行分析，先看看日志文件有那些属性，首先日志文件具有文件名，还有存放位置，文件格式，文件内容、文件创建时间、文件大小、文件权限等属性。</p> <p>　　需求描述中提到了每天要生成一个日志文件，从文件创建时间属性来看，每天有24小时，到底从什么时候开始创建文件，从0点开始还是从几点开始，没有描述出来。</p> <p>　　---从文件名属性来看，如何命名日志文件，需求中也没有提及。从存放位置属性来看，日志文件存放在什么地方也没有说明。是不是所有的日志文件都存放在应用程序同一子目录下？</p> <p>　　---从文件格式属性来看，首先日志文件是以文本方式存储还是以二进制格式存储？再者，文件的内容是以何种格式记录，每条访问记录间如何分隔，是以回车换行作为分隔还是以其他字符作为分隔？都没有描述。</p> <p>　　---从文件内容属性来分析，除了存放上述描述的内容外，是否还可以保存其他内容，如果不能保存其他内容的话，需求描述中应该加上一句&#8221;日志文件中只能存储访问记录信息，不得储存其他记录信息&#8220;。</p> <p>　　---从文件大小属性来分析，日志文件的大小有没有限制？如果某天处于访问高峰期，访问特别多，是否需要将日志文件分拆成多个是一个需要考虑的问题。</p> <p>　　---从文件权限属性来分析，日志文件是否机器上的所有用户都可以访问还是只有特定的用户可以访问？文件是否需要设置权限是一个需要考虑的问题。</p> <p>　　所以在对上述需求描述进行分析后，你会发现需求描述中有很多的问题没有描述清楚。也许有人会有疑问，如果将所有上面说到的问题都描述出来的话会 不会工作量太大了？仅从需求分析的角度来讲，需求规格描述得较细的话确实会增大很多工作量，但从整个开发过程来看，需求描述完整的话，后续阶段的开发产生 歧义和遗漏的可能性就很小，实际上后续阶段节约的时间会大大超过需求所多花的时间。</p> <p>　　<strong>测试人员在需求阶段应做哪些工作</strong></p> <p>　　1)首先，测试用例和测试工作本身是不断完善的，在开发过程的初期，可以认为是需求阶段，或者没有规范需求工作的设计阶段。如果有一个比较明确的需求文档，可以在这个阶段检查完了需求文档以后开始设计测试用例。这里，对于需求文档的检查主要是两个方面：</p> <p>　　---检查需求文档描述的正确性，测试人员要对于真实的系统所涉及的业务非常熟悉，比如一个简单的财务软件，那么测试人员本身就要对会计工作熟 悉，财务制度熟悉，在检查需求文档的时候不要迷信所谓的&#8221;都是用户真实的需求&#8220;，这里存在两个问题，一是用户是否真的能正确地描述自己的需求，二是需求人 员是否真的能正确地理解需求。另外，还有一个用户的需求是否符合行业规范的问题，如果不符合，那么是否要确认--这里存在一个隐患，用户可能会在开发的后 期突然要求他们自己要走行业规范，让你的需求变动，所以要事先明确好。</p> <p>　　---检查需求文档描述的准确性。主要是考虑文档中是否存在描述的模糊的地方，对于自己不清楚的问题一定要明确。这个时候是要保证需求的可测试性--我的意思是说保证需求是可以完全为测试工作服务的。</p> <p>　　2)那么在检查完了需求之后，就可以开始设计测试用例了，在这个阶段因为没有开始设计工作，所以对于测试用例的考虑不能仅仅从界面出发，而应该从业务角度出发，从实际业务出发来设计测试用例。</p> <p>　　当然，这个阶段所设计的测试用例是不够完善的，只能涵盖某些内容，但是我认为这些用例不仅仅全部都是功能测试用例，而且在整个项目中都将有效。 。</p> <p>　　3)不过，当缺少需求文档时，那就要发挥测试人员自己的能动性了，要主动的工作，而不是被动的等待。要自己尝试着去熟悉实际业务，要尽量通过自己所能想到的方法来开展工作。</p></div><img src ="http://www.blogjava.net/qileilove/aggbug/399492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-20 10:41 <a href="http://www.blogjava.net/qileilove/archive/2013/05/20/399492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>缺陷管理工具TD使用说明</title><link>http://www.blogjava.net/qileilove/archive/2013/05/17/399396.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 17 May 2013 02:16:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/05/17/399396.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/399396.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/05/17/399396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/399396.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/399396.html</trackback:ping><description><![CDATA[<div><strong>TestDirector介绍</strong><p>　　<a target="_self"><u><strong>Test</strong></u></a> Director：是Mercury Interactive 公司推出的基于WEB 的<a target="_self"><u><strong>测试</strong></u></a>管理工具，在本文档中我们简称为TD。</p><p>　　其中包括的内容有：</p><p>　　1、需求定义（Specify Requirements）：</p><p>　　分析应用程序并确定测试需求。</p><p>　　2、测试计划（Plan Tests）：</p><p>　　基于测试需求，建立测试计划。</p><p>　　3、测试执行（Execute Tests）：</p><p>　　创建测试集（Test Set）并执行测试。</p><p>　　4、缺陷跟踪（Track Defects）：</p><p>　　报告程序中产生的缺陷并跟踪缺陷修复的全过程。</p><p>　　<strong>TD的缺陷跟踪功能</strong></p><p>　　1、公司部署的TD访问地址：</p><p>　　http：//td.teacher.it/tdbin/start_a.htm；也可以从http：//dev.teacher.it/中访问.</p><p>　　2、用户名及密码设置：</p><p>　　用户名为姓名的字母全拼，</p><p>　　如：姓名：李翠霞，用户名为：licuixia，</p><p>　　初始密码为空，用户登录后在TOOLS中修改密码。</p><p>　　3、项目选择：teacher-1</p><p>　　可参考下面的图片：</p><p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40003" target="_blank"><img style="width: 607px; height: 419px" src="http://www.51testing.com/attachments/2013/05/611095_201305151145471i4fT.jpg" border="0" height="431" width="647"  alt="" /></a></p><p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40004" target="_blank"><img style="width: 617px; height: 421px" src="http://www.51testing.com/attachments/2013/05/611095_201305151145561xLFq.jpg" border="0" height="426" width="661"  alt="" /></a></p><p align="center"><div>4、角色权限设置： <p>　　----QA人员：</p> <p>　　发现并提交BUG，在开发人员修复完成时验证BUG状态。</p> <p>　　----项目经理：</p> <p>　　如果是BUG：打开BUG并分配给相关的开发人员，同时选择BUG的优先级。</p> <p>　　如果不是BUG或此BUG描述不清：选择拒绝修复，同时在注释中写明拒绝修复的原因。</p> <p>　　----开发人员：</p> <p>　　如果是BUG：打开BUG把BUG状态置为：已修复，修复完成后在开发注释中写明BUG出现的原因。</p> <p>　　如果不是BUG或此BUG描述不清：选择拒绝修复，同时在开发注释中写明拒绝修复的原因。</p> <p>　　可参考下面的图片：</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40005" target="_blank"><img style="width: 527px; height: 472px" src="http://www.51testing.com/attachments/2013/05/611095_2013051511460210wFG.jpg" border="0" height="486" width="527"  alt="" /></a></p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40006" target="_blank"><img style="width: 542px; height: 445px" src="http://www.51testing.com/attachments/2013/05/611095_201305151146111wzEj.jpg" border="0" height="450" width="552"  alt="" /></a></p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40007" target="_blank"><img style="width: 553px; height: 444px" src="http://www.51testing.com/attachments/2013/05/611095_201305151146231HeMi.jpg" border="0" height="459" width="553"  alt="" /></a></p></div><div>必要操作步骤： <p>　　(1)选择BUG状态，</p> <p>　　项目经理可以选择： OPEN/REJECTED</p> <p>　　开发人员选择为：FIXED/REJECTED</p> <p>　　测试人员选择为：REOPEN/CLOSED</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40008" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_201305151146271Hjpy.jpg" border="0"  alt="" /></a></p> <p>　　(2) 分配并发邮件给具体的开发人员</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40009" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_201305151146351CAit.jpg" border="0"  alt="" /></a></p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40010" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_201305151146421ZIse.jpg" border="0"  alt="" /></a></p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40011" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_201305151146481dxL3.jpg" border="0"  alt="" /></a></p></div><div><p> 字体:&nbsp; <a target="_self">小</a>&nbsp; <a target="_self">中</a>&nbsp; <a target="_self">大</a>&nbsp; | <a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=up&amp;itemid=229485&amp;catid=96" target="_self">上一篇</a> <a href="http://www.51testing.com/batch.common.php?action=viewnews&amp;op=down&amp;itemid=229485&amp;catid=96" target="_self">下一篇</a> | <a target="_self">打印</a>&nbsp; | <a href="http://bbs.51testing.com/thread-77515-1-1.html" target="_blank">我要投稿</a>&nbsp;   </p>  <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40012" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_201305151146541xfrs.jpg" border="0" height="455" width="624"  alt="" /></a></p> <p align="left">　　<strong>开发人员处理BUG</strong></p> <p align="left">　　第一步：修改BUG状态：</p> <p align="left">　　如果确定是BUG，而此BUG需要修复的时间花费较长，BUG状态就</p> <p align="left">　　为OPEN，</p> <p align="left">　　直到BUG修复改完成后，再到TD工具中把BUG状态修改为FIXED。</p> <p align="left">　　同时在TD中选择测试人员，发邮件通知。</p> <p align="left">　　第二步：选择修改日期：</p> <p align="left">　　选择开始修改BUG的日期。</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40013" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_201305151146591h80z.jpg" border="0"  alt="" /></a></p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40014" target="_blank"><img src="http://www.51testing.com/attachments/2013/05/611095_201305151147041ar8M.jpg" border="0"  alt="" /></a></p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=40015" target="_blank"><img style="width: 604px; height: 462px" src="http://www.51testing.com/attachments/2013/05/611095_201305151147071IFtx.jpg" border="0" height="469" width="604"  alt="" /></a></p> <p>　　QA 人员在处理BUG时：</p> <p>　　一：当验证后此BUG已不存在，把BUG状态置为 CLOSED，到现在此BUG的生命周期完成。</p> 　　二：当验证后此BUG还存在，把BUG状态置为REOPEN，同时会发邮件给相关的开发人中。开发人员要重新修复此BUG。</div><br /></p><p align="center"><br /></p><p align="center"><br /></p><p align="center"><br /><a href="http://www.51testing.com/batch.download.php?aid=40004" target="_blank"></a></p></div><img src ="http://www.blogjava.net/qileilove/aggbug/399396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-05-17 10:16 <a href="http://www.blogjava.net/qileilove/archive/2013/05/17/399396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试风险管理</title><link>http://www.blogjava.net/qileilove/archive/2013/01/25/394734.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 25 Jan 2013 01:35:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/01/25/394734.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/394734.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/01/25/394734.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/394734.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/394734.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　风险管理</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　项目的未来充满风险。风险是一种不确定的事件或条件，一旦发生，会对至少一个项目目标造成影响，如范围、进度、成本和质量。风险可能有一种或多种起因，一旦发生可能有一项或多项影响。风险的起因包括可能引起消极或积极结果的需求、假设条件、制约因素或某种状况。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　项目风险管理包括风险管理规划、风险识别、风险分析、风险应对规划和风险监控等各个过程。项目风险管理的目标在于提高项目积极事件的概率和影响，降低项目消极事件的概率和影响。对于已识别出的风险，需要分析其发生概率和影响程度，并进行优先级排序，优先处理高概率和高影响风险。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　风险识别</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　风险识别是系统化地识别已知的和可预测的风险，才能提前采取措施，尽可能避免这些风险的发生，最重要的是量化不确定性的程度和每个风险可能造成损失的程度。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　问题1：风险可分为哪些类型？</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　建议：</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、需求风险，如需求变更频繁、缺少有效的需求变更管理。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、计划风险，如实际规模比估算规模大很多、项目交付时间提前但没有调整项目计划。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、人员风险，如项目新员工较多、骨干员工不稳定。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　4、环境风险，如设备未及时到位、新开发工具<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">学习</strong></u></a>时间较长、环境未及时到位。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　5、产品风险，如新产品、新技术、基础版本质量不高。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　6、客户风险，如客户问题确认时间过长、客户不能保证投入需求评审。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　7、组织和管理风险，如低效的项目团队结构降低生产率、缺乏必要的规范，导致<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>失误与重复工作。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　8、过程风险，如前期质量保证活动执行不到位，导致后期的返工工作量过大、需求方案确认时间过长。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　问题2：风险识别有哪些方法？</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　建议：</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、头脑风暴：组织<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>组成员识别可能出现的风险；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、访谈：找内部或外部资深专家访谈；</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、风险检查列表：对照表的每一项进行判断，逐个检查风险。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　风险评估</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.59375px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　风险评估是对已识别风险的影响和可能性大小的分析过程。从经验来看，许多最终导致项目失败、延期、客户投诉的风险，都是从不起眼的小风险开始，由于这些小风险长时间得不到重视和解决，最终严重的影响到项目交付。</p><img src ="http://www.blogjava.net/qileilove/aggbug/394734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-01-25 09:35 <a href="http://www.blogjava.net/qileilove/archive/2013/01/25/394734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试软环境的构建与优化</title><link>http://www.blogjava.net/qileilove/archive/2013/01/18/394378.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 18 Jan 2013 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/01/18/394378.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/394378.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/01/18/394378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/394378.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/394378.html</trackback:ping><description><![CDATA[<p><strong>摘要：</strong><a href="" target="_self"><u><strong>软件测试</strong></u></a>是软件质量保证的一个重要组成部分，除了要具备一定的客观条件外，还受到许多主观因素特别是测试人员、组织和管理等方面的影响．在对这些主观因素以及软件测试软环境的构成与优化作了一些研究和探讨后，提出了一些可行性建议。</p><p><strong>　　关键词：</strong>软件测试；<a href="" target="_self"><u><strong>单元测试</strong></u></a>；测试文档；</p><p><strong>　　一、引言</strong></p><p>　　软件测试作为<a href="" target="_self"><u><strong>软件开发</strong></u></a>的一个重要阶段，除了必须具备被测软件、测试工具、测试技术等一些必备的客观条件外，还受到测试人员、组织管理、测试策略等相关主观性较强的因素的影响。这些因素的综合作用&#8212;&#8212;本文称之为软件的&#8220;测试软环境&#8221;，决定了软件测试的成败。</p><p><strong>　　二、软件测试软环境的构成要素</strong></p><p><strong>　　1、测试人员</strong></p><p>　　测试人员是软件测试的执行者，他们的素质将直接影响到软件测试的成败。软件测试是一项严谨的<a href="" target="_self"><u><strong>工作</strong></u></a>，一名优秀的软件测试工程师应具备以下的素质：</p><p>　 　（1）沟通能力。测试者必须能够与测试涉及的所有人员（包括技术人员和非技术人员）进行沟通。由于人本身具有排他性，因此，当你试图从别人的程序中寻找 错误或缺陷时，往往会遭到反对或对抗。测试者应尽量避免冲突和发生矛盾，要对每个人具有足够的理解和同情，具备了这种能力可以将测试人员与相关人员之间的 冲突和对抗降低到最低程度。</p><p>　　（2）技术能力。由于开发人员对不懂技术的通常持一种不屑或轻视的态度，因此，一旦测试小组的某个成员作出 了一个错误的判断，将直接导致他甚至整个测试小组的可信度降低，相反，则会大大增强测试人员的信心和测试工作的说服力。一个优秀的测试人员必须既明白被测 软件系统的概念，又要熟悉并会使用相关的工具，而要做到这一点需要有几年的编程经验，只有通过这样的经验积累才会对软件的开发有更加深刻的了解。</p><p>　　（3）耐心。软件测试是一项非常烦琐的工作，很容易使人变得懒散，甚至烦躁不安。作为一个测试人员，你必须要有足够的耐心和自律能力，有时你需要花费惊人的时间去识别、排除一个故障，有些看似毫无成就的工作，往往就在你的苦思冥想后豁然开朗。</p><p>　　（4）兴趣和自信心。测试者应对自己所从事的工作具有浓厚的兴趣，对自己的观点有足够的自信，如果具备了这两点，那么在开发过程中，不管遇到什么样的困难，都能克服。</p><p>　　（5）怀疑与探索精神。一个软件从开发到投入使用通常要经历许多的循环往复，难免出现这样或那样的错误和缺陷，测试人员应具有叛逆心理，敢于怀疑，勇于探索，在可能的条件下，充分发挥自己的潜能，创造性地开展工作，力求寻找出软件中存在的故障。</p><p>　　（6）其它方面的素质。具有良好的判断能力，有一定的幽默感，逻辑思维<a href="" target="_self"><u><strong>敏捷</strong></u></a>等等。</p><p><strong>　　2、组织与管理</strong></p><p>　　（1）测试小组</p><p>　 　由于软件故障的产生主要来源于软件需求分析、设计和编码阶段，因此，需求分析、软件设计和程序编码等各个阶段所得到的文档资料，包括需求规格说明书、设 计规格说明书以及源程序都是软件测试的对象，而由此产生的测试组织与管理也是分阶段的，测试小组的人员组成方式也是不一样的。</p><p>　　需求分析阶段。这一阶段的测试人员应包括：用户、项目经理、系统分析员、软件设计、开发以及测试人员。他们需要进行多次讨论和协商来确定软件的功能，以此作为评价需求规格说明书的依据。</p><p>　　软件设计阶段。人员组成应包括：系统分析员、软件设计人员、测试负责人以及用户。这一阶段的主要工作是按照需求分析规格说明书的要求对系统结构的合理性以及过程处理的正确性进行审查，用户的作用在这一阶段不是非常突出。</p><p>　　软件测试阶段。软件测试作为保障软件质量的一个重要的手段，通常包含以下一些测试：单元测试、集成测试、确认测试、<a href="" target="_self"><u><strong>系统测试</strong></u></a>和验证测试。其中，单元测试由编程小组内部的编程人员交叉进行，其它测试工作则要由测试组来完成，此时，测试组成员的组成应包括：测试经理、测试技术人员、软件开发人员、相关技术支持人员以及用户。需要注意的是，在单元测试阶段，要严格杜绝编程人员测试自己编写的程序。<br /><p>（2）测试管理</p> <p>　　测试工作的管理，尤其是对于包含多个子系统的大型软件系统，其测试工作涉及大量的人力和物力，有效的测试管理是保证有效测试工作的必要前提。</p> <p>　　首先，软件测试的有效实施需要测试组织与开发组织充分配合。虽然测试活动看似是对开发人员劳动成果的不断&#8220;挑剔&#8221;，但测试工作的出发点是：确保 开发人员的劳动成果成为可被接收的、更高品质的软件产品。测试经理应在组织协调各组织工作方面发挥作用，并和他们一起工作，甚至对公司以外的个人和组织都 是如此。测试经理在工作中所要处理的人员关系可用图1表示。此外，测试经理所处的职位要求他能提交日常主要工作的有关信息，如状态报告、测试计划、评估报 告等，同时，还要根据当前的状态做出一些重大决策，这些决策可能会对整个测试过程产生一定的影响。</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=37806" target="_blank"><img src="http://www.51testing.com/attachments/2013/01/346836_201301161136591twMR.jpg" border="0" height="268" width="392"  alt="" /></a></p> <p align="center">图1 测试经理的人际关系角色</p> <p align="left">　　其次，为确保软件测试在软件质量保证中发挥应有的作用，建立和完善软件测试管理体系是十分必要的。从软件工程的角度出发，软件测试管理所涉及的管理对象包含以下几个方面：</p> <p align="left">　　&#9679; 测试资源。包括对人员分配、工作环境、相关设施等的管理。</p> <p align="left">　　&#9679; 测试计划。根据资源配备情况，制定总体测试计划，确定各个阶段的测试目标和策略。</p> <p align="left">　　&#9679; 分析与设计。测试分析与设计就是确定测试目标并且如何以一种高效执行的方式组织测试的过程。这个过程需要根据测试计划选择合适的测试方案，设计出好的测试用例。</p> <p align="left">　　&#9679; 测试实施。测试实施是指测试人员根据测试计划，利用测试资源来运行测试用例以获得测试数据、开发测试规程的过程。这个过程涉及到测试环境的设置、测试数据的收集以及测试验证等具体的工作。</p> <p align="left">　　&#9679; 测试管理。测试管理作用于测试的各个阶段，其管理的对象包括测试组织的建立、测试过程的控制、测试计划和测试规程的制订与管理等等。</p> <p align="left"><strong>　　三、测试软环境的构建</strong></p> <p align="left"><strong>　　1、测试人员</strong></p> <p align="left">　　在一个测试小组中，并不是所有的测试人员都需要具有同样的技能，由于分工不同，他们所起的作用也不同。一般情况下，测试小组中测试人员的构成一般包括：</p> <p align="left">　　开发人员。最好的情况是：让开发人员去做单元测试，如果需要的话还可以让他们做集成测试。</p> <p align="left">　　用户。通常在测试阶段会给测试提供很好的帮助。</p> <p align="left">　　技术支持人员。熟悉软件产品的流程，与用户有更多的沟通，往往更能理解用户的想法。</p> <p align="left">　　QA人员。他们了解产品质量的重要性，对测试小组的工作是一个很好的补充。</p> <p align="left">　　技术文员。这是测试工作中必不可少的一个角色。由于工作的需要，他们关注测试过程中的很多细节问题，并按照要求完成相关的技术文档的编制，使得整个测试工作都有据可查。<br /><p><strong>　2、测试组织</strong></p> <p>　　由于软件的规模大小不一，软件测试的方法也比较多，因此，测试组织的构成形式也多种多样。表l列出了各种测试组织的一些优缺点。测试组织如何进行内部构造和设置职位，这在很大程度上取决于政策、企业文化、质量标准、成员的技术和知识水平，以及产品的风险。</p> <p align="center"><a href="http://www.51testing.com/batch.download.php?aid=37807" target="_blank"><img src="http://www.51testing.com/attachments/2013/01/346836_201301161137171Gyy5.jpg" border="0" height="370" width="710"  alt="" /></a></p> <p align="center">表1 各种测试组织的优点和缺点</p> <p align="left"><strong>　　3、工作环境</strong></p> <p align="left">　　对许多测试人员和管理人员来说，工作环境似乎不是最重要的问题，而且长期以来也没有得到重视，但测试人员所处的工作环境对他们的生产力和工作效果所起的作用是非常重要的。</p> <p align="left">　　测试人员为了完成他们的工作，需要有特定的基本需求，他们需要有一个自己的办公空间，能够方便地与小组中的其他人员进行交流而不互相干扰，在资源配置许可的情况下可以自由使用各项设施，所有这些条件的满足都会对整个小组的工作效率产生很大的影响。</p> <p align="left"><strong>　　四、测试软环境的优化</strong></p> <p align="left">　　从测试软环境的构成来看，由于测试人员的主观性较强，测试管理和测试策略的灵活性较大，因此这几个方面都可以作为软环境优化的出发点，以提高软件测试的效率。</p> <p align="left"><strong>　　1、测试小组的优化</strong></p> <p align="left">　　挑选合适的人员来从事适当的工作，这是每一个管理者都必须面临的挑战。事实上，由于很少有大学会设立软件测试方面的 课程，因此，要在很短的时间里寻找到合适的软件测试员是非常困难的。通常情况下，优秀的软件测试人员都是经过长期的经验积累后由开发人员转变而来。另外， 确定测试小组的其他人员也是要考虑的一个重要方面。</p> <p align="left">　　技能培训作为测试人员提高自身素质的重要手段，对整个测试工作的实施能够起到事半功倍的作用。在确定了测试小组的组 成人员后，管理者有责任、有必要对他们进行相关的技能培训。这种培训包括：专业技能、业务知识、交流能力等。培训的方式可以采用指导、内部培训、由相关培 训机构实地培训等多种形式。</p><br /><p><strong>　2、测试管理的优化</strong></p> <p>　　前面已经提到，对测试过程的有效控制是测试工作顺利进行的基础，而对测试工作的有效管理则是提高测试效率的有力保障。</p> <p>　　（1）测试规范化</p> <p>　　软件测试是一项相当烦琐的工作，必须加以规范，避免随意性。测试文档的编写就是测试工作规范化的一个重要组成部分。软件测试文档通常分为两类， 测试计划和测试分析报告。测试计划用来指导一个测试过程，包括测试的目的、内容、策略、进度等，而测试报告则对测试的结果进行分析说明，指出软件所具有的 功能以及存在的缺陷。通常情况下，软件测试文档规定了进行软件测试所必须具备的条件，这些条件作为测试资源必须在测试进行之前落实。</p> <p>　　（2）管理制度化</p> <p>　　测试管理是整个软件产品质量保证的一个重要组成部分，管理的制度化是保证有效测试工作的必要前提。由于测试工作长期以来没有受到足够的重视，几 乎没有可供参考的、已实现的、完整的测试管理方面的资料。通常情况下，可以将管理工程的一些基本原理用于测试工作中，根据测试过程的进展情况，吸收其他组 织或行业的先进经验，对整个测试工作进行计划和管理，使得一些行之有效的方法和机制逐渐制度化，进一步规范整个测试过程。</p> <p><strong>　　五、小结</strong></p> <p>　　长期以来，由于软件测试在软件开发中没有得到足够的重视，使得可遵循的测试规范尤其是测试管理方面的知识及相关资料非常缺乏，本文所提到的测试 软环境及其构成要素在很多软件开发方面的书籍中有所提及，而在一些专门讲述软件测试的书中往往更多地注重讲解各种测试策略和测试方法。而忽略了组织与管 理，随着人们对软件开发过程的认识逐渐加深，软件测试也越来越得到了应有的重视。</p></p></p><img src ="http://www.blogjava.net/qileilove/aggbug/394378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-01-18 10:13 <a href="http://www.blogjava.net/qileilove/archive/2013/01/18/394378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>紧急不严重和严重不紧急的缺陷分析之我见</title><link>http://www.blogjava.net/qileilove/archive/2013/01/18/394377.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 18 Jan 2013 02:12:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/01/18/394377.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/394377.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/01/18/394377.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/394377.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/394377.html</trackback:ping><description><![CDATA[<p>　在网上看过好几次关于紧急而不严重、严重而不紧急的缺陷举例，对网上的例子并不满意，就此发表一下自己的看法。</p><p>　　该问题是讨论紧急和严重程度的理解，但在<a href="" target="_self"><u><strong>面试</strong></u></a>的时候我们很容易直观想到紧急程度跟时间有关系，严重程度跟功能重要性有关系。这个不能说错，但这个理解未免太过于表面进而得分不高。</p><p>　　有人说：紧急不严重的会挑一些在临近上线的时候突然冒出一个文字错误、体验不佳的BUG，因为时机不巧所以紧急。</p><p>　　有人说：严重不紧急的会挑一些某功能很少有人使用即出现了BUG，因为其特性所以不紧急了。</p><p>　　对于这类答案，我有一个明显的疑问：难道在<a href="" target="_self"><u><strong>测试</strong></u></a>的初期我们就没有了紧急而不严重的BUG了，难道在常用功能里面我们就没有严重而不紧急的问题了？如果突破了这两个前提条件而符合要求的BUG，我认为才是一个高质量的BUG。这是我发表该问题看法的前置条件。</p><p>　　我更倾向于如下答案（用户登陆为例）：</p><p><strong>　　紧急而不严重：</strong></p><p>　　因为登陆验证码无法显示，导致用户无法登陆进而影响所有人登入系统进行测试。</p><p>　　解析：就该问题而言，解决该问题的迫切程度远高于讨论问题的严重程度且验证码的问题算不上严重。对于开发来说，可能只需要动几处代码就行。对于需求方来说就算阉割该功能也没事。</p><p><strong>　　严重而不紧急：</strong></p><p>　　输入任何密码均能登陆系统</p><p>　　解析：该缺陷属于登陆的核心功能异常，登陆等于被废。毫无疑问为严重，但对测试影响并不大，仍然可以登陆系统进行系统<a href="" target="_self"><u><strong>功能测试</strong></u></a>。</p><p>　　登陆功能毕竟属于最常用来举例的程序同时又是极少出问题的模块，若举非<a href="" target="_self"><u><strong>软件测试</strong></u></a>经典案例效果将会更好。再另举一例（通用型）</p><p><strong>　　紧急而不严重：</strong></p><p>　　某流程因其中一个节点使用无法通过，不能流转至下一个环节。</p><p>　　解析：该缺陷在所有流程类测试中均可认为是紧急缺陷，严重程序视情况而定即首先咱们迫切希望问题解决、其次再去争论缺陷严重等级。</p><p><strong>　　严重而不紧急：</strong></p><p>　　某流程如<a href="" target="_self"><u><strong>手机</strong></u></a>充值交易，充值完成后发现手机到账金额为充值金额的2倍，即充值100元，实际到账200元。</p><p>　　解析：直接提BUG，但不影响后续测试。</p><p>　　有人也许要反对了，以上的严重问题同样也很紧急。那怎么判断是否紧急呢，假设负责处理该BUG的开发因病休假或者结婚休假了，我们对于严重BUG能够忍受几天，说明并不那么紧急。如果半刻也不能忍受，那必是绝对紧急、相对不严重。</p><p>　　再有一条相对要求：所有严重、紧急的BUG均需在上线前修复完成；能够容忍到上线后的BUG全部为不严重同时不紧急的BUG。</p><img src ="http://www.blogjava.net/qileilove/aggbug/394377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-01-18 10:12 <a href="http://www.blogjava.net/qileilove/archive/2013/01/18/394377.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bug修复与受益递减法则</title><link>http://www.blogjava.net/qileilove/archive/2013/01/05/393816.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Sat, 05 Jan 2013 06:39:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2013/01/05/393816.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/393816.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2013/01/05/393816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/393816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/393816.html</trackback:ping><description><![CDATA[<p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><a href="http://www.51testing.com/batch.download.php?aid=37359" target="_blank" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><img border="0" src="http://www.51testing.com/attachments/2012/12/346836_2012122614394117CWZ.jpg" width="424" height="271" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 424px; height: 255px;"  alt="" /></a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　如果问100个软件公司的CEO，问他们是否愿意发布含有<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">bug</strong></u></a>的软件。他们会说什么？50个根本不愿意回答，会说一些软件bug是这个行业中一个需要解决的大问题等不着边的话；40个会说&#8220;当然不会！&#8221;，并立即给他们的投资者打电话说这是诬陷，会追究法律责任。9位会低着头说&#8220;无能为力&#8221;。而这最后一位会直盯着你的眼睛说&#8220;当然会。&#8221;</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　我不知道这最后一位是如何领导一个软件公司的，因为他明显学过经济学。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　软件不可能没有bug，如果你希望发布一个完美的软件，你必须解决藏在代码里的所有bug。（想把它们挡在门外？不可能，<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">单元测试</strong></u></a>，<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">敏捷</strong></u></a>方法，scrum，以及任何当今你能想到的方法论，都不能防止bug进入你的代码库。如果我错了，我相信你会在评论里告诉我。）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　正如你期望的，你在修补bug中投入越多的时间和资金，你就能解决越多的bug。但是，不幸的是，我们的来自经济学的死对头，受益递减法则，同样适用于这个过程。专业的讲，这个法则指在投入生产要素后，每单位生产要素所能提供的产量增加发生递减的现象。用通俗的话讲，这就是说，你能从这个过程中得到的并不等同于你所有投入的。相反，你的产出会随着投入到增加形成一条迅速下降的曲线，曲线的末端、投入到轴线上，最终成为一条长尾。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　举个例子，假如一个程序有100个bug，我们知道这需要投入100分的努力来找到并修复这所有100个bug。受益递减法则告诉我们，头40分努力将会找到70个bug，而接下来的30分努力能找到20个bug，剩下的30分努力能找到最后的10个bug。这就是说，头70个bug（很简单的bug）很便宜，容易找到，算起来每个bug只消耗40/70=0.571分努力。接下来的20个bug（藏的较深的bug）要昂贵的多，每个消耗30/20=1.5分努力，而最后的10个bug（真正难发现的bug）惊人的昂贵，每个消耗30/10=3分努力。消灭这最后的10个bug要比消灭起初的70个bug，每个bug需要投入的时间或资金要多出5倍。从付出的努力看，消灭大多数bug（70%-90%）和消灭所有bug，它们的成本有巨大差别，从数字上看相差两倍之多。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　而在现实中，实际情况比这更糟糕。因为你不知道何时能干掉这最后一个bug---没有一个像上面例子那样的倒计数&#8212;&#8212;你不得不不断的去寻找更多的bug，即使是它们已经全部被干掉了，你也要去证明它们确是全部被干掉了。如果你想消灭所有的bug，你还要计算你的成本。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　所以，消灭一个程序中所有的bug是一件代价很大的事。不妨让我们花一分钟这样思考一下：一个软件公司最终决定要这么做。软件公司并没有设定像&#8220;发布没有bug的软件&#8221;的目标&#8212;&#8212;他们设定的目标是&#8220;11月19号发布&#8221;&#8212;&#8212;于是，这个目标改变了公司的测试计划和开发计划（不论有没有计划），这必然意味着的预算的增加。现在，你想象一下，谁会为这多出的预算买单？公司？（嗨！）如果你没有在软件公司<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">工作</strong></u></a>过，让我来给你一点提示：非也。软件公司会把成本转嫁到客户身上。因此可以得出，你喜欢的软件都是你支付的起的软件。我得到的消息是：你喜欢有bug的软件。（开源软件也是如此。除非你愿意花更多的钱或等更长的时间。很有可能你会接受去忍受次等的软件事实。）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　现在澄清一下，我并不是说软件公司应该发布有大量严重bug的软件。我是说他们的软件里可以有少量的小bug。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　如何知道一个bug是大还是小？你应该思考谁会遇到它，当遇到时会发生什么样的坏情况。如果一个用户，进入第三层菜单，打开一个高级配置窗口，选中三个复选框，在敲击&#8220;A&#8221;键时得到了一个奇怪的错误信息，这是小bug。它埋的很深，当碰到它时人们会说&#8220;靠&#8221;，然后改为点击按钮，然后就会愉快的做其它事情去了。如果在使用你的程序中一个常用的操作时崩溃，那这就是个大bug。大部分人遇到这样的bug时都会愤怒不已。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　所以，我要提出一个判断你的软件何时满足发布条件的黄金法则。这个黄金法则内容是，你应该不断的测试并修复软件中的bug，直到发现这些bug是：</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　不会让你的公司蒙羞。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　不会激怒你的客户。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　相比起让一些用户遇到这些并不在于的bug的代价，你的要找出程序中所有bug并确保全部纠正的做法代价实在太高。前提条件是，不要让用户做你的测试员&#8212;&#8212;如果你这样做，必定会跟黄金法则冲突&#8212;&#8212;宁愿相信所有的bug并非生来平等，有些能影响一个产品的发布，而另一些则不然。不要害怕发布的产品中有bug。如果你开发的是人们想要的好软件，一些bug的存在并不会打搅他们，尤其是当软件升级操作简便时，比如通过SaaS或Web应用。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　如果你的<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">软件测试</strong></u></a>符合黄金法则，那么，你的客户最迫切得到的是你的软件，而不是希望你去修改那些小bug。所以，准备发布吧！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　哦，别忘了去问那最后一个CEO关于炒股的技巧。经济学家的公文包里总有最好的数据。</p><img src ="http://www.blogjava.net/qileilove/aggbug/393816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2013-01-05 14:39 <a href="http://www.blogjava.net/qileilove/archive/2013/01/05/393816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试过程中如何区分什么是功能bug，什么是需求bug，什么是设计bug？</title><link>http://www.blogjava.net/qileilove/archive/2012/11/14/391290.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 14 Nov 2012 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/11/14/391290.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/391290.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/11/14/391290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/391290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/391290.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　问题描述：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">测试</strong></u></a>过程中如何区分什么是功能<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">bug</strong></u></a>，什么是需求bug，什么是设计bug？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　精彩答案：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　会员 土土的豆豆：</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　本期问题其实主要是针对不同方面或纬度上对于bug的一个归类和定位。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　个人认为，从<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">软件开发</strong></u></a>测试生命周期上分析的话，三者从开发测试阶段应该是需求bug、设计bug、功能bug。（这里仅针对提问排比）</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　需求问题可以包括设计问题和功能问题，当然还有非功能性缺陷等。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　需求bug，简而言之就是对于业务需求不清晰或者理解有偏差产生的问题。可能包括业务分析人员不专业因素、开发与测试人员思维不一致、产品未满足客户实际需求（想法）等一系列bug。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　功能问题大部分理应该是附属于需求说明书上的功能模块，因为开发、设计、实现等原因故而产生功能bug。但也不仅限于需求上列举出的功能，因为一个项目/产品，完全有可能因为相关协作的功能模块或整合的第三方程序导致产生bug。所以功能bug既可能是需求bug，也可能是需求外的bug。这里对于bug的优先级和安全级别等不作赘述。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　设计问题可以认为是开发架构师/人员在项目设计编码前遗留的&#8220;历史&#8221;问题。因为设计bug还是根据需求说明书来进行开发设计，故而一些业务逻辑上的关系、代码算法的优化、数据库/表的关联等都属于设计bug。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　个人认为，需求bug最为麻烦，也是后期维护成本最高的bug。设计bug次之，因为一个产品/项目设计层面问题较多的话，无论修复或改进多少，在代码编写结束后，开发人员很难重头再整理一套框架，即便目前没有设计bug，以后产生的风险也是很大的。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　功能bug最平凡，但是也是基础。除去客户业务需求上的变更因素，整个项目/产品的质量好坏最基本的就是取决于功能是否按需求进行了实现，其问题是否很多。我们大部分测试阶段的bug以功能问题为主。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　当然还有其他一些bug类型，本期问题所列3个bug从根本上分析不属于一个维度。但是也是很基本的概念。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　以上是我个人拙见，请大家补充指正。谢谢！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;"><strong style="word-break: break-all; line-height: normal !important;">　　会员 TesterChen：</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　首先什么是需求Bug、设计Bug、功能bug？</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　需求Bug，指由于客户需求描述不清晰或错误、需求收集人员自身原因及需求本身模糊难于分析、获取等原因，导致客户需求获取不准确，后期产品不能满足客户、用户的要求</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　设计Bug，是指产品在最初设计时由于未考虑全面，而使产品在使用中存在的一些潜在的缺陷。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　功能Bug，是指计算机软件或程序中存在的某种破坏正常运行能力的问题、错误，或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　建议从以下几点进行区分：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　1、产生的时间不相同：<br style="word-break: break-all; line-height: normal !important;" />　　需求Bug：产生于项目前期<br style="word-break: break-all; line-height: normal !important;" />　　设计Bug：产生于项目前期或中期<br style="word-break: break-all; line-height: normal !important;" />　　功能Bug：产生于项目中期或后期</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　2、产生的原因不相同：<br style="word-break: break-all; line-height: normal !important;" />　　需求Bug：客户需求描述不清晰或错误、需求收集人员不够专业、需求本身模糊难于分析、获取等原因<br style="word-break: break-all; line-height: normal !important;" />　　设计Bug：系统框架、通讯模式、库表设计、编写语言等选择不当，导致后期扩展棘手、安全性低等<br style="word-break: break-all; line-height: normal !important;" />　　功能Bug：开发工程师需求理解错误、代码编写缺陷等原因</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　3、造成的影响不相同：<br style="word-break: break-all; line-height: normal !important;" />　　需求Bug：对整个项目的影响极大，会直接拖后项目的进度、加大项目成本、降低客户对公司的评价<br style="word-break: break-all; line-height: normal !important;" />　　设计Bug：后期功能扩展、性能、安全性等可能会遭到威胁<br style="word-break: break-all; line-height: normal !important;" />　　功能Bug：影响用户使用体验、影响数据、资金安全</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　4、处理方式不相同<br style="word-break: break-all; line-height: normal !important;" />　　需求Bug：重新收集需求，重新设计和开发（需求Bug是对项目成本和进度影响最大的因素）<br style="word-break: break-all; line-height: normal !important;" />　　设计Bug：重大缺陷必须修复，小设计缺陷在下一次发布时更新（一般难于修复或修复成本较大）<br style="word-break: break-all; line-height: normal !important;" />　　功能Bug：直接修复缺陷，重新发布或更新</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　5、Bug的直接责任人不相同<br style="word-break: break-all; line-height: normal !important;" />　　需求Bug：业务人员、需求专员、项目经理等<br style="word-break: break-all; line-height: normal !important;" />　　设计Bug：架构工程师、<a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;"><u style="word-break: break-all;"><strong style="word-break: break-all;">数据库</strong></u></a>工程师、技术经理、项目经理等<br style="word-break: break-all; line-height: normal !important;" />　　功能Bug：开发、测试工程师</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">　　原帖地址：<a href="http://bbs.51testing.com/thread-820993-1-1.html" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;">http://bbs.51testing.com/thread-820993-1-1.html</a></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">版权声明：本文由会员土土的豆豆、TesterChen首发于51Testing软件测试论坛每周一问活动。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; line-height: 21.600000381469727px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff;">原创作品，转载时请务必以超链接形式标明本文原始出处、作者信息和本声明，否则将追究法律责任。</p><img src ="http://www.blogjava.net/qileilove/aggbug/391290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-11-14 09:56 <a href="http://www.blogjava.net/qileilove/archive/2012/11/14/391290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件缺陷的种类划分</title><link>http://www.blogjava.net/qileilove/archive/2012/11/06/390852.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Tue, 06 Nov 2012 02:02:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/11/06/390852.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/390852.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/11/06/390852.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/390852.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/390852.html</trackback:ping><description><![CDATA[按照软件缺陷的产生原因，可以将其划分为不同的缺陷类别： 
<p><strong>　　1、功能不正常</strong></p>
<p>　　简单地说就是所应提供的功能，在使用上并不符合产品设计规格说明书中规定的要求，或是根本无法使用。这个错误常常会发生在<a href="javascript:;" target="_self"><u><strong>测试</strong></u></a>过程的初期和中期，有许多在设计规格说明书中规定的功能无法运行，或是运行结果达不到预期设计。最明显的例子就是在用户接口上所提供的选项及动作，使用者操作后毫无反应。</p>
<p><strong>　　2、软件在使用上感觉不方便</strong></p>
<p>　　只要是不知如何使用或难以使用的软件，在产品设计上一定是出了问题。所谓好用的软件，就是使用上尽量方便，使用户易于操作。如<a href="javascript:;" target="_self"><u><strong>微软</strong></u></a>推出的软件，在用户接口及使用操作上确实是下了一番功夫。有许多软件公司推出的软件产品，在彼此的接口上完全不同，这样其实只会增加使用者的<a href="javascript:;" target="_self"><u><strong>学习</strong></u></a>难度，另一方面也凸显了这些软件公司的集成能力不足。</p>
<p><strong>　　3、软件的结构未做良好规划</strong></p>
<p>　　这里主要指软件是以自顶向下方式开发，还是以自底向上方式开发。如果是以自顶向下的结构或方法开发的软件，在功能的规划及组织上比较完整，相反以自底向上的组合式方法开发处的软件则功能较为分散，容易出现缺陷。</p>
<p><strong>　　4、提供的功能不充分</strong></p>
<p>　　这个问题与功能不正常不同，这里指的是软件提供的功能在运作上正常，但对于使用者而言却不完整。即使软件的功能运作结果符合设计规格的要求，<a href="javascript:;" target="_self"><u><strong>系统测试</strong></u></a>人员在测试结果的判断上，也必须从使用者的角度进行思考，这就是所谓的&#8220;从用户体验出发&#8221;。</p>
<p><strong>　　5、与软件操作者的互动不良</strong></p>
<p>　　一个好的软件必须与操作者之间可以实现正常互动。在操作者使用软件的过程中，软件必须很好地响应。例如在浏览网页时，如果操作者在某一网页填写信息，但是输入的信息不足或有误。当点击&#8220;确定&#8221;按钮后，网页此时提示操作者输入信息有误，却并未指出错误的哪里，操作者只好回到上一页重新填写，或直接放弃离开。这个问题就是典型的在软件对操作互动方面未做完整的设计。</p>
<p><strong>　　6、使用性能不佳</strong></p>
<p>　　被测软件功能正常，但使用性能不佳，这也是一个问题。此类缺陷通常是由于开发人员采用了错误的解决方案，或使用了不恰当的算法导致的，在实际测试中有很多缺陷都是因为采用了错误的解决方法，需要加以注意！</p>
<p><strong>　　7、为做好错误处理</strong></p>
<p>　　软件除了避免出错之外，还要做好错误处理，许多软件之所以会产生错误，就是因为程序本身对于错误和异常处理的缺失。例如被测软件读取外部的信息文件并已做了一些分类整理，但刚好所读取的外部信息文件内容已被损毁。当程序读取这个损毁的信息文件时，程序发现问题，此时<a href="javascript:;" target="_self"><u><strong>操作系统</strong></u></a>不知该如何处理这个情况，为保护系统自身只好中断程序。由此可见设立错误和异常处理机制的重要性！</p>
<p><strong>　　8、边界错误</strong></p>
<p>　　缓冲区溢出问题在这几年已成为网络攻击的常用方式，而这个缺陷就属于边界错误的一种。简单来说，程序本身无法处理超越边界所导致的错误。而这个问题，除了编程语言所提供的函数有问题之外，很多情况下是由于开发人员在声明变量或使用边界范围时不小心引起的。</p>
<p>　　下面是一个典型的缓冲区溢出的边界错误：</p>
<p>&nbsp;</p>
<table style="border-bottom: #999 1px solid; border-left: #999 1px solid; background-color: #dddddd; width: 98%; font-size: 12px; border-top: #999 1px solid; border-right: #999 1px solid" align="center">
<tbody>
<tr>
<td>Void func (void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int I;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char buffer[256];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Buffer定位为256<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (I=0;I&lt;512;I++)&nbsp;&nbsp;&nbsp;&nbsp; //越界<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buffer[I]=&#8217;t&#8217;;<br />&#8230;.}</td></tr></tbody></table><strong>　9、计算错误</strong> 
<p>　　只要是计算机程序，就必定包括数学计算。软件之所以会出现计算错误，大部分出错的原因是由于采用了错误的数学运算工时或未将累加器初始化为0.</p>
<p><strong>　　10、使用一段时间所产生的错误</strong></p>
<p>　　这类问题是程序开始运行正常，但运行一段时间后却出现了故障。最典型的例子就是数据库的查找功能。某些软件在刚开始使用时，所提供的信息查找功能运作良好，但在使用一段时间后发现，进行信息查找所需的时间越来越长。经分析查明，程序采用的信息查找方式是顺序查找，随着数据库信息的增加，查找时间自然会变长。这就需要改变解决方案了！</p>
<p><strong>　　11、控制流程的错误</strong></p>
<p>　　控制流程的好坏，在于开发人员对软件开发的态度及程序设计是否严谨。软件在状态间的转变是否合理，要依据业务流程进行控制。例如，用软件安装程序解释这类问题最方便直观。用户在进行软件安装时，输入用户名和一些信息后，软件就直接进行了安装，未提示用户变更安装路径、目的地等。这就是软件控制流程不完整导致的错误问题。</p>
<p><strong>　　12、在大数据量压力下所产生的错误</strong></p>
<p>　　程序在处于大数据量状态下运行出现问题，就属于这类软件错误。大数据量压力测试对于Server级的软件是必须进行的一项测试，因为服务器级的软件对稳定性的要求远比其它软件要高。通常连续的大数据量压力测试是必须实施的，如让程序处理超过10万笔数据信息，再来观察程序运行的结果。</p>
<p><strong>　　13、在不同硬件环境下产生的错误</strong></p>
<p>　　这类问题的产生与硬件环境的不同相关。如果软件与硬件设备有直接关系，这样的问题就是数量相当多。例如有些软件在特殊品牌的服务器上运行就会出错，这是由于不同的Server内部硬件了不同的处理机制。</p>
<p><strong>　　14、版本控制不良导致的错误</strong></p>
<p>　　出现这样的问题属于项目管理的疏忽，当然测试人员未能尽忠职守也是原因之一。例如一个软件被反映有安全上的漏洞，后来软件公司也很快将修复版本提供给用户。但在一年后他们推出新版本时，却忘记将这个已解决的bug-fix加入到新版本中。所以对用户来说，原本的问题已经解决了，但想不到新版本升级之后，问题又出现了。这就是由于版本控制问题，导致不同基线的merge出现误差，使得产品质量也出现了偏差。</p>
<p><strong>　　15、软件文档的错误</strong></p>
<p>　　最后这类缺陷是软件文档错误。这里所提及的错误，除了软件所附带的使用手册、说明文档及其它相关的软件文档内容错误之外，还包括软件使用接口上的错误文字和错误用语、产品需求设计PD、UI Spec等的错误。错误的软件文档内容除了降低产品质量外，最主要的问题是会误导用户！</p>
<p><font color="#ff0000">版权声明：本文出自 cmriqa 的51Testing软件测试博客：</font><a href="http://www.51testing.com/?489136"><font color="#ff0000">http://www.51testing.com/?489136</font></a></p>
<p><font color="#ff0000">原创作品，转载时请务必以超链接形式标明本文原始出处、作者信息和本声明，否则将追究法律责任。</font></p><br /><br /><br /><br /><img src ="http://www.blogjava.net/qileilove/aggbug/390852.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-11-06 10:02 <a href="http://www.blogjava.net/qileilove/archive/2012/11/06/390852.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何看待软件缺陷</title><link>http://www.blogjava.net/qileilove/archive/2012/11/05/390778.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 05 Nov 2012 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/11/05/390778.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/390778.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/11/05/390778.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/390778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/390778.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">软件测试</strong></u></a>人员的职责是根据一定的方法和逻辑，寻找或发现软件中的缺陷，并通过这一过程来证明软件的质量是优秀还是低劣。所以，怎样发现缺陷，成为大部分测试人员关注的焦点。在软件测试过程中，软件测试人员一般需确保测试过程中发现的软件缺陷得以关闭。但在实际测试<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">工作</strong></u></a>中，软件测试人员需要从综合的角度来考虑软件质量，对找出的缺陷保持一种平常心。这就需要明确以下几个原则：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　1、并不是测试人员发现的每个缺陷都是必须修复的。</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　测试是为了发现程序错误，而不能保证程序没有错误。不管测试计划和执行多么努力，也不是所有缺陷发现了就能修复。有些软件缺陷可能会完全被忽略，还有一些可能推迟到后续版本中修复。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　一般不修复软件缺陷原因如下：</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　没有足够的时间。在任何一个项目中，通常是软件功能较多，而程序设计人员和测试人员较少，并且可能在项目进度中没有为开发和测试留出足够的时间。在实际开发过程中，经常出现客户对软件的完成提出一个最后期限，在此时间点之前，必须按时完成软件。这就导致了时间的有限性和任务紧迫性，在此压力下就有可能忽略一些缺陷。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　不算真正的缺陷。在某些特殊场合，错误理解、测试错误或设计说明书变更，会使测试人员把一些软件缺陷不作为缺陷来处理。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　修复的风险太大。这种情况比较常见，软件本身是脆弱而复杂的，修复一个缺陷，常常可能导致其它更严重问题的出现。在紧迫的产品发布进度压力下，修改软件缺陷必须评估其影响程度和风险，以决定是否可修改。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　2、发现缺陷的数量说明不了软件的质量</strong></p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　软件中不可能没有缺陷，发现很多的缺陷对于测试工作来说，是很正常的事。缺陷的数量大，只能说明测试的方法很好，思路很全面，测试工作卓有成效。但以此来否认软件的质量，还是不具客观性的。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　如果测试中发现的缺陷，大部分都是提示性错误、文字错误等，或错误的等级很低，而且这些缺陷的修复几乎不会影响到执行指令的部分。但对于软件的基本功能和性能，发现的缺陷很少，通常这样的测试证明了&#8220;软件的质量是稳定的&#8221;，因而属于良好软件的范畴。这样的软件只要处理好发现的缺陷，基本就可以发行使用了。而进行完整的回归和大规模测试，就是增加<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">软件开发</strong></u></a>的成本，浪费商机和时间。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　发过来，如果在测试过程中发现的缺陷较少，但这些缺陷都集中的功能没有实现、性能未达标、经常引起死机或系统崩溃等现象，而且出现几率大，多数用户使用过程中都会发现这样的问题。那这样的软件就不能随便就发布，因为发布风险太大了！</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">版权声明：本文出自 cmriqa 的51Testing软件测试博客：<a href="http://www.51testing.com/?489136" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important; ">http://www.51testing.com/?489136</a></p><div></div><img src ="http://www.blogjava.net/qileilove/aggbug/390778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-11-05 10:05 <a href="http://www.blogjava.net/qileilove/archive/2012/11/05/390778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>好的测试实践——软件测试的尽早介入</title><link>http://www.blogjava.net/qileilove/archive/2012/10/23/390104.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Tue, 23 Oct 2012 06:09:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/10/23/390104.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/390104.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/10/23/390104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/390104.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/390104.html</trackback:ping><description><![CDATA[<p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">测试</strong></u></a>的尽早介入，是<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">软件测试</strong></u></a>提倡的一个基本原则。测试过程中实践测试的尽早介入原则，其主要的优点表现在：提高质量、降低成本、加快进度和过程改进等。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　首先，我们将从缺陷的角度来看看测试尽早介入的表现。缺陷是我们测试人员的最主要输出之一，但是它的一些特征说明了测试尽早介入的必要性。</p><p style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　1）缺陷是什么时候引入的</strong></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><a href="http://www.51testing.com/batch.download.php?aid=36077" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important; "><img border="0" src="http://www.51testing.com/attachments/2012/10/346836_201210161034111nxDp.jpg" data-pinit="registered" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; "  alt="" /></a></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">图1 不同阶段缺陷引入的分布</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　2）缺陷在什么时候发现</strong></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><a href="http://www.51testing.com/batch.download.php?aid=36078" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important; "><img border="0" src="http://www.51testing.com/attachments/2012/10/346836_201210161034151GzKL.jpg" width="334" height="259" data-pinit="registered" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 334px; height: 239px; "  alt="" /></a></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">图2 缺陷发现的阶段</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　3）缺陷的雪崩效应</strong></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><a href="http://www.51testing.com/batch.download.php?aid=36079" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important; "><img border="0" src="http://www.51testing.com/attachments/2012/10/346836_201210161034201Qatg.jpg" data-pinit="registered" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; "  alt="" /></a></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">图3 缺陷的雪崩效应</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　4）缺陷发现与修复的成本放大效应</strong></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><a href="http://www.51testing.com/batch.download.php?aid=36080" target="_blank" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important; "><img border="0" src="http://www.51testing.com/attachments/2012/10/346836_201210161034241kb6j.jpg" width="498" height="329" data-pinit="registered" style="word-break: break-all; list-style: none outside none; margin: 0px; padding: 0px; border: none; max-width: 500px; width: 344px; height: 226px; "  alt="" /></a></p><p align="center" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">图4 缺陷发现与修复的成本放大效应</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　图1缺陷是在什么时候引入的，说明大部分的缺陷都是在需求阶段引入的；而图2说明大部分的缺陷却是在<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">系统测试</strong></u></a>阶段才被发现；图3说明前期阶段存在的缺陷，会随着开发阶段的开展而不断的放大；而图4说明发现和修复缺陷会随着开发阶段的演进而不断的放大。因此，从这些图表和数据中，我们可以看出测试尽早介入的必要性。尽早测试介入，尽早发现缺陷，开展良好的评审活动就是一个非常好的手段。</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　其次，我们从测试计划的角度，看看尽早介入的必要性。我们提倡尽早制定测试计划，其主要的目的是：</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　1）尽早识别测试风险，并采取合适的应对策略。其中风险包括了产品风险与项目风险。</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　（1）产品风险：可以帮助我们更好的分配测试<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">工作</strong></u></a>量、选择测试技术、确定测试顺序和选择缺陷修复的优先级。</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　（2）项目风险：帮助我们计划和管理测试工作，例如：产品培训或者测试工具培训等。</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　2）尽早估算测试工作量，并以此为基础协调与沟通测试资源，例如：测试仪表、测试人员、测试工具等。</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　3）根据测试资源情况，尽早安排和搭建测试环境。</p><p align="left" style="word-break: break-all; margin: 10px 0px; padding: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　第三，测试人员尽早开展对开发工作产品的<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">学习</strong></u></a>和研究，有助于<a href="" target="_self" style="word-break: break-all; color: #202859; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">测试用例</strong></u></a>的设计与执行，并更好的开展测试活动和完成测试任务。<br /><br /><br /></p><img src ="http://www.blogjava.net/qileilove/aggbug/390104.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-10-23 14:09 <a href="http://www.blogjava.net/qileilove/archive/2012/10/23/390104.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何写一份良好的缺陷（Bug）报告</title><link>http://www.blogjava.net/qileilove/archive/2012/07/18/383370.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 18 Jul 2012 01:55:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/07/18/383370.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/383370.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/07/18/383370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/383370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/383370.html</trackback:ping><description><![CDATA[<div>　没错，任何软件都存在<a target="_self"><u><strong>bug</strong></u></a>，哪怕是我们自己也存在缺陷，因为程序员也是普通人，人是会犯错误的。当有人在使用软件时遇到bug，你需要使用邮件形成一份缺陷bug，发送给开发人员。开发者可以依据该报告定位问题，复现问题，修复问题。<p>　　但是很多时候，开发人员很难理解提交上的缺陷报告，因为发送人并不了解我们需要的是什么，那如何与开发人员沟通以及如何写出一份缺陷报告，在这篇<a target="_self"><u><strong>文章</strong></u></a>，我将教你如何写出一份清晰的缺陷报告能使开发者理解、复现、修复问题，这里下载缺陷报告模板。</p><p align="center"><a href="http://www.51testing.com/batch.download.php?aid=33823" target="_blank"><img src="http://www.51testing.com/attachments/2012/07/346836_201207121022481pBru.gif" border="0"  alt="" /></a></p><p align="left"><strong>　　为什么要发送缺陷报告</strong></p><p align="left">　　缺陷报告可以用很多方式来帮助我们的开发者。</p><p align="left">　　&#9679; 他们能告知我们没有意识到的问题</p><p align="left">　　&#9679; 他们能发现我们可能还没想到的新特性</p><p align="left">　　&#9679; 他们能帮助我们感受到客户是如何使用我们的软件，以至于我们可以做的更好</p><p align="left">　　没有这些缺陷报告，我们就不知道出错的地方，我们需要它就像你唱歌跳舞时需要有软件的支持一样。</p><p align="left"><strong>　　什么时候发送缺陷报告</strong></p><p align="left">　　&#9679; 简单来说就是越快越好，详细来说就是：</p><p align="left">　　&#9679; 当你看到一个错误消息时就发送错误报告</p><p align="left">　　&#9679; 当屏幕是空白或者数据缺失就发送报告</p><p align="left">　　&#9679; 当程序没有出现预期的结果时发送报告</p><p align="left">　　&#9679; 当程序崩溃、死机、没有响应或者响应很慢时发送报告</p><p align="left">　　&#9679; 当程序返回错误结果时发送报告</p><p align="left">　　&#9679; 当你得不到想需要的结果时发送报告</p><p align="left">　　&#9679; 如果你不清楚怎样做时发送报告</p><p align="left">　　&#9679; 如果你不喜欢软件做的方式，或者软件老打搅你时，发送错报告</p><p align="left">　　&#9679; 如果你想在系统中实现一个变通方案时发送报告</p><p align="left"><strong>　　缺陷报告需要有哪些内容</strong></p><p align="left">　　缺陷报告应该包含很多信息，你提供的信息越多效果越好，对于开发者，就像我，提供一个纯文本文件模板给你填充然后邮件发给我，当然也有表格形式的，但是最期待你自己杜撰一份然后发给我。下面是一些必须包括的部分以及如何写好每部分：</p><p align="left">　 　标题：创建一个简短的标题，让问题看起来更清晰。&#8220;应用崩溃&#8221;是一个很恼人的标题因为它没有足够的信息包括在这份报告里面。取而代之的是标题应该包含错 误消息和消息码，或者是结果的名称以及失败时你正在做的事情。例如：Error  402：访问拒绝当点击&#8220;发送邮件&#8221;这个例子就提供了缺陷系统的上下文信息。</p><p align="left">　　差：&#8220;程序崩溃&#8221;，&#8220;报错&#8221;，&#8220;Bug&#8221;</p><p align="left">　　好：&#8220;从&#8217;Kifu&#8217;中打印时5C79错误&#8221;，&#8220;&#8217;Kifu honors&#8217;报表为空&#8221;</p><p align="left">　　产品：用名称标识产品，告知你使用的是哪个版本。绝大部分软件都包含有版本信息。<a target="_self"><u><strong>web</strong></u></a>应用的版本信息通常在页脚。</p><p align="left">　　差：&#8220;你的应用&#8221;</p><p align="left">　　好：&#8221;Kifu v1.01&#8243;</p></div><div>平台：告诉我们软件运行在什么平台。尤其是操作系统的名字及版本和游览器名称版本。特别是web应用，这些信息对我们很重要。 <p>　　差：&#8220;Windows&#8221;</p> <p>　　好：&#8220;Windows7，IE9&#8221;</p> <p>　　是否能重现：有些恼火的Bug是间歇性的出现，我们想预先知道，如果我们正在处理一个灵异事件或者正逢Bug出现时。</p> <p>　　差：留空白</p> <p>　　好：&#8220;每次&#8221;，&#8220;偶然&#8221;，&#8220;不重现&#8221;</p> <p>　　描述：这部分是很多人拿不定的地方，不知道怎么描述问题，在描述中做到包括下面的内容：</p> <p>　　&#9679; 总结：用简洁的语言概括出Bug出现时你正在做的事情。从上下文开始，在操作应用的哪个部分。聚焦在你做的时候软件做了什么？</p> <p>　　差：&#8220;系统不能用了&#8221;</p> <p>　　好：在&#8220;honor report&#8221;页面单击&#8220;打印按钮&#8221;，但是报表是空的。</p> <p>　　&#9679; 发生了什么：一步一步描述你做的事情当bug出现时，为什么你认为是错误的。事无巨细，打印出菜单的名称，页面标题，点击时的按钮或者链接的名称。做相同的操作是不是出现一样的错误。</p> <p>　　差：&#8220;空白报表&#8221;</p> <p>　　好：&#8220;点击 &#8216;File/Save as&#8230;&#8217;，&#8217;Save&#8216;对话空弹出，然后点击&#8216;OK&#8217;按钮，但是文件没有保存&#8221;</p> <p>　　&#9679; 错误时什么：如果错误消息出现时，拷贝粘贴整个信息，这样更有利于我们跟踪错误。</p> <p>　　差：&#8220;有个错误，点击它始终读不出&#8221;</p> <p>　　好：&#8220;Error 403：访问拒绝&#8221;</p> <p>　　&#9679; 复现的步骤：如果你可以让bug重现，那太好了，这能提供很大的帮助。一步步描述如何重现次bug。</p> <p>　　差：&#8220;打印没法使用&#8221;</p> <p>　　好：&#8220;从&#8216;Honors Report&#8217;页面，点击&#8216;打印按钮&#8217;&#8221;</p> <p>　　&#9679; 预期结果：描述你预期发生的结果当bug发生时，这部分特别有用如果程序没有按照你期待的结果发生时，因为它很诡异。</p> <p>　　差：&#8220;我期待能正常工作&#8221;</p> <p>　　好：&#8220;我期待能看到&#8216;Honors Reports&#8217;的PDF文件&#8221;</p> <p>　　真实结果：当bug发生时是怎么发生的，什么错误，为什么有错，或者如果错误抛出，抛出什么错。</p> <p>　　差：&#8220;没法用&#8221;</p> <p>　　好：&#8220;我收到是空的PDF文件，或者&#8217;403错误，访问拒绝&#8217;&#8221;</p> <p>　　&#9679; 附件：如果你知道怎么截屏，做吧，附上一个简短的错误，截屏可以是错误之前或者发生错误之后，我们的开发者能够看到究竟发生了什么。如果应用有崩溃的日志，同样附上它。</p> <p>　　&#9679; 联系方式：附上你的名字和email，我们可以让你提交的报告及时的得到答复，在我们不理解问题的描述时还能够询问你，如果你忘记附联系方式了，我们也就没法联系到你，也没法修复bug。</p></div><img src ="http://www.blogjava.net/qileilove/aggbug/383370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-07-18 09:55 <a href="http://www.blogjava.net/qileilove/archive/2012/07/18/383370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试类型/缺陷分类的获取</title><link>http://www.blogjava.net/qileilove/archive/2012/07/11/382764.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Wed, 11 Jul 2012 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/07/11/382764.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/382764.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/07/11/382764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/382764.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/382764.html</trackback:ping><description><![CDATA[<div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">软件测试</strong></u></a>类型分析是进行细化<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">测试用例</strong></u></a>条件的重要手段之一，通过测试类型的分类，软件测试人员可以将测试条件从不同的维度进行考虑，并发现不同的缺陷类型，从而提高测试的覆盖率。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　测试类型并不是一个标准，它的定义需要考虑公司内部不同的产品，结合项目开发特点和软件产品的特点，以及测试人员在行业领域的技能和经验的积累。图1是作者提出的测试类型定义需要考虑的几个方面：</p><p align="center" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><a href="http://www.51testing.com/batch.download.php?aid=33774" target="_blank" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; "><img border="0" src="http://www.51testing.com/attachments/2012/07/346836_201207091029571IDfY.jpg" style="word-break: break-all; list-style-type: none; list-style-position: outside; list-style-image: none; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; max-width: 500px; "  alt="" /></a></p><p align="center" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">图1 测试类型的主要来源</p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　测试类型定义需要综合考虑各个方面的输入，包括开发文档定义的需求（包括涉及的一些标准与规范等）、ISO/IEC 9126质量模型、测试经验，以及通过分析在研发阶段发现的缺陷、产品发布之后用户反馈的缺陷分析等，不断分类提炼之后形成可用的测试类型。同时测试类型是一个不断迭代和更新的过程，在测试过程中可以不断改进测试类型。</p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　1）需求文档分析</strong></p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　首先，测试对象相关的软件<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">工作</strong></u></a>产品，包括相关的标准与规范等，是定义测试类型需要考虑的最主要来源。也就是说，软件产品的具体特点、实现的功能、面向的客户等是确定测试类型首先需要考虑的。例如：有的软件产品主要关注在用户体验上面，而有的软件产品是安全关键系统，那么它们在定义测试类型的时候是需要首先考虑的。</p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　2）ISO/IEC 9126质量模型</strong></p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　不同的产品利益相关者，其对软件产品质量的描述和要求是不一样的，而测试人员需要兼顾不同人员对产品质量的要求。因此，仅仅依赖于产品的需求文档，测试人员无法设计有效的测试用例（用户反馈的缺陷就是一个有力的例证）。ISO/IEC 9126质量模型中定义的质量特性，可以为测试人员选择质量特性提供较好的思路，如图2所示。</p><p align="center" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><a href="http://www.51testing.com/batch.download.php?aid=33775" target="_blank" style="word-break: break-all; color: #45a2fc; line-height: normal !important; "><img border="0" src="http://www.51testing.com/attachments/2012/07/346836_201207091030011kpw0.jpg" style="word-break: break-all; list-style-type: none; list-style-position: outside; list-style-image: none; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; max-width: 500px; "  alt="" /></a></p><p align="center" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">图2 ISO/IEC 9126质量模型</p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　3）测试经验</strong></p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　测试人员在行业和软件产品方面的经验也是测试类型定义中的重要输入之一。不同工作经验和行业工作经验的测试人员，在定义和分类测试类型过程中提出各自不同的观点和思路，有助于完善测试类型。</p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　4）发布前的缺陷分析</strong></p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　测试人员在测试过程中可以发现大量的缺陷，通过分析不同产品、不同阶段发现的缺陷，也有助于测试类型的分类和完善。</p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　5）发布后的缺陷分析</strong></p><p align="left" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; ">　　穷尽测试不可能，因此软件产品发布之后，总是能在用户使用现场发现不同类型的缺陷，通过分析和归类这些缺陷，同样也有助于完善测试类型。</p></div><img src ="http://www.blogjava.net/qileilove/aggbug/382764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-07-11 09:36 <a href="http://www.blogjava.net/qileilove/archive/2012/07/11/382764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分享几款一键搭建php本地测试环境工具</title><link>http://www.blogjava.net/qileilove/archive/2012/07/09/382577.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Mon, 09 Jul 2012 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/07/09/382577.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/382577.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/07/09/382577.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/382577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/382577.html</trackback:ping><description><![CDATA[<div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　很多朋友平时电脑做服务器都是搭建iis服务器，今天我给大家分享几个一键搭建php本地<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; "></strong></u></a><u style="word-break: break-all; line-height: normal !important; "><strong style="word-break: break-all; "><a href="" target="_self" style="word-break: break-all; text-decoration: none; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">测试</strong></u></a>工具</strong></u>！，喜欢做网站论坛的朋友为了使自己的站点能够具有独特的个性和良好的用户体验，总会对自己的站点进行一系列的深度调整，方能充分体现网站特色和唯一性，一般的PHP 本地<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">测试环境</strong></u></a>【PHP 本地测试、本地服务器、网站制作必备工具】</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　Wordpress 够流行了吧，它是一个用 PHP 编写的强大的博客平台。使用它来架设一个博客平 台相关容易，是新手建站比较方便的工具。但是要真正体会 WordPress（以下简称 WP）强 大，插件是不可少的东西。一般来说，我们不可能想试一个插件就把文件通过 FTP 来上传， 然后去自己的网站里试，那样风险大了点。所以我们需要在本地计算机上搭建一个 PHP 平 台。我就把常用的 PHP 本地测试平台都收集一下，给需要的人提供方便。 一般来说，本地的 PHP 平台分为两种，一种是 LAMP，即为 Linux+Apache+MySql+PHP；另一 种是 WAMP，它是 Windows+Apache+MySql+PHP，而前者一般优秀于后者。如果让我们自己来 安装 Apache+MySql+PHP，难度不少，改一堆代码不说，还容易出错。再者考虑到现在大家 大多使用的是&nbsp;<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">Windows</strong></u></a>&nbsp;<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">操作系统</strong></u></a>，自己又是个&nbsp;<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">Linux</strong></u></a>&nbsp;盲，所以我提供的这些本地测试平台 都是 WAMP，都是集成以上功能的，安装完成即可使用。先大概了解一下吧：</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　1、XAMPP</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　XAMPP 是一款比较强大的本地测试平台，它集成了必须的三个功能，还带有 FileZilla，软 件带有一个控制面板，在里面可以把 Apache、<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">MySql</strong></u></a>&nbsp;和 FileZilla 三者注册为系统服务或 者卸载服务，有服务启动的控制按钮，而且在窗口下部还能看到服务的运行信息。虽说面 板是英文的，但清楚易懂。注册为系统服务有个好处就是开机能够自动运行，但是会消耗 一定的系统资源，怎么取舍用户自己来定。安装成功，服务也启动成功后，就可以把浏览 器打开输入 http://localhost/，试试是否成功。在 XAMPP 的网页选项里，有中文支持。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　2、WampServer</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　它的官方网站没有中文，但是程序支持中文。启动安装程序后，它会提示你请先卸载旧版， 不支持覆盖式的升级，然后一路 NEXT 就能安装成功。它在任务托盘里有个图标，如果服务 启动异常，它就是红色的；如果部分异常，它就变成黄色；如果是一切正常，那么它就变 成了白色。这些不同的颜色警示，你很容易判断当前你的 localhost 能不能打开。它还能 切换在线和离线状态，选项中的文语言项中也有简体中文可选，很不错。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　WampServer 2.0c [05/05/2008] Includes : &#8211; Apache 2.2.8 &#8211; MySQL 5.0.51b &#8211; PHP 5.2.6 changelog Downloads http://internap.dl.sourceforge.n &#8230; /WampServer2.0c.exe</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　3、Vertrigo Server</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　这是一个轻量级的 WAMP 环境，但是你下载它的时候，迅雷自带的安全组件居然说它带有病 毒。经过我 的扫描（ESS3.0）和使用来看，这完全是个误报，所以大家可以放心使用。安 装一路 NEXT 就行，其中 PhpMyAdmin 中居然还有原始密码，是 vertrigo，感觉在本地测试 的话，这种默认没有必要。它带有一个简单的控制面板，运行状态也一目了然。 在它的 localhost 页面中带有常用链接，很方便。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　4、PHPNow</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　PHPNow 真的很简单，简单到安装程序就是用 RAR 做的一个自解压程序。自释放后快捷方式 也没有，你必须自己找到那个文件存放的文件夹，然后运行 Init.cmd 这个程序来初始化。 初始化过程中提示设置密码，因为是在 CMD 命令行中，只设计了一次密码输入，没有密码 确认项，所以请设置的时候千万小心，不要忘了。它也把式 Apache 和 MySql 注册为服务， 开机自启动。 在程序文件夹中，它也带有控制面板，只不过是 CMD 的，但很好用。 卸载就更容易了，在软件自带的控制面板中卸载服务，然后关把整个文件夹删掉就行。这 么方便，图简便的可以试试。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　5、PHPStudy 本人推荐使用此款</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　PHPStudy 不一样，它含有 IIS+PHP 和 Apache+PHP，软件推荐设置是后者。在任务托盘里也有图标，可以打开面板来看服务运行状态，也很简洁。打开 localhost，出现的是标准的 PHP 信息界面。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; ">　　6、AppServ</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　程序安装过程中它提示你可以改变默认的 80 端口为服务端口，这样可以避免端口共享产生 的冲突。可有密码设置提示，但是做得比 PHPNow 好多了，软件还可以设置字符集，默认为 UTF-8。虽然软件没有控制面板，但一切操作都在开始菜单中加入了快捷方式，使用当然很方便。软件还带有 MySql 命令行终端。 7. EasyPHP 软件如其名，真的很 EASY！安装一路 NEXT，但是不会把 Apache 和 MySql 加载为服务，所 以每次使用都要手工来启动。软件也带简单的控制面板，其他的没什么要说的了。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　说了这么多，我想，这些工具应该够你使用的了，找一个你最满意的安装就行了。 PS：如果某些这样的 PHP 相关的服务无法启动，请注意一下你的机器中的 80 端口是否被占 用。一般的程序，如迅雷，BT 软件什么的，即使它们没有在<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">工作</strong></u></a>，开着也会占用 80 端口。 所以把它们关掉后，启动 PHP 相关的服务后再把这些下载软件什么的打开，就不会有服务 启动不成功这样的问题的。</p></div><img src ="http://www.blogjava.net/qileilove/aggbug/382577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-07-09 10:21 <a href="http://www.blogjava.net/qileilove/archive/2012/07/09/382577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>每日构建和冒烟测试</title><link>http://www.blogjava.net/qileilove/archive/2012/07/06/382333.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Fri, 06 Jul 2012 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/07/06/382333.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/382333.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/07/06/382333.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/382333.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/382333.html</trackback:ping><description><![CDATA[<div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　谈每日构建都会连带谈<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">冒烟测试</strong></u></a>这个词。每日构建不是简单的指每日编译，编译和构建完成后必须对增加的新功能点进行<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">系统测试</strong></u></a>，对已经测试过的功能点进行冒烟测试。每日构建是<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">微软</strong></u></a>比较推荐的最佳实践，强调测试的早期介入和持续的版本集成。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　每日构建和冒烟测试的优点主要有：</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　1、进度可见并可以控制到1-2天的细粒度，很容易看到进度的偏差</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　2、及早的发现开发BUG和缺陷并分析解决，对开发人员的一种监督和促进，提高软件质量</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　3、由于将大集成分解到每日构建中的小集成，避免了传统产品集成或集成测试时候出现的严重问题的可能。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　4、在项目中宣灌质量意识，强调第一次就把事情做好，而不是等测试来帮你发现问题</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　每日构建和冒烟测试也存在一些风险和缺陷，具体主要有：</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　1、给开发人员太大压力，开发每天都在较紧张环境中<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">工作</strong></u></a></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　2、需要额外的测试人力资源和每日构建硬件环境的投入</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　3、开发人员不能专注，既要分心去修改BUG，又要开发新的功能点</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　4、对开发负责人要求更好，需要将功能细化到1-2天的有明确输出的功能点</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　5、开发需要投入额外的精力来保证每日构建顺畅</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　适用场景：</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　1、对进度偏差控制和要求很高的项目</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　2、开发检查点和里程碑制定的很细致的项目</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　3、采用增量和迭代开发的项目，快速和<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">敏捷</strong></u></a>开发的项目</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　每日构建提前需要进行的准备工作：</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　1、对开发进度计划的要求，需要细化出每1-2天的开发进度计划，可以到一个很小的功能点。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　2、对每日构建测试计划的要求，需要根据开发进度计划来安排冒烟测试和系统测试进度计划。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　3、需要提前准备好每日构建的环境（每日构建必须是独立的环境）</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　每日构建和冒烟测试工作的实现可以人工来实现，但更多的需要借助些自动化的工具来完成。对于每日构建一般要提前编写好每日够建的脚本，可以借助Ant或NAnt构建工具来完成。每日构建脚本的复杂性跟项目或系统本身复杂性相关，对于简单的只有一个项目的解决方案，可能构建脚本会很简单，而对于较复杂的系统或项目构建脚本将会教复杂。NAnt是一个强大的通过构建脚本自动编译的工具，像我现在的项目在NAnt里面会做如下事情，而这个即使打开解决方案来编译也无法做到。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　1、调用批文件重新自动生成数据访问层组件</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　2、创建相关的部署需要的cs_client，bs_client，<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">server</strong></u></a>，service相关目录并拷贝公用文件<br /><br /><br /><div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　3、按照公用项目-&gt;逻辑层-&gt;界面层顺序和项目间依赖关系对各个项目逐一编译</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　4、调用外部工具soapsuds生成数据访问dll的代理类文件，逻辑层重新引用代理类进行编译（分布式部署需要）</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　5、引用3，4步需要的dll对Web项目进行编译</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　6、拷贝编译结果到相关的输出目录</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　每日构建和每日编译的最大区别就在于是否进行了冒烟测试，系统必须通过了冒烟测试才能够算每日构建成功。而测试人员人工介入的测试是基于冒烟测试通过的基础上面的。这里很简单一个例子，如我们NAnt配置文件忘记拷贝一个公共文件到server目录了，这个时候每日编译可能是通过的，但如果把这个版本部署出去测试无法进行测试的。或者说冒烟测试的一个重要作用就是要彻底解决由于构建自身原因引起的各种缺陷或Bug。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　冒烟测试由于要验证整个编译的正确性，因此冒烟测试必须是针对整个系统进行冒烟测试。但冒烟测试只需要关注系统的主体功能即可，通过冒烟测试并不是说系统没有BUG，只是说通过了冒烟测试后可以说系统是一个稳定的版本，说系统的每日构建是成功了，代表系统可以转交专门的测试人员进行测试了。冒烟测试工作一般要采用自动化来进行，可以借助如LoadRunner等工具来录制自动化测试脚本，冒烟测试的脚本应该由专门的测试人员来维护，而且随着测试的进展冒烟测试脚本也应该是不断增加和补充的。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　对于每日构建失败，直接责任的开发人员需要程度责任并付出代价。微软顾问经常爱举的一个例子就是凌晨2，3点开发人员被叫到公司解决每日构建失败的问题的案例。实际操作可能很难，但对构建造成影响的必须要承担应有的责任。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　每日构建一般要配合使用源代码管理工具，而构建时间一般安排在每天下班后或晚上进行。开发人员需要保证每天检入的代码是能够顺利编译通过的，并保证在本机已经做了相关测试。每日构建并不是一定要要求每天都有新的功能点完成，如果今天开发完成的东西不是一个独立的可以提交测试的功能点，这个时候当天的源代码最好不要检入。代码的检入周期一般要在2-3天内，如果周期再长基本上就达不到每日构建的作用了。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　每日构建必须有独立和专门的构建服务器和构建环境。构建服务器和构建环境与测试环境的最大区别在于构建环境是完全Copy开发环境，单独出构建环境目的是保证构建过程不和开发环境和过程冲突。如果条件不允许的话可以将构建环境和测试环境合并，但构建环境必须和开发环境分离。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><strong style="word-break: break-all; line-height: normal !important; ">　　每日构建的成功要素：</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　1、每天都进行编译和冒烟测试</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　2、冒烟测试脚本随着测试的进度不断完善和补充</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　3、构建成功在项目中拥有较高的优先级</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　4、通过过程的制定保证构建失败更多的是因为异常因素而非规则不清</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　5、在压力下不要抛弃过程</p></div></p></div><img src ="http://www.blogjava.net/qileilove/aggbug/382333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-07-06 09:50 <a href="http://www.blogjava.net/qileilove/archive/2012/07/06/382333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开发测试工作考核数据之---生产环境bug修复及时率</title><link>http://www.blogjava.net/qileilove/archive/2012/06/26/381486.html</link><dc:creator>顺其自然EVO</dc:creator><author>顺其自然EVO</author><pubDate>Tue, 26 Jun 2012 01:55:00 GMT</pubDate><guid>http://www.blogjava.net/qileilove/archive/2012/06/26/381486.html</guid><wfw:comment>http://www.blogjava.net/qileilove/comments/381486.html</wfw:comment><comments>http://www.blogjava.net/qileilove/archive/2012/06/26/381486.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qileilove/comments/commentRss/381486.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qileilove/services/trackbacks/381486.html</trackback:ping><description><![CDATA[<div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　编写背景：</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　前段时间有不少猎头来电询问是否考虑换<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">工作</strong></u></a>，我一一回绝；因为在目前公司要完成的目标目前完成了1个，正在进行中1个，剩余1个还没有开始；其中一个猎头问我为什么来这家公司，主要是因为我的老板懂<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">测试</strong></u></a>这个工种和工作，非常实实在在的支持和重视测试部门。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　非常感谢今年的绩效考核工作，增加了一项考核指标：生产环境<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">bug</strong></u></a>修复及时率，让我有机会<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">学习</strong></u></a>和学会如何用这项指标来驱动开发的工作和检查测试工作成果，感谢我的老板给我的工作指导和好的想法，感谢在工作中时常提醒我做重要事情并给我很多工作建议的mac。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　今天拿出来和同行分享，希望对大家有帮助。^_^。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　点子1：生产环境bug的review会议</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　我们有固定的时间每周四上午，花1小时和开发及管理层过生产环境没有处理的P0、P1、P2问题，时间来得及会把P3也过一过；主要让大家知道目前生产环境都有哪些问题，处理进展如何，什么时候能解决，解决这些问题有什么困难。连续开了4周，有一些进步，还需继续引导。</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">　　点子2：每周过一遍生产环境bug修复及时率数据</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　给大家分享一下上半年的数据，还没有进行更深入的分析。从数据上可以看出测试漏出去不少问题，我在想：为什么会漏出去这些问题？在哪些环节给漏出去的？</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">　　我们要通过什么方法改善？为什么修复及时率这么低，工作流程中哪个地方有问题？数据因什么原因上升或下降？</p><p align="center" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #ffffff; "><a href="http://www.51testing.com/batch.download.php?aid=33339" target="_blank" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; "><img border="0" src="http://www.51testing.com/attachments/2012/06/346836_201206121050141RcnD.jpg" width="808" height="301" style="word-break: break-all; list-style-type: none; list-style-position: outside; list-style-image: none; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; max-width: 500px; width: 808px; height: 282px; "  alt="" /></a></p></div><img src ="http://www.blogjava.net/qileilove/aggbug/381486.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qileilove/" target="_blank">顺其自然EVO</a> 2012-06-26 09:55 <a href="http://www.blogjava.net/qileilove/archive/2012/06/26/381486.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>