ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>日本在线视频一区二区三区,136福利精品导航,国产精品99一区二区三区http://www.aygfsteel.com/jessica/category/17087.html有你的冬天很温暖zh-cnTue, 29 Sep 2009 10:26:09 GMTTue, 29 Sep 2009 10:26:09 GMT60‹¹‹è¯•报告1http://www.aygfsteel.com/jessica/archive/2007/07/27/132814.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Fri, 27 Jul 2007 08:31:00 GMThttp://www.aygfsteel.com/jessica/archive/2007/07/27/132814.htmlhttp://www.aygfsteel.com/jessica/comments/132814.htmlhttp://www.aygfsteel.com/jessica/archive/2007/07/27/132814.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/132814.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/132814.html阅读全文

æ‹æ‹å†¬å­£ 2007-07-27 16:31 å‘表评论
]]>
WebæœåŠ¡å™¨å’Œåº”ç”¨½E‹åºæœåŠ¡å™¨çš„åŒºåˆ«http://www.aygfsteel.com/jessica/archive/2007/07/26/132569.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Thu, 26 Jul 2007 08:20:00 GMThttp://www.aygfsteel.com/jessica/archive/2007/07/26/132569.htmlhttp://www.aygfsteel.com/jessica/comments/132569.htmlhttp://www.aygfsteel.com/jessica/archive/2007/07/26/132569.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/132569.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/132569.html阅读全文

æ‹æ‹å†¬å­£ 2007-07-26 16:20 å‘表评论
]]>
相对性能指标http://www.aygfsteel.com/jessica/archive/2007/07/10/129390.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Tue, 10 Jul 2007 09:01:00 GMThttp://www.aygfsteel.com/jessica/archive/2007/07/10/129390.htmlhttp://www.aygfsteel.com/jessica/comments/129390.htmlhttp://www.aygfsteel.com/jessica/archive/2007/07/10/129390.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/129390.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/129390.htmlã€æ€§èƒ½ç“‰™¢ˆã€?o:p>

CPU é™åˆ¶

vmstatå½?user+%sys ­‘…过80%

¼‚盘I/Oé™åˆ¶

vmstatå½?iowait­‘…过40%

应用¼‚盘é™åˆ¶

iostat当tm_act­‘…过70%

虚存½Iºé—´ž®?o:p>

lsps-a当分™å늩ºé—´çš„‹zÕdŠ¨çŽ‡è¶…˜q?0%

æ¢é¡µé™åˆ¶

Iostat vmstat

虚存逻辑å?o:p>

%tm_act­‘…过I/O(iostat)çš?0%åQŒæ¿€‹zÈš„虚存率超˜q‡CPUæ•°é‡(vmstat)çš?0å€?o:p>

¾pÈ»Ÿå¤ÞpÓ|

Vmstat sar™åµäº¤æ¢å¢žå¤§ã€CPU½{‰å¾…òq¶è¿è¡Œé˜Ÿåˆ?o:p>

ã€ç›¸å¯¹çš„æ€§èƒ½æŒ‡æ ‡ã€?o:p>

CPU

GoodåQ?0%

 

BadåQ?5%

 

Very BadåQ?0%+

Memory

GoodåQšno page change

 

BadåQšæ¯ä¸ªCPUæ¯ç§’10个页交æ¢

 

Very BadåQšmore page change

Disk

GoodåQ?lt;30%

 

BadåQ?0%

 

Very BadåQ?0%+

Network

好:带宽ž®äºŽ30%

˜q行队列

好:<2*CPUæ•°é‡

 

 

 



æ‹æ‹å†¬å­£ 2007-07-10 17:01 å‘表评论
]]>
错误分类列表http://www.aygfsteel.com/jessica/archive/2007/04/18/111540.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Wed, 18 Apr 2007 03:02:00 GMThttp://www.aygfsteel.com/jessica/archive/2007/04/18/111540.htmlhttp://www.aygfsteel.com/jessica/comments/111540.htmlhttp://www.aygfsteel.com/jessica/archive/2007/04/18/111540.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/111540.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/111540.html阅读全文

æ‹æ‹å†¬å­£ 2007-04-18 11:02 å‘表评论
]]>
软äšg¾~ºé™·çš„定ä¹?/title><link>http://www.aygfsteel.com/jessica/archive/2006/12/31/91110.html</link><dc:creator>æ‹æ‹å†¬å­£</dc:creator><author>æ‹æ‹å†¬å­£</author><pubDate>Sun, 31 Dec 2006 02:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/jessica/archive/2006/12/31/91110.html</guid><wfw:comment>http://www.aygfsteel.com/jessica/comments/91110.html</wfw:comment><comments>http://www.aygfsteel.com/jessica/archive/2006/12/31/91110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jessica/comments/commentRss/91110.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jessica/services/trackbacks/91110.html</trackback:ping><description><![CDATA[     摘è¦: æè¿°è½¯äšgå¤ÞpÓ|的用语åŠè½¯äšg¾~ºé™·çš„定ä¹?nbsp; <a href='http://www.aygfsteel.com/jessica/archive/2006/12/31/91110.html'>阅读全文</a><img src ="http://www.aygfsteel.com/jessica/aggbug/91110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jessica/" target="_blank">æ‹æ‹å†¬å­£</a> 2006-12-31 10:39 <a href="http://www.aygfsteel.com/jessica/archive/2006/12/31/91110.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>‹¹‹è¯•需求分æžçš„æ­¥éª¤http://www.aygfsteel.com/jessica/archive/2006/11/03/78964.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Fri, 03 Nov 2006 10:01:00 GMThttp://www.aygfsteel.com/jessica/archive/2006/11/03/78964.htmlhttp://www.aygfsteel.com/jessica/comments/78964.htmlhttp://www.aygfsteel.com/jessica/archive/2006/11/03/78964.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/78964.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/78964.html ‹¹‹è¯•需求分æžçš„æ­¥éª¤åQ?/span>

1 ã€?/span>    熟悉需求背景åŠå•†ä¸šç›®æ ‡åQ?/span>

a)      了解清楚™å¹ç›®å‘è“vçš„åŽŸå› ï¼Œæ˜¯äØ“äº†è§£å†³ç”¨æˆïLš„什么问题ã€?/span>

b)      当å‰çš„è§£å†Ïx–¹æ¡ˆæ˜¯ä¸æ˜¯æœ€ä¼˜çš„åQŒäؓ什么会˜q™æ ·åšã€?/span>

2 �/span>    业务模型法:

a)      考虑本项目与外部¾pÈ»Ÿçš„交互,划分¾pÈ»Ÿè¾¹ç•ŒåQˆé™¤äº†æœ¬™å¹ç›®çš„éœ€æ±‚ä¸­è¦æ±‚åšçš„事情åQŒå…¶ä»–的都å¯ä»¥æ˜¯å¤–部¾pÈ»ŸåQŒæœ¬¾pÈ»Ÿå’Œå¤–部系¾lŸä¹‹é—´çš„交互ž®±æ˜¯¾pÈ»Ÿçš„边界)åQŒã€‚å¯ä»¥å‚考系¾lŸåˆ†æžè¯´æ˜Žä¹¦ã€?/span>

b)      ¼‹®å®š‹¹‹è¯•范围和关注点。系¾lŸçš„边界是测试的é‡ç‚¹åQŒç‰¹åˆ«éœ€è¦å…³æ³¨è¾¹ç•Œäº¤äº’时的数æ®äº¤äº’ã€?/span>

3 �/span>    业务场景法:

a)      考虑用例的调用者;考虑æ¯ä¸€ä¸ªç”¨ä¾‹æä¾›çš„æœåŠ¡æ˜¯ä¾›å“ªäº›å¤–éƒ¨ç”¨ä¾‹æˆ–è€…ç³»¾lŸè°ƒç”¨ï¼Œæ‰‘Ö‡ºæ‰€æœ‰çš„è°ƒç”¨è€…ã€‚è°ƒç”¨çš„å‰æã€çº¦æŸéƒ½è¦è€ƒè™‘。æ¯ä¸€ä¸ªè°ƒç”¨éƒ½å¯ä»¥è€ƒè™‘æˆä¸€ä¸ªå¤§çš„业务浽E‹ã€‚(一般和外部有交互的用例出错的概率比较大åQŒéœ€è¦é‡ç‚¹å…³æ³¨ã€‚具体被哪些外部调用åQŒæ¯ä¸ªäñ”å“线都需è¦è‡ªå·±æ•´ç†æ·»åŠ ã€‚ï¼‰

b)      考虑¾pÈ»Ÿå†…部å„个用例之间的交互(有å¯èƒ?/span> PD 划分用例的粒度ä¸åŒï¼Œæˆ‘们暂时考虑用户一‹Æ¡æäº¤åƈ且系¾lŸçš„状æ€åŠæ•°æ®å‘生å˜åŒ–的功能是一个用例)åQŒåÅžæˆå†…部业务浽E‹å›¾ã€‚需è¦åˆ†æžæ¯ä¸ªç”¨ä¾‹ä¹‹é—´çš„¾U¦æŸå…³ç³»ã€æ‰§è¡Œæ¡ä»Óž¼Œ¾l„织出儿U业务浽E‹å›¾ã€?/span>

4 ã€?/span>    功能分解法(å¯Òޝ䏀ä¸?/span> UC åQ‰ï¼š

a)      用户与系¾lŸçš„æ¯ä¸€‹Æ¡äº¤äº’,都å¯ä»¥è®¤ä¸ºæ˜¯ä¸€ä¸ªå°åŠŸèƒ½ã€?/span>

 

 



]]>
压力‹¹‹è¯•工具å¯Òޝ” http://www.aygfsteel.com/jessica/archive/2006/07/27/60380.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Thu, 27 Jul 2006 08:51:00 GMThttp://www.aygfsteel.com/jessica/archive/2006/07/27/60380.htmlhttp://www.aygfsteel.com/jessica/comments/60380.htmlhttp://www.aygfsteel.com/jessica/archive/2006/07/27/60380.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/60380.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/60380.html

比较内容

LoadRunner

Robot+TestManager

脚本录制

 

Robot 是按照ä¸åŒåè®®æ¥å½•制VU脚本的,ä¸åŒçš„å议录制出的脚本ä¸å?span lang="EN-US">

 

å¯ä»¥å½•制ä¸é€šè¿‡æœ¬æœºä¹‹é—´æœºå™¨ä¹‹é—´çš„通讯内容

 

å½•åˆ¶æ—¶çš„äººæœºäº¤äº’ç•Œé¢æ”¯æŒä¸å¤Ÿå¥?span lang="EN-US">

 

 

Robot çš?span lang="EN-US">VU脚本ä¸?span lang="EN-US">GUI脚本ä¸åŒ

 

函数支æŒä¸°å¯Œå¤„ç†è¾ƒçµ‹z?span lang="EN-US">

 

易读性差调试隑ֺ¦å¤?span lang="EN-US">

 

为用户内¾|®äº†ä¸€äº›åœºæ™¯å¯ä»¥è¾ƒä¸ºæ–¹ä¾¿çš„使用

用户å¯ä»¥ç‰|´»çš„定制测试场景,但是有些需è¦é€šè¿‡ä¿®æ”¹‹¹‹è¯•脚本æ¥è¿›è¡?span lang="EN-US">

囑ÖŞ化处ç†ç•Œé¢æ“作简ä¾?span lang="EN-US">

用户ã€åœºæ™¯ã€?span lang="EN-US">Suit定义层次清楚

定制ç‰|´»æ€§å·®ä¸€äº?span lang="EN-US">

一般测试äh员较难上手,需è¦ç†Ÿæ‚‰æ—¶é—´é•¿

监控讄¡½®

å¯ä»¥ç›‘控多ç§èµ„æºæƒ…况

æ—?span lang="EN-US">

˜qè¡Œæ—¶èŽ·å¾—èµ„æºæ•°æ®ä¸Žè„šæœ¬˜q行情况相匹é…?span lang="EN-US">

æ—?span lang="EN-US">

采集数æ®å«ä¹‰ä¸å¤Ÿæ˜Žç¡®å’Œé€šç”¨

æ—?span lang="EN-US">

˜q行控制

å¯ä»¥ç›‘控和设定ä¸åŒè™šæ‹Ÿç”¨æˆïLš„˜q行状æ€?span lang="EN-US">

针对脚本内容有全é¢çš„˜q行监控åQŒå›¾å½¢åŒ–的表½CÞZ¸åŒçš„˜q行状æ€?span lang="EN-US">

监控资æºå’Œè™šæ‹Ÿç”¨æˆ·åŒæ—¶è¿›è¡?span lang="EN-US">

¾l†èŠ‚çš„çœ‹åˆ°è„šæœ¬è¿è¡Œæƒ…况,˜q行效率较高

˜q行脚本效率较差

æ— æ³•ä¸Žèµ„æºæƒ…å†ëŠ»Ÿä¸€

¾l“果获得

汇æ€ÖM¿¡æ¯é‡‡ç”¨å•ç‹¬å·¥å…øP¼Œå¯ä»¥è¾ƒäؓ详细å¯ÒŽ•°æ®ç»“果进行统计分æžï¼Œå¯ä»¥è‡ªåŠ¨ç”ŸæˆæŠ¥å‘Š

对脚本的å„ç§æƒ…况监控支æŒè¾ƒäؓ全é¢

数殾l“果详细图表丰富åQŒå¯ä»¥çµ‹zÈ”ŸæˆæŠ¥è¡¨å’ŒæŠ¥å‘Š

¾l“æžœå¯ÒŽ¯ä¸€æ­¥éª¤æ‰§è¡Œæ—‰™—´åšè®°å½•方便分æžï¼Œè‡ªåŠ¨è®°å½•æ¯ä¸€‹Æ¡æµ‹è¯•结æž?span lang="EN-US">

¾l“æžœä¸æ˜“ä¿å­˜åQŒå¤„ç†é€Ÿåº¦è¾ƒæ…¢

ä¸èƒ½è‡ªåŠ¨ç”Ÿæˆå¯è¯»çš„æµ‹è¯•报告,需è¦å†åŠ å·¥

æ“作æ€?span lang="EN-US">

å®ÒŽ˜“上手åQŒé€‚åˆäºŽéžæŠ€æœ¯äh员æ“ä½?span lang="EN-US">

上手困难åQŒéœ€è¦æœ‰ä¸€å®šæŠ€æœ¯åŸº¼‹€çš„äh使用

界é¢å‹å¥½æ€?span lang="EN-US">

界é¢å‹å¥½æ€§è¾ƒå¼?span lang="EN-US">

界é¢å‹å¥½æ€§è¾ƒå¼ºï¼Œä½†æ˜¯å®ÒŽ˜“down掉,òq¶ä¸”很难é‡å¯

æŠ€æœ¯æ”¯æŒæ€?span lang="EN-US">

Mercury 技术äh员较ž®‘ï¼Œæ”¯æŒæœ‰å›°éš?span lang="EN-US">

Rational 技术äh员较多,IBM˜q˜æœ‰å…¶ä»–æœåŠ¡æä¾›å•†ç»™äºˆæŠ€æœ¯æ”¯æŒ?span lang="EN-US">

å…¶ä»–

LR ‹¹‹è¯•èŒƒå›´æ›´å¹¿çš„ä¸“ä¸šå·¥å…øP¼Œç›—版License也在¾|‘上很容易找

Rational çš„äñ”å“é‡ç‚¹ä¸åœ?span lang="EN-US">Robot上,况且以åŽä¼šä¿®æ”¹åˆ°Eclipseòq›_°ä¸Šï¼ŒLicense也ä¸å®ÒŽ˜“¾l?span lang="EN-US">



æ‹æ‹å†¬å­£ 2006-07-27 16:51 å‘表评论
]]>
å•å…ƒ‹¹‹è¯•的基本方æ³?/title><link>http://www.aygfsteel.com/jessica/archive/2006/06/07/51182.html</link><dc:creator>æ‹æ‹å†¬å­£</dc:creator><author>æ‹æ‹å†¬å­£</author><pubDate>Wed, 07 Jun 2006 09:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/jessica/archive/2006/06/07/51182.html</guid><wfw:comment>http://www.aygfsteel.com/jessica/comments/51182.html</wfw:comment><comments>http://www.aygfsteel.com/jessica/archive/2006/06/07/51182.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jessica/comments/commentRss/51182.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jessica/services/trackbacks/51182.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">    å•å…ƒ‹¹‹è¯•的对象是软äšg设计的最ž®å•ä½â€”—模å—。å•å…ƒæµ‹è¯•çš„ä¾æ®æ˜¯è¯¦¾l†è®¾æè¿°åQŒå•元测试应å¯Òލ¡å—内所有é‡è¦çš„æŽ§åˆ¶è·¯å¾„设计‹¹‹è¯•用例åQŒä»¥ä¾¿å‘现模å—内部的错误。å•元测试多采用白盒‹¹‹è¯•技术,¾pÈ»Ÿå†…多个模å—å¯ä»¥åƈ行地˜q›è¡Œ‹¹‹è¯•ã€?br /></span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">å•å…ƒ‹¹‹è¯•ä»ÕdŠ¡åŒ…æ‹¬</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> <span> </span> </span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> <br />    </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1 </span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">æ¨¡å—æŽ¥å£‹¹‹è¯•</span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> <br />    </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2 </span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> </span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">模å—局部数æ®ç»“构测è¯?/span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> <br />    </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"> </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">3</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> </span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">模å—边界æ¡äšg‹¹‹è¯•</span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> <br />    </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">4</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> </span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">模å—中所有独立执行通èµ\‹¹‹è¯•</span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">åQ?/span> <br /> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">    </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">5</span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"> </span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">模å—çš„å„æ¡é”™è¯¯å¤„ç†é€šèµ\‹¹‹è¯•</span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">æ¨¡å—æŽ¥å£‹¹‹è¯•是å•å…ƒæµ‹è¯•çš„åŸºç¡€ã€‚åªæœ‰åœ¨æ•°æ®èƒ½æ­£¼‹®æµå…¥ã€æµå‡ºæ¨¡å—çš„å‰æä¸‹ï¼Œå…¶ä»–‹¹‹è¯•æ‰æœ‰æ„ä¹‰ã€‚æµ‹è¯•æŽ¥å£æ­£¼‹®ä¸Žå¦åº”该考虑下列因素åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è¾“å…¥çš„å®žé™…å‚æ•îC¸Žå½¢å¼å‚数的个数是å¦ç›¸åŒï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è¾“å…¥çš„å®žé™…å‚æ•îC¸Žå½¢å¼å‚数的属性是å¦åŒ¹é…ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">3 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è¾“å…¥çš„å®žé™…å‚æ•îC¸Žå½¢å¼å‚数的釾U²æ˜¯å¦ä¸€è‡ß_¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">4 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è°ƒç”¨å…¶ä»–æ¨¡å—æ—¶æ‰€¾l™å®žé™…傿•°çš„个数是å¦ä¸Žè¢«è°ƒæ¨¡å—的形å‚个数相åŒåQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">5 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è°ƒç”¨å…¶ä»–æ¨¡å—æ—¶æ‰€¾l™å®žé™…傿•°çš„属性是å¦ä¸Žè¢«è°ƒæ¨¡å—çš„åÅžå‚属性匹é…ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">6</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è°ƒç”¨å…¶ä»–æ¨¡å—æ—¶æ‰€¾l™å®žé™…傿•°çš„é‡çº²æ˜¯å¦ä¸Žè¢«è°ƒæ¨¡å—的形å‚é‡çº²ä¸€è‡ß_¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">7 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è°ƒç”¨é¢„å®šä¹‰å‡½æ•°æ—¶æ‰€ç”¨å‚æ•°çš„个数ã€å±žæ€§å’Œ‹Æ¡åºæ˜¯å¦æ­£ç¡®åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">8 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">是å¦å­˜åœ¨ä¸Žå½“å‰å…¥å£ç‚¹æ— å…³çš„傿•°å¼•用;</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">9 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">是å¦ä¿®æ”¹äº†åªè¯Õdž‹å‚æ•°åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">10  </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">对全½E‹å˜é‡çš„å®šä¹‰å„æ¨¡å—是å¦ä¸€è‡ß_¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">11</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">æ˜¯å¦æŠŠæŸäº›çº¦æŸä½œä¸ºå‚æ•îC¼ é€’ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">如果模å—内包括外部输入输出,˜q˜åº”该考虑下列因素åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">æ–‡äšgå±žæ€§æ˜¯å¦æ­£¼‹®ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2 OPEN/CLOSE</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">è¯­å¥æ˜¯å¦æ­£ç¡®åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">3 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">æ ¼å¼è¯´æ˜Žä¸Žè¾“å…¥è¾“å‡ø™¯­å¥æ˜¯å¦åŒ¹é…ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">4</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">¾~“冲区大ž®ä¸Žè®°å½•长度是å¦åŒšw…åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">5</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">æ–‡äšgä½¿ç”¨å‰æ˜¯å¦å·²¾l打开åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">6</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">是å¦å¤„ç†äº†æ–‡ä»¶å°¾åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">7</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">是å¦å¤„ç†äº†è¾“å…?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">/</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">输出错误åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">8</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">输出信æ¯ä¸­æ˜¯å¦æœ‰æ–‡å­—性错误;<br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">‹‚€æŸ¥å±€éƒ¨æ•°æ®ç»“构是ä¸ÞZº†ä¿è¯ä¸´æ—¶å­˜å‚¨åœ¨æ¨¡å—内的数æ®åœ¨½E‹åºæ‰§è¡Œ˜q‡ç¨‹ä¸­å®Œæ•´ã€æ­£¼‹®ã€‚局部数æ®ç»“构往往是错误的æ ÒŽºåQŒåº”仔细设计‹¹‹è¯•用例åQŒåŠ›æ±‚å‘çŽîC¸‹é¢å‡ ¾c»é”™è¯¯ï¼š</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">ä¸åˆé€‚或ä¸ç›¸å®¹çš„¾cÕdž‹è¯´æ˜ŽåQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">å˜é‡æ— åˆå€û|¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">3 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">å˜é‡åˆå§‹åŒ–或çœç¼ºå€¼æœ‰é”™ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">4</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">䏿­£¼‹®çš„å˜é‡åï¼ˆæ‹¼é”™æˆ–ä¸æ­£ç¡®åœ°æˆªæ–­ï¼‰åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">5</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">出现上溢ã€ä¸‹æº¢å’Œåœ°å€å¼‚常ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">除了局部数æ®ç»“构外åQŒå¦‚æžœå¯èƒ½ï¼Œå•å…ƒ‹¹‹è¯•时还应该查清全局数æ®åQˆä¾‹å¦?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">FORTRAN</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">的公用区åQ‰å¯¹æ¨¡å—的媄å“ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">在模å—中应对æ¯ä¸€æ¡ç‹¬ç«‹æ‰§è¡Œèµ\径进行测试,å•å…ƒ‹¹‹è¯•的基本ä“Q务是ä¿è¯æ¨¡å—ä¸­æ¯æ¡è¯­å¥è‡³ž®‘执行一‹Æ¡ã€‚此时设计测试用例是ä¸ÞZº†å‘现因错误计½Ž—ã€ä¸æ­£ç¡®çš„æ¯”较和ä¸é€‚当的控制æµé€ æˆçš„错误。此时基本èµ\径测试和循环‹¹‹è¯•是最常用且最有效的测试技术。计½Ž—中常è§çš„错误包括:</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">误解或用错了½Ž—符优先¾U§ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">混刾cÕdž‹˜qç®—åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">3</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">å˜é‡åˆå€¼é”™åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">4 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">¾_‘Öº¦ä¸å¤ŸåQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">5</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">表达å¼ç¬¦å·é”™ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">比较判断与控制æµå¸¸å¸¸ç´§å¯†ç›¸å…³åQŒæµ‹è¯•用例还应致力于å‘现下列错误åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">ä¸åŒæ•°æ®¾cÕdž‹çš„对象之间进行比较;</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">错误åœîC‹É用逻辑˜qç®—½W¦æˆ–优先¾U§ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">3</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">因计½Ž—æœºè¡¨ç¤ºçš„å±€é™æ€§ï¼ŒæœŸæœ›ç†è®ºä¸Šç›¸½{‰è€Œå®žé™…上ä¸ç›¸½{‰çš„两个é‡ç›¸½{‰ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">4</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">比较˜q算或å˜é‡å‡ºé”™ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">5</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">循环¾lˆæ­¢æ¡äšg或ä¸å¯èƒ½å‡ºçްåQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">6</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">˜q­ä»£å‘散时ä¸èƒ½é€€å‡ºï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">7 </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">错误åœîC¿®æ”¹äº†å¾ªçޝå˜é‡ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">一个好的设计应能预è§å„¿U出错æ¡ä»Óž¼Œòq‰™¢„讑ք¿U出错处ç†é€šèµ\åQŒå‡ºé”™å¤„ç†é€šèµ\åŒæ ·éœ€è¦è®¤çœŸæµ‹è¯•,‹¹‹è¯•应ç€é‡æ£€æŸ¥ä¸‹åˆ—问题:</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">1</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">输出的出错信æ¯éš¾ä»¥ç†è§£ï¼›</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">2</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">记录的错误与实际é‡åˆ°çš„错误ä¸ç›¸ç¬¦åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">3</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">在程åºè‡ªå®šä¹‰çš„å‡ºé”™å¤„ç†æ®µ˜q行之å‰åQŒç³»¾lŸå·²ä»‹å…¥åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">4</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">异常处ç†ä¸å½“åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma"> <br /> </span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">  </span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">5</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">错误陈述中未能æä¾›èƒö够的定ä½å‡ºé”™ä¿¡æ¯ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">边界æ¡äšg‹¹‹è¯•是å•元测试中最åŽï¼Œä¹Ÿæ˜¯æœ€é‡è¦çš„一™å¹ä“Q务。众的周知,软äšg¾l常在边界上失效åQŒé‡‡ç”¨è¾¹ç•Œå€¼åˆ†æžæŠ€æœ¯ï¼Œé’ˆå¯¹è¾¹ç•Œå€¼åŠå…¶å·¦ã€å³è®¾è®¡‹¹‹è¯•用例åQŒå¾ˆæœ‰å¯èƒ½å‘现新的错误ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">一般认为å•元测试应紧接在编ç ä¹‹åŽï¼Œå½“溽E‹åº¾~–制完æˆòq‰™€šè¿‡å¤å®¡å’Œç¼–译检查,便å¯å¼€å§‹å•元测试。测试用例的设计应与å¤å®¡å·¥ä½œç›¸ç»“åˆï¼Œæ ÒŽ®è®¾è®¡ä¿¡æ¯é€‰å–‹¹‹è¯•æ•°æ®åQŒå°†å¢žå¤§å‘现上述å„类错误的å¯èƒ½æ€§ã€‚在¼‹®å®š‹¹‹è¯•ç”¨ä¾‹çš„åŒæ—Óž¼Œåº”给出期望结果ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">åº”äØ“‹¹‹è¯•模å—å¼€å‘一个驱动模å—(</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">driver</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">åQ‰å’ŒåQˆæˆ–åQ‰è‹¥òq²ä¸ªæ¡©æ¨¡å—(</span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">stub</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">,</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">下图昄¡¤ºäº†ä¸€èˆ¬å•元测试的环境。驱动模å—在大多数场åˆç§°ä¸ºâ€œä¸»½E‹åºâ€ï¼Œå®ƒæŽ¥æ”¶æµ‹è¯•æ•°æ®åƈž®†è¿™äº›æ•°æ®ä¼ é€’到被测试模å—,被测试模å—被调用åŽï¼Œâ€œä¸»½E‹åºâ€æ‰“å°â€œè¿›å…?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Tahoma">-</span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">é€€å‡ºâ€æ¶ˆæ¯ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">驱动模å—å’Œæ¡©æ¨¡å—æ˜¯æµ‹è¯•ä‹É用的软äšgåQŒè€Œä¸æ˜¯èÊYä»¶äñ”å“çš„¾l„æˆéƒ¨åˆ†åQŒä½†å®ƒéœ€è¦ä¸€å®šçš„å¼€å‘è´¹ç”¨ã€‚è‹¥é©±åŠ¨å’Œæ¡©æ¨¡å—æ¯”较½Ž€å•ï¼Œå®žé™…å¼€é”€ç›¸å¯¹ä½Žäº›ã€‚é—æ†„¡š„是,仅用½Ž€å•的驱动模å—和桩模å—ä¸èƒ½å®ŒæˆæŸäº›æ¨¡å—的测试ä“Q务,˜q™äº›æ¨¡å—çš„å•元测试åªèƒ½é‡‡ç”¨ä¸‹é¢è®¨è®ºçš„¾l¼åˆ‹¹‹è¯•æ–ÒŽ³•ã€?br /><br /></span> <span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">æé«˜æ¨¡å—的内èšåº¦å¯ç®€åŒ–å•元测试,如果æ¯ä¸ªæ¨¡å—åªèƒ½å®Œæˆä¸€ä¸ªï¼Œæ‰€éœ€‹¹‹è¯•用例数目ž®†æ˜¾è‘—凞®‘,模å—中的错误也更å®ÒŽ˜“å‘现ã€?/span> <br /><img src ="http://www.aygfsteel.com/jessica/aggbug/51182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jessica/" target="_blank">æ‹æ‹å†¬å­£</a> 2006-06-07 17:31 <a href="http://www.aygfsteel.com/jessica/archive/2006/06/07/51182.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>案例设计http://www.aygfsteel.com/jessica/archive/2006/04/18/41615.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Tue, 18 Apr 2006 03:39:00 GMThttp://www.aygfsteel.com/jessica/archive/2006/04/18/41615.htmlhttp://www.aygfsteel.com/jessica/comments/41615.htmlhttp://www.aygfsteel.com/jessica/archive/2006/04/18/41615.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/41615.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/41615.html ½{‰æ•ˆæ³?/span>

明确‹¹‹è¯•的目标,一般适åˆç”¨åˆ°çš„范围是åQŒåˆ¶å®šè¢«‹¹‹è¯•的对象是在满­‘ÏxŸä¸ªæ¡ä»¶çš„区间内的所有数æ®ã€?/span>

案例设计æ–ÒŽ³•åQšä»Žå…¶ä¸­åŒºé—´æ•°æ®ŒDµä¸­é€‰æ‹©ä»ÀL„一个或者两个数æ®ï¼Œåªè¦˜q™ä¸ªæ•°æ®æ»¡èƒö了,那么其他的数æ®å°±æ˜¯æ»¡­‘³çš„ã€?/span>

范例 1 åQšåœ¨ç™»é™†æŸç³»¾lŸéœ€è¦éªŒè¯ç”¨æˆ·ååQŒè¦æ±‚是长度是最ž®æ˜¯ 6 ä½ï¼Œæœ€é•¿æ˜¯ 14 ä½ï¼Œå字中å¯ä»¥åŒ…嫿•°å­—,但是ä¸èƒ½ä»¥æ•°å­—å¼€å¤ß_¼Œå¯ä»¥åŒ…å«å„ç§½W¦å·åQŒä¸èƒ½åŒ…å«ä¸­æ–‡ã€?/span>

1 ã€éšæ„å­—æ¯ç»„åˆæˆä¸€ä¸?/span> 12 ä½çš„å§“ååQŒæµ‹è¯•是å¦å¯ä»¥é€šè¿‡éªŒè¯ã€?/span>

2 ã€éšæ„生æˆä¸€ä¸ªé•¿åº?/span> 12 ä½çš„å§“ååQŒæµ‹è¯•是å¦å¯ä»¥é€šè¿‡éªŒè¯

3 ã€æµ‹è¯•以ä»ÀL„一个数字打å¤?/span> 12 ä½çš„å§“ååQŒæµ‹è¯•是å¦å¯ä»¥é€šè¿‡éªŒè¯

4 ã€æµ‹è¯•å§“åé•¿åº¦äØ“ 12 ä½ä¸”包å«ä¸­æ–‡æƒ…况åQŒæµ‹è¯•是å¦å¯ä»¥é€šè¿‡éªŒè¯

5 ã€æµ‹è¯•é•¿åº¦ä¸æ»¡èƒöæ¡äšg情况下,是å¦é€šè¿‡éªŒè¯

6 ã€å¦‚æžœé•¿åº¦ä¸æ»¡èƒöåQŒæ˜¯ä»¥æ•°å­—开头的åQŒæ½CÞZ¿¡æ¯éªŒè¯?/span>

7 ã€å¦‚æžœé•¿åº¦ä¸æ»¡èƒöåQŒå§“å中包å«ä¸­æ–‡çš„,æç¤ºä¿¡æ¯éªŒè¯â€¦â€?/span>

注:˜q™ä¸ªå¯èƒ½æ¯”较½Ž€å•,但是说明一个问题:ä¸ÞZ»€ä¹ˆéšæ„生æˆä¸€ä¸?/span> 12 ä½å§“åçš„ , 其实你选择 8 ä½å§“å长度或è€?/span> 10 ä½å§“å长度是一æ ïLš„åQŒæ‰€ä»¥è¿™¿U情况下考虑采用½{‰æ•ˆæ–ÒŽ³•比较åˆé€‚ã€?/span>

 

范例 2 åQšè¦æ±‚选择 1~12 之间˜q›è¡Œè°ƒæ•´åQŒæ‰‹æœºçš„背光ž®×ƒ¼šéšç€æ•°å€¼çš„å˜åŒ–而å˜åŒ–。æ€ÖM½“çš„æ˜¯æ•°å€ÆD¶Šå¤§è¶Šæš—ã€?/span>

‹¹‹è¯•案例设计åQšæ¸…æ™°è®°å¿?/span> 1 的情况,然åŽéšæ„调整一个数å€û|¼Œå› äØ“è¦æ±‚是å˜åŒ–了åQŒè‡³äºŽå˜åŒ–æˆä»€ä¹ˆæ ·å­ï¼Œå˜æš—åˆîC»€ä¹ˆç¨‹åº¦æ‰æ­£ç¡®åQŒæ²¡æœ‰æ˜Ž¼‹®çš„æŒ‡æ ‡æ•°å€û|¼Œæ‰€ä»¥åªéœ€è¦è®°ä½äÍ街点 1 的情况,然åŽéšæ„调整一个数æ®ï¼Œç„¶åŽå’Œå½“å‰è°ƒæ•´åŽçš„æ•°æ®è¿›è¡Œæ¯”较ã€?/span>

æ³¨ï¼šæ²¡æœ‰æ˜Žç¡®çš„è¯´æ˜Žï¼Œåªæ˜¯å«ç³Šçš„结果,但是æ€ÖM½“的结果是在å˜åŒ–,那么˜q™ä¸ªæ—¶å€™æ¯”较适åˆä½¿ç”¨½{‰æ•ˆæ³•ã€?/span>

 

å› æžœåˆ†æžæ³?/span>

éœ€è¦æœ‰ä¸€å®šçš„½E‹åºåŸºç¡€åQŒäº†è§£ç¨‹åºçš„æž¶æž„åQŒå°±æ˜¯å½“问题å‘生以åŽåQŒèƒ½å¤Ÿæœ‰æ•ˆçš„补充相关的案例或者筛选相关的案例。因果分æžçš„æ ¸å¿ƒæ˜¯ä»Žè‡ªå·±çš„ç†è§£åŽ»åˆ†æžé—®é¢˜æ‰€åœ¨çš„真正原因ã€?/span>

范例 1 åQšåˆ é™¤ç£ç›˜ä¸ŠæŸä¸ªæ–‡äšgå¤ÞpÓ|åQŒåˆ†æžåŽŸå› ï¼šå¦‚æžœæ˜¯ç®¡ç†å‘˜æƒé™åQŒé‚£ä¹ˆå¯ä»¥éšæ„删除,无论˜q™ä¸ªæ–‡äšg的属性是åªè¯»çš„还是存档的åQŒé‚£ä¹ˆå¦‚æžœä¸èƒ½åˆ é™¤ç£ç›˜æ–‡ä»Óž¼Œé™¤éžæ˜¯åé“上的文件。分æžå®Œæˆä»¥åŽï¼Œä½¿å¾—‹¹‹è¯•案例设计有针å¯ÒŽ€§ï¼Œè€Œä¸æ˜¯ç›²ç›®çš„ž®†æ‰€æœ‰çš„æ–‡äšgæ ¼å¼éƒ½åŽ»ž®è¯•一‹Æ¡ã€?/span>

 

范例 2 åQšå‡è®¾æˆ‘们用 Excel 作一个计½Ž—,¾l“果和我们用计算器计½Ž—çš„¾l“æžœä¸åŒã€‚分æžåŽŸå› ï¼š Excel 的计½Ž—函数å•ç‹¬è¿½Ž—æ²¡æœ‰é”™è¯¯ï¼Œç„¶åŽæ’入一行,¾l“果错误了,说明æ’å…¥è¡Œæ—¶å¯ÆD‡´è®¡ç®—错误åQŒé‚£ä¹ˆæ’入一行怎么会引起函数计½Ž—错误呢åQŸåŽŸå› æ˜¯ç”׃ºŽæ’入行åŽåQŒå¯¼è‡´ä¼ ¾l™è®¡½Ž—函数的区域没有更新åQŒæ‰€ä»¥é€ æˆè®¡ç®—¾l“果错误åQŒé‚£ä¹ˆè¿™ä¸?/span> Bug ž®±å¾ˆæ˜Žç¡®äº†ã€?/span>

 

范例 3 åQšå‡è®¾æˆ‘们åã^常在åšè®²åº§çš„æ—¶å€™å‘现在æŸå°æœºå™¨ä¸Šå°±ä¼šæ­»æœºã€‚这是一¿U现象。分æžåŽŸå› ï¼šä¸ÞZ»€ä¹ˆåœ¨˜q™å°æœºå™¨ä¸Šæ­»åQŒåœ¨å…¶ä»–æœºå™¨ä¸Šä¸æ­…R€‚原因有两个åQŒç¬¬ä¸€ä¸ªå…ˆæ‰„¡³»¾lŸåŽŸå› ï¼Œæ˜¯å¦æ˜¯æˆ‘们的产å“在当å‰è¿™ä¸ªç³»¾lŸä¸‹æœ?/span> Bug, ¾lè¿‡éªŒè¯æ²¡æœ‰åQŒé‚£é—®é¢˜å‡ºåœ¨é‚£é‡ŒåQŸå…¶å®žæ¼”½CÞZñ”å“需è¦çš„æ˜¯ç¡¬ä»¶çš„æ”¯æŒåQŒé‚£ž®±æ˜¯æ˜‘Ö¡åQŒå¦‚果显å¡å†…å­˜ä¸å¤Ÿå¤§åQŒå¯èƒ½å¯¼è‡´æŸäº›æ¼”½Cºæ–‡ä»¶æ­»ã€?/span>

注:因果分æžéœ€è¦æœ‰òq¿æ³›çš„知识é¢åQŒä‹É得我们在分æžçš„æ—¶å€™èƒ½å¤Ÿæ‹“宽颿U¯ï¼Œæ¨¡ç³Šçš„定ä½é—®é¢˜ã€?/span>

 

范例 4 åQšç”¨æˆïL»™æˆ‘å‘é€ä¸€ä¸ªæ–‡ä»Óž¼Œæ‰“å°çš„æ—¶å€™å‘现是ä¹Þq ã€‚åŽæ¥é€ÆD¿«æ— å¥ˆåQŒå°±è®©ç”¨æˆ·å°†˜q™ä¸ªæ–‡äšg传真¾l™æˆ‘。这是现象。分æžåŽŸå› ï¼šä¸ÞZ»€ä¹ˆæ‰“å°å‡ºçŽîCØ•ç ï¼Ÿé—®é¢˜åŸºæœ¬å®šä½åQŒç³»¾lŸå­—库ä¸å¤Ÿï¼Œ¾pÈ»Ÿä¸‹æ‰“å°é©±åŠ¨é—®é¢˜ï¼Œæ‰“å°è™šæ‹Ÿå†…存问题åQŒæ“作系¾lŸé—®é¢˜ï¼Œè½¯äšg本èín问题åQŸæœ€åŽé—®é¢˜ç»˜q‡éªŒè¯ï¼Œæœ€¾lˆå½’¾l“äØ“åœ¨æ­¤æ“作¾pÈ»Ÿä¸‹ï¼Œæ‰“å°é©±åЍ½E‹åºæœ‰é—®é¢˜ï¼Œä½¿å¾—æ–‡äšgä¸èƒ½æ­£å¸¸æ‰“å°ã€?/span>

注:问题需è¦å…ˆæ¡†å®šèŒƒå›´åQŒä¸è¦äؕ了套路ã€?/span>

 

é€»è¾‘åˆ†æžæ³?/span>

åœ¨é€»è¾‘åˆ†æžæ–šw¢åQŒä¹Ÿéœ€è¦æœ‰ä¸€å®šçš„½E‹åºç†è§£èƒ½åŠ›ã€‚ä»Ž½E‹åºé€»è¾‘å’Œæ—¥å¸¸å¸¸è¯†åŽ»åˆ¤æ–­é—®é¢˜ã€‚é€»è¾‘åˆ†æžæ³•其实就一堆å‡è®„¡š„¾|—列åQŒæŽ¨è®ºå‡º¾pÕdˆ—¾l“果的å‡è®¾ï¼Œç„¶åŽž®†å‡è®‘ÖæŽ¨ç¿»åQŒé—®é¢˜å°±å¯ä»¥æš´éœ²å‡ºæ¥ã€‚无论é‚£¿U方法都是通过表现åŽÕdˆ†æžé—®é¢˜çš„实质的ã€?/span>

范例 1: æˆ‘ä»¬åœ¨åš MP3 播放器快˜q›å’Œå¿«é€€‹¹‹è¯•中,è¦è€ƒè™‘çš„åŒæ­¥é—®é¢˜ï¼Œž®±æ˜¯æˆ‘们液晶昄¡¤ºå±ä¸Šå‡ºçŽ°çš„æ­Œè¯è¿›åº¦ï¼Œæ—‰™—´˜q›åº¦å’Œæˆ‘们è€Ïxœµå¬åˆ°çš„进度ä¸åŒã€‚我们分æžä¸€ä¸‹ï¼Œä¸ÞZ»€ä¹ˆå‡ºçŽîC¸åŒæ­¥çŽ°è±¡åQŒäØ“ä»€ä¹ˆå…¶ä»–çš„èƒ½åŒæ­¥ï¼Œž®±æŸä¸€ä¸ªæˆ–者æŸå‡ ä¸ªä¸èƒ½åŒæ­¥ã€‚é¦–å…ˆæˆ‘ä»¬äº†è§£åŒæ­¥çš„½Ž—法åQšå¿«˜q›å’Œå¿«é€€æ˜¯æŒ‰ç…§å½“剿­Œæ›²çš„æ•°æ®‹¹æ¥è®¡ç®—åº”è¯¥åˆ°é‚£é‡Œï¼Œå®ƒæ˜¯ä»¥å½“å‰æ­Œæ›²çš„æ•°æ®‹¹äØ“¾pÀL•°åQŒç„¶åŽè¿›è¡Œçš„一些调æ•ß_¼Œé‚£ä¹ˆå‡ºçްä¸åŒæ­¥çš„原因是由于系æ•îC¸åŒé€ æˆçš„ï¼Œæ‰€ä»¥è€ƒè™‘åˆ°åŒæ­¥é—®é¢˜ï¼Œæˆ‘ä»¬éœ€è¦æ‰¾ä¸åŒæ ¼å¼ä¸åŒæ•°æ®‹¹çš„æ­Œæ›²åQŒè¿™æ ·é—®é¢˜å®¹æ˜“æš´éœÔŒ¼Œå®ÒŽ˜“清楚的定ä½é—®é¢˜çš„真正原因

 

è¾¹ç•Œæ•°å€¼åˆ†æžæ³•

       在测试案例执行的˜q‡ç¨‹ä¸­ï¼Œæ‰€æœ‰è°ƒèŠ‚çš„æ•°æ®éƒ½éœ€è¦è€ƒè™‘到边界数值的‹¹‹è¯•æ–ÒŽ³•åQŒä½†æ˜¯éœ€è¦æ³¨æ„,边界数值的‹¹‹è¯•䏿˜¯æžšä‹DåQŒåªæ˜¯æŠ½æ ïLš„æ–ÒŽ³•ã€?/span>

]]>
软äšg‹¹‹è¯•工具比较http://www.aygfsteel.com/jessica/archive/2006/04/14/41109.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Fri, 14 Apr 2006 07:26:00 GMThttp://www.aygfsteel.com/jessica/archive/2006/04/14/41109.htmlhttp://www.aygfsteel.com/jessica/comments/41109.htmlhttp://www.aygfsteel.com/jessica/archive/2006/04/14/41109.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/41109.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/41109.htmléšç€è½¯äšg‹¹‹è¯•的地ä½é€æ­¥æé«˜åQŒæµ‹è¯•çš„é‡è¦æ€§é€æ­¥æ˜„¡Ž°åQŒæµ‹è¯•å·¥å…ïLš„åº”ç”¨å·²ç»æˆäؓ了普éçš„­‘‹åŠ¿ã€‚ç›®å‰ç”¨äºŽæµ‹è¯•çš„å·¥å…·å·²ç»æ¯”较多了åQŒè¿™äº›æµ‹è¯•工具一般å¯åˆ†äؓ白盒‹¹‹è¯•工具ã€é»‘盒测试工兗÷€æ€§èƒ½‹¹‹è¯•工具åQŒå¦å¤–还有用于测试管ç†ï¼ˆ‹¹‹è¯•‹¹ç¨‹½Ž¡ç†ã€ç¼ºé™¯‚·Ÿítªç®¡ç†ã€æµ‹è¯•用例管ç†ï¼‰çš„工兗÷€?br />æ€Èš„æ¥è¯´åQŒæµ‹è¯•å·¥å…ïLš„应用å¯ä»¥æé«˜‹¹‹è¯•的质é‡ã€æµ‹è¯•的效率。但是在选择和ä‹É用测试工å…ïLš„æ—¶å€™ï¼Œæˆ‘们也应该看刎ͼŒåœ¨æµ‹è¯•过½E‹ä¸­åQŒåÆˆä¸æ˜¯æ‰€æœ‰çš„‹¹‹è¯•å·¥å…·éƒ½é€‚åˆæˆ‘们使用åQŒåŒæ—Óž¼Œæœ‰äº†‹¹‹è¯•工具ã€ä¼šä½¿ç”¨‹¹‹è¯•工具òq¶ä¸½{‰äºŽ‹¹‹è¯•工具真正能在‹¹‹è¯•䏭呿Œ¥ä½œç”¨ã€?/p>

一ã€JTEST

1ã€ç®€ä»‹ï¼š

jtest是parasoftå…¬å¸æŽ¨å‡ºçš„ä¸€‹ÆùN’ˆå¯¹java语言的自动化白盒‹¹‹è¯•工具,它通过自动实现javaçš„å•å…ƒæµ‹è¯•å’Œä»£ç æ ‡å‡†æ ¡éªŒ,æ¥æé«˜ä»£ç çš„å¯é æ€§ã€‚Jtestå…ˆåˆ†æžæ¯ä¸ªjava¾c»ï¼Œç„¶åŽè‡ªåŠ¨ç”Ÿæˆjunit‹¹‹è¯•用例òq¶æ‰§è¡Œç”¨ä¾‹ï¼Œä»Žè€Œå®žçŽîC»£ç çš„æœ€å¤§è¦†ç›–,òq¶å°†ä»£ç ˜q行时未处ç†çš„异常暴露出æ¥ï¼›å¦å¤–åQŒå®ƒ˜q˜å¯ä»¥æ£€æŸ¥ä»¥DbCåQˆDesign by ContractåQ‰è§„范开å‘的代ç çš„æ­£¼‹®æ€§ã€‚用戯‚¿˜å¯ä»¥é€šè¿‡æ‰©å±•‹¹‹è¯•用例的自动生æˆå™¨æ¥æ·»åŠ æ›´å¤šçš„junit用例。Jtest˜q˜èƒ½æŒ‰ç…§çŽ°æœ‰çš„è¶…˜q?50ä¸ªç¼–ç æ ‡å‡†æ¥‹‚€æŸ¥åƈ自动¾U æ­£å¤§å¤šæ•°å¸¸è§çš„¾~–ç è§„则上的åå·®åQŒç”¨æˆ·å¯è‡ªå®šä¹‰è¿™äº›æ ‡å‡†ï¼Œé€šè¿‡½Ž€å•的几个点击åQŒå°±èƒ½é¢„防类ä¼égºŽæœªå¤„ç†å¼‚常ã€å‡½æ•°é”™è¯¯ã€å†…存泄æ¼ã€æ€§èƒ½é—®é¢˜ã€å®‰å…¨éšæ‚£è¿™æ ïLš„代ç é—®é¢˜ã€?/p>

2ã€ä¼˜åŠ¿ï¼š

1åQ‰ä‹É预防代ç é”™è¯¯æˆäØ“å¯èƒ½åQŒä»Žè€Œå¤§å¤§èŠ‚¾U¦æˆæœ¬ï¼Œæé«˜è½¯äšgè´¨é‡å’Œå¼€å‘效çŽ?/p>

2åQ‰ä‹Éå•å…ƒ‹¹‹è¯•——包括白盒ã€é»‘盒以åŠå›žå½’测试æˆä¸ºå¯èƒ?/p>

3åQ‰ä‹É代ç è§„范‹‚€æŸ¥å’Œè‡ªåЍ¾U æ­£æˆäØ“å¯èƒ½

4åQ‰é¼“励开å‘团队横å‘å作æ¥é¢„防代ç é”™è¯¯

3ã€ç‰¹å¾ï¼š

1åQ‰é€šè¿‡½Ž€å•的点击åQŒè‡ªåŠ¨å®žçŽîC»£ç åŸºæœ¬é”™è¯¯çš„预防åQŒè¿™åŒ…括å•å…ƒ‹¹‹è¯•和代ç è§„范的‹‚€æŸ?/p>

2åQ‰ç”Ÿæˆåƈ执行junitå•å…ƒ‹¹‹è¯•用例åQŒå¯¹ä»£ç ˜q›è¡ŒåÏx—¶‹‚€æŸ?/p>

3åQ‰æä¾›äº†˜q›è¡Œé»‘ç›’‹¹‹è¯•ã€æ¨¡åž‹æµ‹è¯•å’Œ¾pÈ»Ÿ‹¹‹è¯•的快速途径

4åQ‰ç¡®è®¤åƈé˜ÀL­¢ä»£ç ä¸­ä¸å¯æ•èŽïLš„异常ã€å‡½æ•°é”™è¯¯ã€å†…存泄æ¼ã€æ€§èƒ½é—®é¢˜ã€å®‰å…¨å¼±ç‚¹çš„问题

5åQ‰ç›‘视测试的覆盖范围

6åQ‰è‡ªåŠ¨æ‰§è¡Œå›žå½’æµ‹è¯?/p>

7åQ‰æ”¯æŒDbC¾~–ç è§„范

8åQ‰æ£€éªŒè¶…˜q?50个æ¥è‡ªjava专家的开å‘è§„èŒ?/p>

9åQ‰è‡ªåŠ¨çº æ­£è¿åè¶…˜q?60个编ç è§„范的错误

10åQ‰å…许用户通过囑ÖÅžæ–¹å¼æˆ–è‡ªåŠ¨åˆ›å»ºæ–¹å¼æ¥è‡ªå®šä¹‰ç¼–ç è§„èŒ?/p>

11åQ‰æ”¯æŒå¤§åž‹å›¢é˜Ÿå¼€å‘中‹¹‹è¯•讄¡½®å’Œæµ‹è¯•文件的å…׃ín

12åQ‰å®žçŽ°å’ŒIBM Websphere Studio /Eclipse IDE 的安全集æˆ?/p>

4ã€ä­hæ û|¼šæ˜‚è´µ

二ã€JMETER

1ã€ç®€ä»‹ï¼š

JMeter是Apache¾l„织的开放æºä»£ç ™å¹ç›®åQŒå®ƒæ˜¯åŠŸèƒ½å’Œæ€§èƒ½‹¹‹è¯•çš„å·¥å…øP¼Œ100%的用java实现。ä‹É用JMeter˜q›è¡Œæ€§èƒ½‹¹‹è¯•

2ã€ç‰¹å¾ï¼š

JMeterå¯ä»¥ç”¨äºŽ‹¹‹è¯•陿€æˆ–者动æ€èµ„æºçš„æ€§èƒ½åQˆæ–‡ä»¶ã€Servletsã€Perl脚本ã€javaå¯¹è±¡ã€æ•°æ®åº“和查询ã€ftpæœåŠ¡å™¨æˆ–è€…å…¶ä»–çš„èµ„æºåQ‰ã€‚JMeter用于模拟在æœåС噍ã€ç½‘¾lœæˆ–者其他对象上附加高负载以‹¹‹è¯•他们æä¾›æœåŠ¡çš„å—压能力,或者分æžä»–们æä¾›çš„æœåŠ¡åœ¨ä¸åŒè´Ÿè½½æ¡ä»¶ä¸‹çš„æ€ÀL€§èƒ½æƒ…况。你å¯ä»¥ç”¨JMeteræä¾›çš„图形化界é¢åˆ†æžæ€§èƒ½æŒ‡æ ‡æˆ–者在高负载情况下‹¹‹è¯•æœåŠ¡å™?脚本/对象的行为ã€?/p>

3ã€ä­hæ û|¼šæœªçŸ¥

三ã€JUNIT

1ã€ç®€ä»‹ï¼š

JUnit是一个开æºçš„java‹¹‹è¯•框架åQŒå®ƒæ˜¯Xuint‹¹‹è¯•体系架构的一¿U实现。在JUnitå•å…ƒ‹¹‹è¯•框架的设计时åQŒè®¾å®šäº†ä¸‰ä¸ªæ€ÖM½“目标åQŒç¬¬ä¸€ä¸ªæ˜¯½Ž€åŒ–测试的¾~–写åQŒè¿™¿U简化包括测试框架的学习和实际测试å•元的¾~–写åQ›ç¬¬äºŒä¸ªæ˜¯ä‹É‹¹‹è¯•å•å…ƒä¿æŒæŒä¹…性;½W¬ä¸‰ä¸ªåˆ™æ˜¯å¯ä»¥åˆ©ç”¨æ—¢æœ‰çš„‹¹‹è¯•æ¥ç¼–写相关的‹¹‹è¯•ã€?/p>

2ã€ä¼˜åŠ¿ï¼š

2.1)junit是完全Free的�/p>

2.2)使用方便。在你æå‡ç¨‹åºä»£ç çš„å“质时JUnit‹¹‹è¯•ä»å…è®æ€½ æ›´å¿«é€Ÿçš„æ’°å†™½E‹åº é‚£å¬èµäh¥ä¼ég¹Žä¸æ˜¯å¾ˆç›´è§‰ï¼Œä½†é‚£æ˜¯äº‹å®žã€‚当你ä‹É用JUnit撰写‹¹‹è¯•åQŒä½ ž®†èŠ±æ›´å°‘çš„æ—¶é—´é™¤è™«ï¼ŒåŒæ—¶å¯¹ä½ ½E‹åºä»£ç çš„æ”¹å˜æ›´ 俱有信心。这个信心让你更¿U¯æžé‡æ•´½E‹åºä»£ç òq¶å¢žåŠ æ–°çš„åŠŸèƒ½ã€‚æ²¡æœ‰æµ‹è¯•ï¼Œå¯¹äºŽé‡æ•´åŠå¢žåŠ æ–°åŠŸèƒ½ä½ ä¼šå˜å¾—没有信心åQ›å› ä¸ÞZ½ ä¸çŸ¥é“有甚么东西会破åäñ”出的¾l“果。采用一个综åˆçš„‹¹‹è¯•¾pÕdˆ—åQŒä½ å¯ä»¥åœ¨æ”¹å˜ç¨‹åºä»£ç ä¹‹åŽå¿«é€Ÿçš„æ‰§è¡Œå¤šä¸ª‹¹‹è¯•òq¶å¯¹äºŽä½ çš„å˜åŠ¨åÆˆæœªç ´åä“Q何东西感到有信心。在执行‹¹‹è¯•时如果å‘现臭虫,原始ç ä»ç„¶æ¸…楚的在你脑中åQŒå› æ­¤å¾ˆå®ÒŽ˜“扑ֈ°è‡­è™«ã€‚在JUnit中撰写的‹¹‹è¯•帮助你以一¿Uæž å¤?extreme)çš„æ­¥ä¼æ’°å†™ç¨‹åºåŠå¿«é€Ÿçš„æ‰‘Ö‡º¾~ºç‚¹ã€?/p>

2.3)JUnitéžå¸¸½Ž€å•撰写测试应该很½Ž€å?-˜q™æ˜¯é‡ç‚¹åQå¦‚æžœæ’°å†™æµ‹è¯•å¤ªå¤æ‚或太耗时é—ß_¼Œä¾¿æ— æ³•è¦æ±‚程åºè®¾è®¡å¸ˆæ’°å†™‹¹‹è¯•。ä‹É用JUnitä½ å¯ä»¥å¿«é€Ÿçš„æ’°å†™‹¹‹è¯•òq¶æ£€‹¹‹ä½ çš„程åºä»£ç åƈé€?æ­¥éšç€½E‹åºä»£ç çš„æˆé•¿å¢žåŠ æµ‹è¯•ã€‚åªè¦ä½ å†™äº†ä¸€äº›æµ‹è¯•,你想è¦å¿«é€Ÿåƈ频ç¹çš„æ‰§è¡Œæµ‹è¯•而ä¸è‡³äºŽä¸­æ–­å»ºç«‹è®¾è®¡åŠå¼€å‘程åºã€‚ä‹É用JUnit执行‹¹‹è¯•ž®±åƒ¾~–译你的½E‹åºä»£ç é‚£ä¹ˆå®ÒŽ˜“。事实上åQŒä½ åº”该执行¾~–译时也执行‹¹‹è¯•。编译是‹‚€‹¹‹ç¨‹åºä»£ç çš„语法而测试是‹‚€æŸ¥ç¨‹åºä»£ç çš„完整æ€?integrity)ã€?/p>

2.4)JUnit‹¹‹è¯•‹‚€éªŒå…¶¾l“æžœòq¶æä¾›ç«‹å³çš„回馈ã€?如果你是以äh工比å¯Ò޵‹è¯•的期望与实际结果那么测试是很ä¸å¥½çŽ©çš„ï¼Œè€Œä¸”è®©ä½ çš„é€Ÿåº¦æ…¢ä¸‹æ¥ã€‚JUnit‹¹‹è¯•å¯ä»¥è‡ªåŠ¨æ‰§è¡Œòq¶ä¸”‹‚€æŸ¥ä»–们自å·Þqš„¾l“果。当你执行测试,你获得简å•且立å³çš„回馈; 比如‹¹‹è¯•是通过或失败。而ä¸å†éœ€è¦äh工检查测试结果的报告ã€?/p>

2.5)JUnit‹¹‹è¯•å¯ä»¥åˆæˆä¸€ä¸ªæµ‹è¯•系列的层çñ”æž¶æž„ã€?JUnitå¯ä»¥æŠŠæµ‹è¯•组¾l‡æˆ‹¹‹è¯•¾pÕdˆ—åQ›è¿™ä¸ªæµ‹è¯•系列å¯ä»¥åŒ…å«å…¶å®ƒçš„‹¹‹è¯•或测试系列。JUnit‹¹‹è¯•çš„åˆæˆè¡Œä¸ºå…è®æ€½ ¾l„åˆå¤šä¸ª‹¹‹è¯•òq¶è‡ªåŠ¨çš„å›žå½’(regression)从头到尾‹¹‹è¯•整个‹¹‹è¯•¾pÕdˆ—。你也å¯ä»¥æ‰§è¡Œæµ‹è¯•系列层¾U§æž¶æž„中ä»ÖM½•一层的‹¹‹è¯•ã€?/p>

2.6)撰写JUnit‹¹‹è¯•所费ä¸å¤šã€?使用Junit‹¹‹è¯•框架åQŒä½ å¯ä»¥å¾ˆä¾¿å®œçš„æ’°å†™‹¹‹è¯•òq¶äínå—ç”±‹¹‹è¯•框架所æä¾›çš„信心。撰写一个测试就åƒå†™ä¸€ä¸ªæ–¹æ³•一æ ïL®€å•ï¼›‹¹‹è¯•是检验見¹‹è¯•的程åºä»£ç åƈ定义期望的结果。这个测试框架æä¾›è‡ªåŠ¨æ‰§è¡Œæµ‹è¯•çš„èƒŒæ™¯åQ›è¿™ä¸ªèƒŒæ™¯åƈæˆäؓ其它‹¹‹è¯•集åˆçš„一部䆾。在‹¹‹è¯•ž®‘é‡çš„æŠ•资将æŒç®‹è®©ä½ ä»Žæ—¶é—´åŠå“质中获得回收ã€?/p>

2.7)JUnit‹¹‹è¯•æå‡è½¯äšg的稳定性ã€?你写的测试愈ž®‘;你的½E‹åºä»£ç å˜çš„æ„ˆä¸½E›_®šã€‚测试ä‹Éå¾—èÊYä»¶ç¨³å®šåÆˆé€æ­¥ç´¯ç§¯ä¿¡å¿ƒåQ›å› ä¸ÞZ“Q何å˜åЍä¸ä¼šé€ æˆæ¶Ÿæ¼ªæ•ˆåº”而æ˜OåŠæ•´ä¸ªèÊY件。测试å¯ä»¥åÅžæˆèÊY件的完整¾l“构的胶¾l“ã€?/p>

2.8)JUnit‹¹‹è¯•是开å‘者测试ã€?JUnit‹¹‹è¯•是高度区域æ€?localized)‹¹‹è¯•åQ›ç”¨ä»¥æ”¹å–„å¼€å‘者的生äñ”力劽E‹åºä»£ç å“质。ä¸åƒåŠŸèƒ½æµ‹è¯?function test)视系¾lŸäؓ一个黑½Ž×ƒ»¥¼‹®è®¤è½¯äšgæ•´ä½“çš„å·¥ä½œæ€§äØ“ä¸»ï¼Œå•å…ƒ‹¹‹è¯•是由内而外‹¹‹è¯•¾pÈ»ŸåŸºç¡€çš„徿ž„区å—。开å‘è€…æ’°å†™åÆˆæ‹¥æœ‰JUnit‹¹‹è¯•。æ¯å½“一个开å‘åå¤?iteration)完æˆåQŒè¿™ä¸ªæµ‹è¯•便包裹æˆäؓ交付软äšg的一部䆾æä¾›ä¸€¿U沟通的方å¼åQŒã€Œè¿™æ˜¯æˆ‘交付的èÊYä»¶åÆˆä¸”æ˜¯é€šè¿‡‹¹‹è¯•

2.9)JUnit‹¹‹è¯•是以Java写æˆçš„ã€?使用Java‹¹‹è¯•Java软äšgå½¢æˆä¸€ä¸ªä»‹äºŽæµ‹è¯•劽E‹åºä»£ç é—´çš„æ— ç¼(seamless)边界。在‹¹‹è¯•的控制下‹¹‹è¯•å˜æˆæ•´ä¸ªè½¯äšgçš„æ‰©å……åŒæ—¶ç¨‹åºä»£ç å¯ä»¥è¢«é‡æ•´ã€‚Java¾~–译器的å•å…ƒ‹¹‹è¯•陿€è¯­æ³•检查å¯å·²å¸®åŠ©æµ‹è¯•ç¨‹åºåƈ且确认éµå®ˆèÊY件接å£çš„¾U¦å®šã€?/p>

一ŒD‰|µ‹è¯•çš„½E‹åºä»£ç æ— æ³•å•ç‹¬çš„æ‰§è¡Œï¼Œå®ƒéœ€è¦æ˜¯æ‰§è¡ŒçŽ¯å¢ƒçš„ä¸€éƒ¨ä†¾ã€‚åŒæ—Óž¼Œå®ƒéœ€è¦è‡ªåŠ¨æ‰§è¡Œçš„å•å…ƒ‹¹‹è¯•--譬如在系¾lŸä¸­å‘¨æœŸæ€§çš„æ‰§è¡Œæ‰€æœ‰çš„‹¹‹è¯•ä»¥è¯æ˜Žæ²¡æœ‰ä“Q何东西被破å。由于å•元测试需è¦ç¬¦åˆç‰¹å®šçš„准则åQšä¸€ä¸ªæˆåŠŸçš„‹¹‹è¯•ä¸åº”该是人工‹‚€æŸ¥çš„åQˆé‚£å¯è¦åˆ°å¤©è’地è€äº†å•Šï¼‰åQŒä¸€ä¸ªæœªé€šè¿‡‹¹‹è¯•的失败应å¯ä»¥äº§å‡ºæ–‡äšg以供诊断修改。而Junitå¯ä»¥æä¾›¾l™æˆ‘们这些便åˆ?。这æ äh‰€æœ‰æµ‹è¯•å¼€å‘è€…æ‰€éœ€æ’°å†™çš„åªæ˜¯æµ‹è¯•ç æœ¬èín了。跟optimizeitã€Jtest那些昂贵而刭‘…çñ”éºÈƒ¦çš„tool比较èµäh¥åQŒå…¶åˆ©æ˜­ç„¶å¯è§ï¼

3ã€ä­hæ û|¼šå…è´¹

å››ã€WEBLODE

1ã€ç®€ä»‹ï¼š

webload是RadViewå…¬å¸æŽ¨å‡ºçš„ä¸€ä¸ªæ€§èƒ½‹¹‹è¯•和分æžå·¥å…?它让web应用½E‹åºå¼€å‘者自动执行压力测è¯?webload通过模拟真实用户的æ“ä½?生æˆåŽ‹åŠ›è´Ÿè²æ¥æµ‹è¯•web的性能ã€?/p>

2ã€ç‰¹å¾ï¼š

1)用户创å¾çš„æ˜¯åŸÞZºŽjavascript的测试脚æœ?¿UîCؓ议程agenda,ç”¨å®ƒæ¥æ¨¡æ‹Ÿå®¢æˆïLš„è¡ŒäØ“,通过执行该脚本æ¥è¡¡é‡web应用½E‹åºåœ¨çœŸå®žçŽ¯å¢ƒä¸‹çš„æ€§èƒ½

2)如有需è¦å¯ä»¥åœ¨åšè´Ÿè½½æµ‹è¯•çš„åŒæ—¶åQŒä‹É用æœåŠ¡å™¨ç›‘æŽ§å·¥å…·å¯ÒŽœåŠ¡å™¨ç«¯çš„å†…å®¹˜q›è¡Œè®°å½•那样使负载测试更加全é¢ã€?/p>

3ã€ä­hæ û|¼š

五ã€WINRUNNER

1ã€ç®€ä»?/p>

WinRunner:强大的ä¼ä¸šçñ”自动化测试工å…?

Mercury Interactiveå…¬å¸çš„WinRunner是一¿Uä¼ä¸šçñ”çš„åŠŸèƒ½æµ‹è¯•å·¥å…øP¼Œç”¨äºŽ‹‚€‹¹‹åº”ç”¨ç¨‹åºæ˜¯å¦èƒ½å¤Ÿè¾¾åˆ°é¢„æœŸçš„åŠŸèƒ½åŠæ­£å¸¸è¿è¡Œã€‚é€šè¿‡è‡ªåŠ¨å½•åˆ¶ã€æ£€‹¹‹å’Œå›žæ”¾ç”¨æˆ·çš„应用æ“作,WinRunner能够有效地帮助测试ähå‘˜å¯¹å¤æ‚çš„ä¼ä¸šçñ”应用的ä¸åŒå‘布版˜q›è¡Œ‹¹‹è¯•åQŒæé«˜æµ‹è¯•äh员的工作效率和质é‡ï¼Œ¼‹®ä¿è·¨åã^å°çš„ã€å¤æ‚çš„ä¼ä¸š¾U§åº”用无故障å‘布åŠé•¿æœŸç¨³å®šè¿è¡Œã€?

ä¼ä¸š¾U§åº”用å¯èƒ½åŒ…括Web应用¾pÈ»ŸåQŒERP¾pÈ»ŸåQŒCRM¾pÈ»Ÿ½{‰ç­‰ã€‚这些系¾lŸåœ¨å‘布之å‰åQŒå‡¾U§ä¹‹åŽéƒ½è¦ç»˜q‡æµ‹è¯•,¼‹®ä¿æ‰€æœ‰åŠŸèƒ½éƒ½èƒ½æ­£å¸¸è¿è¡Œï¼Œæ²¡æœ‰ä»ÖM½•错误。如何有效地‹¹‹è¯•䏿–­å‡çñ”更新且ä¸åŒçŽ¯å¢ƒçš„åº”ç”¨¾pÈ»ŸåQŒæ˜¯æ¯ä¸ªå…¬å¸éƒ½ä¼šé¢äÍ的问题ã€?

如果旉™—´æˆ–èµ„æºæœ‰é™ï¼Œ˜q™ä¸ªé—®é¢˜ä¼šæ›´åŠ æ£˜æ‰‹ã€‚äh工测试的工作é‡å¤ªå¤§ï¼Œ˜q˜è¦é¢å¤–的时间æ¥åŸ¹è®­æ–°çš„‹¹‹è¯•人员½{‰ç­‰ã€‚äØ“äº†ç¡®ä¿é‚£äº›å¤æ‚çš„ä¼ä¸š¾U§åº”用在ä¸åŒçŽ¯å¢ƒä¸‹éƒ½èƒ½æ­£å¸¸å¯é åœ°˜q行åQŒä½ éœ€è¦ä¸€ä¸ªèƒ½½Ž€å•æ“作的‹¹‹è¯•工具æ¥è‡ªåŠ¨å®Œæˆåº”用程åºçš„功能性测试ã€?/p>

2ã€ç‰¹å¾ï¼š

1)è½ÀL¾åˆ›å¾‹¹‹è¯•

用WinRuuner创å¾ä¸€ä¸ªæµ‹è¯•,åªéœ€ç‚¹å‡»é¼ æ ‡å’Œé”®ç›˜ï¼Œå®Œæˆä¸€ä¸ªæ ‡å‡†çš„业务æ“作‹¹ç¨‹åQŒWinRunner自动记录你的æ“作òq¶ç”Ÿæˆæ‰€éœ€çš„脚本代ç ã€‚è¿™æ øP¼Œå³ä‹É计算机技术知识有é™çš„业务用户è½ÀL¾åˆ›å¾å®Œæ•´çš„æµ‹è¯•。你˜q˜å¯ä»¥ç›´æŽ¥ä¿®æ”ÒŽµ‹è¯•脚本以满èƒöå„ç§å¤æ‚‹¹‹è¯•的需求。WinRunneræä¾›˜q™ä¸¤¿U测试创建方å¼ï¼Œæ»¡èƒö‹¹‹è¯•团队中业务用户和专业技术äh员的ä¸åŒéœ€æ±‚ã€?

2)æ’å…¥‹‚€æŸ¥ç‚¹

在记录一个测试的˜q‡ç¨‹ä¸­ï¼Œå¯ä»¥æ’å…¥‹‚€æŸ¥ç‚¹åQŒæ£€æŸ¥åœ¨æŸä¸ªæ—¶åˆ»/状æ€ä¸‹åQŒåº”ç”¨ç¨‹åºæ˜¯å¦è¿è¡Œæ­£å¸¸ã€‚在æ’å…¥‹‚€æŸ¥ç‚¹åŽï¼ŒWinRunnerä¼šæ”¶é›†ä¸€å¥—æ•°æ®æŒ‡æ ‡ï¼Œåœ¨æµ‹è¯•è¿è¡Œæ—¶å¯¹å…¶ä¸€ä¸€éªŒè¯ã€‚WinRunneræä¾›å‡ ç§ä¸åŒ¾cÕdž‹çš„æ£€æŸ¥ç‚¹åQŒåŒ…括文本的ã€GUIã€ä½å›‘Ö’Œæ•°æ®åº“。例如,用一个ä½å›¾æ£€æŸ¥ç‚¹åQŒä½ å¯ä»¥‹‚€æŸ¥å…¬å¸çš„图标是å¦å‡ºçŽ°äºŽæŒ‡å®šä½¾|®ã€?

3)‹‚€éªŒæ•°æ?/p>

除了创å¾òq¶è¿è¡Œæµ‹è¯•,WinRunner˜q˜èƒ½éªŒè¯æ•°æ®åº“的数å€û|¼Œä»Žè€Œç¡®ä¿ä¸šåŠ¡äº¤æ˜“çš„å‡†ç¡®æ€§ã€‚ä¾‹å¦‚ï¼Œåœ¨åˆ›å»ºæµ‹è¯•æ—¶åQŒå¯ä»¥è®¾å®šå“ªäº›æ•°æ®åº“è¡¨å’Œè®°å½•éœ€è¦æ£€‹¹‹ï¼›åœ¨æµ‹è¯•è¿è¡Œæ—¶åQŒæµ‹è¯•程åºå°±ä¼šè‡ªåŠ¨æ ¸å¯ÒŽ•°æ®åº“内的实际数值和预期的数倹{€‚WinRunner自动昄¡¤º‹‚€‹¹‹ç»“果,在有更新/删除/æ’入的记录上½H出昄¡¤ºä»¥å¼•èµäh³¨æ„ã€?

4)增强‹¹‹è¯•

ä¸ÞZº†å½Õdº•å…¨é¢åœ°æµ‹è¯•一个应用程åºï¼Œéœ€è¦ä‹É用ä¸åŒç±»åž‹çš„æ•°æ®æ¥æµ‹è¯•。WinRunner的数æ®é©±åЍå‘å¯? Data Driver Wizard)å¯ä»¥è®©ä½ ½Ž€å•地点击几下鼠标åQŒå°±å¯ä»¥æŠŠä¸€ä¸ªä¸šåŠ¡æµ½E‹æµ‹è¯•è{åŒ–äØ“æ•°æ®é©±åЍ‹¹‹è¯•åQŒä»Žè€Œå映多个用户å„自独特且真实的行为ã€?/p>

以一个订å•输入的‹¹ç¨‹ä¸ÞZ¾‹åQŒä½ å¯èƒ½å¸Œæœ›æŠŠè®¢å•å·æˆ–客户å¿UîC½œä¸ºå¯å˜æ åQŒç”¨å¤šå¥—数殘q›è¡Œ‹¹‹è¯•。ä‹É用Data Driver WizardåQŒä½ å¯ä»¥é€‰æ‹©è®¢å•åähˆ–客户å称用数æ®è¡¨æ ¼æ–‡ä»¶ä¸­çš„哪个æ ç›®çš„æ•°æ®æ›¿æ¢ã€‚ä½ å¯ä»¥æŠŠè®¢å•å·æˆ–客户å¿U°è¾“入数æ®è¡¨æ ¼æ–‡ä»Óž¼Œæˆ–从其它表格和数æ®åº“中导入。数æ®é©±åŠ¨æµ‹è¯•ä¸ä»…节çœäº†æ—‰™—´å’Œèµ„æºï¼Œåˆæé«˜äº†åº”用的测试覆盖率ã€?

WinRunner˜q˜å¯ä»¥é€šè¿‡Function Generator增加‹¹‹è¯•的功能。ä‹É用Function Generatorå¯ä»¥ä»Žç›®å½•列表中选择一个功能增加到你的‹¹‹è¯•中以æé«˜‹¹‹è¯•能力。例如,你å¯ä»¥é€‰æ‹©â€calendarâ€ï¼Œç„¶åŽä»Žæ—¥åŽ†åŠŸèƒ½çš„ä¸‹å±žç›®å½•ä¸­é€‰æ‹©åQŒå¦‚Calendar_select_date(),ç„¶åŽä½ å¯ä»¥ç›´è§‚åœ°è¾“å…¥å‚æ•°åQŒæŠŠ˜q™ä¸ªåŠŸèƒ½æ’å…¥åˆîC½ çš„æµ‹è¯•中ã€?/p>

针对相当数é‡çš„ä¼ä¸šåº”ç”¨é‡Œéžæ ‡å‡†å¯¹è±¡ï¼ŒWinRunneræä¾›äº†Virtual Object Wizardæ¥è¯†åˆ«ä»¥å‰æœªçŸ¥çš„对象。ä‹É用Virtual Object WizardåQŒä½ å¯ä»¥é€‰æ‹©æœªçŸ¥å¯¹è±¡çš„ç±»åž‹ï¼Œè®‘Ö®šæ ‡è¯†å’Œå‘½å。在录制使用该对象的‹¹‹è¯•æ—Óž¼ŒWinRunner会自动对应它的å字,从而æé«˜æµ‹è¯•脚本的å¯è¯»æ€§å’Œ‹¹‹è¯•è´¨é‡ã€?

5)˜q行‹¹‹è¯•

创å¾å¥½æµ‹è¯•脚本,òq¶æ’入检查点和必è¦çš„æ·ÕdŠ åŠŸèƒ½åŽï¼Œä½ å°±å¯ä»¥å¼€å§‹è¿è¡Œæµ‹è¯•。è¿è¡Œæµ‹è¯•æ—¶åQŒWinRunner会自动æ“作应用程åºï¼Œž®Þp±¡ä¸€ä¸ªçœŸå®žçš„用户æ ÒŽ®ä¸šåŠ¡‹¹ç¨‹æ‰§è¡Œç€æ¯ä¸€æ­¥çš„æ“ä½œã€‚æµ‹è¯•è¿è¡Œè¿‡½E‹ä¸­åQŒå¦‚有网¾lœæ¶ˆæ¯çª—å£å‡ºçŽ°æˆ–å…¶å®ƒæ„外事äšg出现åQŒWinRunner也会æ ÒŽ®é¢„å…ˆçš„è®¾å®šæŽ’é™¤è¿™äº›å¹²æ‰°ã€?/p>

6)分枾l“æžœ

‹¹‹è¯•˜q行¾l“æŸåŽï¼Œä½ éœ€è¦åˆ†æžæµ‹è¯•结果。WinRunner通过交互å¼çš„æŠ¥å‘Šå·¥å…·æ¥æä¾›è¯¦ž®½çš„ã€æ˜“è¯Èš„æŠ¥å‘Šã€‚报告中会列出测试中å‘现的错误内å®V€ä½¾|®ã€æ£€æŸ¥ç‚¹å’Œå…¶å®ƒé‡è¦äº‹ä»Óž¼Œå¸®åЩ你坹‹¹‹è¯•¾l“æžœ˜q›è¡Œåˆ†æžã€‚这些测试结果还å¯ä»¥é€šè¿‡Mercury Interactive的测试管ç†å·¥å…·TestDirectoræ¥æŸ¥é˜…ã€?/p>

7)¾l´æŠ¤‹¹‹è¯•

éšç€æ—‰™—´çš„æŽ¨¿U»ï¼Œå¼€å‘äh员会对应用程åºåš˜q›ä¸€æ­¥çš„修改åQŒåƈ需è¦å¢žåŠ å¦å¤–çš„‹¹‹è¯•。ä‹É用WinRunneråQŒä½ ä¸å¿…对程åºçš„æ¯ä¸€‹Æ¡æ”¹åŠ¨éƒ½é‡æ–°åˆ›å¾ä½ çš„‹¹‹è¯•。WinRunnerå¯ä»¥åˆ›å¾åœ¨æ•´ä¸ªåº”用程åºç”Ÿå‘½å‘¨æœŸå†…都å¯ä»¥é‡å¤ä‹É用的‹¹‹è¯•åQŒä»Žè€Œå¤§å¤§åœ°èŠ‚çœæ—‰™—´å’Œèµ„æºï¼Œå……分利用你的‹¹‹è¯•投资ã€?/p>

æ¯æ¬¡è®°å½•‹¹‹è¯•æ—Óž¼ŒWinRunner会自动创å»ÞZ¸€ä¸ªGUI Mapæ–‡äšg以ä¿å­˜åº”用对象。这些对象分层次¾l„织åQŒæ—¢å¯ä»¥æ€»è§ˆæ‰€æœ‰çš„对象åQŒä¹Ÿå¯ä»¥æŸ¥è¯¢æŸä¸ªå¯¹è±¡çš„详¾l†ä¿¡æ¯ã€‚一般而言åQŒå¯¹åº”用½E‹åºçš„ä“Q何改动都会媄å“到æˆç™¾ä¸Šåƒä¸ªæµ‹è¯•。通过修改一个GUI Mapæ–‡äšgè€Œéžæ— æ•°ä¸ªæµ‹è¯•,WinRunnerå¯ä»¥æ–¹ä¾¿åœ°å®žçŽ°æµ‹è¯•é‡ç”¨ã€?/p>

8)帮助你的应用½E‹åºä¸ºæ— ¾U¿åº”用作准备

éšç€æ— çº¿è®‘Ö¤‡¿U类和数é‡çš„增加åQŒä½ çš„åº”ç”¨ç¨‹åºæµ‹è¯•计划需è¦åŒæ—¶æ»¡­‘³ä¼ ¾lŸçš„åŸÞZºŽ‹¹è§ˆå™¨çš„用户和无¾U¿æµè§ˆè®¾å¤‡ï¼Œå¦‚移动电è¯ã€ä¼ å‘¼æœºå’Œä¸ªäººæ•°å­—助ç?PDA)ã€?/p>

无线应用å议是一¿U公开的ã€å…¨çƒæ€§çš„¾|‘络åè®®åQŒç”¨æ¥æ”¯æŒæ ‡å‡†æ•°æ®æ ¼å¼åŒ–和无¾U¿è®¾å¤‡ä¿¡åïLš„传输ã€?br />使用WinRunneråQŒæµ‹è¯•äh员å¯ä»¥åˆ©ç”¨å¾®åž‹æµè§ˆæ¨¡æ‹Ÿå™¨æ¥è®°å½•业务浽E‹æ“作,然åŽå›žæ”¾å’Œæ£€æŸ¥è¿™äº›ä¸šåŠ¡æµ½E‹åŠŸèƒ½çš„æ­£ç¡®æ€§ã€?/p>

å…­ã€LOADRUNNER

1ã€ç®€ä»‹ï¼š

LoadRunner 是一¿U预‹¹‹ç³»¾lŸè¡Œä¸ºå’Œæ€§èƒ½çš„负载测试工兗÷€‚通过以模拟上åƒä¸‡ç”¨æˆ·å®žæ–½òq¶å‘è´Ÿè²åŠå®žæ—¶æ€§èƒ½ç›‘æµ‹çš„æ–¹å¼æ¥¼‹®è®¤å’ŒæŸ¥æ‰ùN—®é¢˜ï¼ŒLoadRunner 能够å¯ÒŽ•´ä¸ªä¼ä¸šæž¶æž„进行测试。通过使用LoadRunner åQŒä¼ä¸šèƒ½æœ€å¤§é™åº¦åœ°¾~©çŸ­‹¹‹è¯•æ—‰™—´åQŒä¼˜åŒ–性能和加速应用系¾lŸçš„å‘布周期ã€?/p>

ç›®å‰ä¼ä¸šçš„网¾lœåº”用环境都必须支æŒå¤§é‡ç”¨æˆ·åQŒç½‘¾lœä½“¾pÀLž¶æž„中å«å„¾cÕdº”用环境且ç”׃¸åŒä¾›åº”商æä¾›è½¯äšg和硬件äñ”å“。难以预知的用户负è²å’Œæ„ˆæ¥æ„ˆå¤æ‚的应用环境ä‹É公叿—¶æ—¶æ‹…心会å‘生用户å“应速度˜q‡æ…¢åQŒç³»¾lŸå´©æºƒç­‰é—®é¢˜ã€‚这些都ä¸å¯é¿å…åœ°å¯¼è‡´å…¬å¸æ”¶ç›Šçš„æŸå¤±ã€‚Mercury Interactive çš?LoadRunner 能让ä¼ä¸šä¿æŠ¤è‡ªå·±çš„æ”¶å…¥æ¥æºï¼Œæ— éœ€è´­ç½®é¢å¤–¼‹¬äšg而最大é™åº¦åœ°åˆ©ç”¨çŽ°æœ‰çš„IT 资æºåQŒåƈ¼‹®ä¿¾lˆç«¯ç”¨æˆ·åœ¨åº”用系¾lŸçš„å„个环节中对其测试应用的质é‡åQŒå¯é æ€§å’Œå¯æ‰©å±•性都有良好的评ä­hã€?/p>


LoadRunner 是一¿U适用于儿U体¾pÀLž¶æž„的自动负貋¹‹è¯•工具åQŒå®ƒèƒ½é¢„‹¹‹ç³»¾lŸè¡Œä¸ºåƈ优化¾pÈ»Ÿæ€§èƒ½ã€‚LoadRunner 的测试对象是整个ä¼ä¸šçš„ç³»¾lŸï¼Œå®ƒé€šè¿‡æ¨¡æ‹Ÿå®žé™…用户的æ“作行为和实行实时性能监测åQŒæ¥å¸®åŠ©æ‚¨æ›´å¿«çš„æŸ¥æ‰¾å’Œå‘现问题。此外,LoadRunner 能支æŒå¹¿èŒƒçš„å议和技术,为您的特ŒDŠçŽ¯å¢ƒæä¾›ç‰¹ŒDŠçš„解决æ–ÒŽ¡ˆã€?

2ã€ç‰¹å¾ï¼š

1)è½ÀL¾åˆ›å¾è™šæ‹Ÿç”¨æˆ·

使用LoadRunner çš„Virtual User GeneratoråQŒæ‚¨èƒ½å¾ˆ½Ž€ä¾¿åœ°åˆ›ç«‹èµïL³»¾lŸè´Ÿè½½ã€‚该引擎能够生æˆè™šæ‹Ÿç”¨æˆ·åQŒä»¥è™šæ‹Ÿç”¨æˆ·çš„æ–¹å¼æ¨¡æ‹ŸçœŸå®žç”¨æˆïLš„业务æ“ä½œè¡ŒäØ“ã€‚å®ƒå…ˆè®°å½•ä¸‹ä¸šåŠ¡‹¹ç¨‹(å¦‚ä¸‹è®¢å•æˆ–机¼œ¨é¢„å®?åQŒç„¶åŽå°†å…¶è{åŒ–äØ“‹¹‹è¯•è„šæœ¬ã€‚åˆ©ç”¨è™šæ‹Ÿç”¨æˆøP¼Œæ‚¨å¯ä»¥åœ¨Windows åQŒUNIX 或Linux æœºå™¨ä¸ŠåŒæ—¶äñ”生æˆåƒä¸Šä¸‡ä¸ªç”¨æˆ·è®‰K—®ã€‚所以LoadRunner能æžå¤§çš„å‡å°‘负貋¹‹è¯•所需的硬件和人力资æºã€‚å¦å¤–,LoadRunner çš„TurboLoad 专利技术能ã€?/p>

æä¾›å¾ˆé«˜çš„适应性。TurboLoad 使您å¯ä»¥äº§ç”Ÿæ¯å¤©å‡ å万å在线用户和数以百万计的点å‡ÀL•°çš„è´Ÿè½½ã€?

用Virtual User Generator 建立‹¹‹è¯•脚本åŽï¼Œæ‚¨å¯ä»¥å¯¹å…¶è¿›è¡Œå‚数化æ“作åQŒè¿™ä¸€æ“作能让您利用几套ä¸åŒçš„实际å‘ç”Ÿæ•°æ®æ¥æµ‹è¯•您的应用程åºï¼Œä»Žè€Œå映出本系¾lŸçš„è´Ÿè²èƒ½åŠ›ã€‚ä»¥ä¸€ä¸ªè®¢å•输入过½E‹äØ“ä¾‹ï¼Œå‚æ•°åŒ–æ“作寞®†è®°å½•中的固定数æ®ï¼Œå¦‚订å•å·å’Œå®¢æˆ·å¿UŽÍ¼Œç”±å¯å˜å€¼æ¥ä»£æ›¿ã€‚在˜q™äº›å˜é‡å†…éšæ„输入å¯èƒ½çš„订å•å·å’Œå®¢æˆ·å,æ¥åŒ¹é…多个实际用æˆïLš„æ“ä½œè¡ŒäØ“ã€?

LoadRunner 通过它的Data Wizard æ¥è‡ªåŠ¨å®žçŽ°å…¶‹¹‹è¯•æ•°æ®çš„傿•°åŒ–。Data Wizard 直接˜qžäºŽæ•°æ®åº“æœåС噍åQŒä»Žä¸­æ‚¨å¯ä»¥èŽ·å–æ‰€éœ€çš„æ•°æ®ï¼ˆå¦‚定å•å·å’Œç”¨æˆ·ååQ‰åƈ直接ž®†å…¶è¾“入到测试脚本。这样é¿å…äº†äººå·¥å¤„ç†æ•°æ®çš„需è¦ï¼ŒData Wizard 为您节çœäº†å¤§é‡çš„æ—‰™—´ã€?

ä¸ÞZº†˜q›ä¸€æ­¥ç¡®å®šæ‚¨çš„Virtual user 能够模拟真实用户åQŒæ‚¨å¯åˆ©ç”¨LoadRunner 控制æŸäº›è¡ŒäØ“ç‰ÒŽ€§ã€‚例如,åªéœ€è¦ç‚¹å‡ÖM¸€ä¸‹é¼ æ ‡ï¼Œæ‚¨å°±èƒ½è½»æ˜“控制交易的数é‡åQŒäº¤æ˜“频率,用户的æ€è€ƒæ—¶é—´å’Œ˜qžæŽ¥é€Ÿåº¦½{‰ã€?

2)创å¾çœŸå®žçš„è´Ÿè½?/p>

Virtual users 建立起åŽåQŒæ‚¨éœ€è¦è®¾å®šæ‚¨çš„负载方案,业务‹¹ç¨‹¾l„åˆå’Œè™šæ‹Ÿç”¨æˆäh•°é‡ã€‚用LoadRunner çš„ControlleråQŒæ‚¨èƒ½å¾ˆå¿«ç»„¾l‡è“v多用æˆïLš„‹¹‹è¯•æ–ÒŽ¡ˆã€‚Controller çš„Rendezvous 功能æä¾›ä¸€ä¸ªäº’动的环境åQŒåœ¨å…¶ä¸­æ‚¨æ—¢èƒ½å¾ç«‹è“væŒç®‹ä¸”åó@环的负è²åQŒåˆèƒ½ç®¡ç†å’Œé©±åŠ¨è´Ÿè²‹¹‹è¯•æ–ÒŽ¡ˆã€?

而且åQŒæ‚¨å¯ä»¥åˆ©ç”¨å®ƒçš„æ—¥ç¨‹è®¡åˆ’æœåŠ¡æ¥å®šä¹‰ç”¨æˆ·åœ¨ä»€ä¹ˆæ—¶å€™è®¿é—®ç³»¾lŸä»¥äº§ç”Ÿè´Ÿè²ã€‚è¿™æ øP¼Œæ‚¨å°±èƒ½å°†‹¹‹è¯•˜q‡ç¨‹è‡ªåŠ¨åŒ–ã€‚åŒæ äh‚¨˜q˜å¯ä»¥ç”¨Controller æ¥é™å®šæ‚¨çš„è´Ÿè½½æ–¹æ¡ˆï¼Œåœ¨è¿™ä¸ªæ–¹æ¡ˆä¸­æ‰€æœ‰çš„ç”¨æˆ·åŒæ—¶æ‰§è¡Œä¸€ä¸ªåЍä½?--如登陆到一个库存应用程åº?---æ¥æ¨¡æ‹Ÿå³°å€ÆD´Ÿè½½çš„æƒ…况。å¦å¤–,您还能监‹¹‹ç³»¾lŸæž¶æž„中å„个¾l„äšg的性能---- 包括æœåŠ¡å™¨ï¼Œæ•°æ®åº“,¾|‘络讑֤‡½{?---æ¥å¸®åŠ©å®¢æˆ·å†³å®šç³»¾lŸçš„é…ç½®ã€?

LoadRunner 通过它的AutoLoad 技术,为您æä¾›æ›´å¤šçš„æµ‹è¯•絋zÀL€§ã€‚ä‹É用AutoLoad åQŒæ‚¨å¯ä»¥æ ÒŽ®ç›®å‰çš„用户ähæ•îCº‹å…ˆè®¾å®šæµ‹è¯•目标,优化‹¹‹è¯•‹¹ç¨‹ã€‚例如,您的目标å¯ä»¥æ˜¯ç¡®å®šæ‚¨çš„应用系¾lŸæ‰¿å—çš„æ¯ç§’点击数或æ¯ç§’的交易é‡ã€?

3)å®šä½æ€§èƒ½é—®é¢˜

LoadRunner 内å«é›†æˆçš„实时监‹¹‹å™¨åQŒåœ¨è´Ÿè²‹¹‹è¯•˜q‡ç¨‹çš„ä“Q何时候,您都å¯ä»¥è§‚察到应用系¾lŸçš„˜qè¡Œæ€§èƒ½ã€‚è¿™äº›æ€§èƒ½ç›‘æµ‹å™¨äØ“æ‚¨å®žæ—¶æ˜¾½CÞZº¤æ˜“性能数æ®åQˆå¦‚å“应旉™—´åQ‰å’Œå…¶å®ƒ¾pÈ»Ÿ¾l„äšg包括application server, web serveråQŒç½‘路设备和数æ®åº“ç­‰çš„å®žæ—¶æ€§èƒ½ã€‚è¿™æ øP¼Œæ‚¨å°±å¯ä»¥åœ¨æµ‹è¯•过½E‹ä¸­ä»Žå®¢æˆ·å’ŒæœåŠ¡å™¨çš„åŒæ–¹é¢è¯„估这些系¾lŸç»„ä»¶çš„˜q行性能åQŒä»Žè€Œæ›´å¿«åœ°å‘现问题ã€?/p>

å†è€…,利用LoadRunner çš„ContentCheck TM åQŒæ‚¨å¯ä»¥åˆ¤æ–­è´Ÿè²ä¸‹çš„应用½E‹åºåŠŸèƒ½æ­£å¸¸ä¸Žå¦ã€‚ContentCheck 在Virtual users ˜q行æ—Óž¼Œ‹‚€‹¹‹åº”用程åºçš„¾|‘络数æ®åŒ…内容,从中¼‹®å®šæ˜¯å¦æœ‰é”™è¯¯å†…容传é€å‡ºåŽ…R€‚它的实时æµè§ˆå™¨å¸®åŠ©æ‚¨ä»Ž¾lˆç«¯ç”¨æˆ·è§’度观察½E‹åºæ€§èƒ½çж况ã€?

4)分枾l“果以精¼‹®å®šä½é—®é¢˜æ‰€åœ?/p>

一旦测试完毕åŽåQŒLoadRunner 攉™›†æ±‡æ€ÀL‰€æœ‰çš„‹¹‹è¯•æ•°æ®åQŒåƈ为您æä¾›é«˜çñ”的分æžå’ŒæŠ¥å‘Šå·¥å…·åQŒä»¥ä¾¿è¿…速查扑ֈ°æ€§èƒ½é—®é¢˜òq¶è¿½æº¯åŽŸç”±ã€‚ä‹É用LoadRunner çš„Web 交易¾l†èŠ‚ç›‘æµ‹å™¨ï¼Œæ‚¨å¯ä»¥äº†è§£åˆ°ž®†æ‰€æœ‰çš„å›¾è±¡ã€æ¡†æž¶å’Œæ–‡æœ¬ä¸‹è²åˆ°æ¯ä¸€¾|‘页上所需的时间。例如,˜q™ä¸ªäº¤æ˜“¾l†èŠ‚åˆ†æžæœºåˆ¶èƒ½å¤Ÿåˆ†æžæ˜¯å¦å› äؓ一个大ž®ºå¯¸çš„图形文件或是第三方的数æ®ç»„仉™€ æˆåº”用¾pÈ»Ÿ˜qè¡Œé€Ÿåº¦å‡æ…¢ã€‚å¦å¤–,Web 交易¾l†èŠ‚ç›‘æµ‹å™¨åˆ†è§£ç”¨äºŽå®¢æˆïL«¯ã€ç½‘¾lœå’ŒæœåŠ¡å™¨ä¸Šç«¯åˆ°ç«¯çš„å应旉™—´åQŒä¾¿äºŽç¡®è®¤é—®é¢˜ï¼Œå®šä½æŸ¥æ‰¾çœŸæ­£å‡ºé”™çš„组件。例如,您å¯ä»¥å°†¾|‘络延时˜q›è¡Œåˆ†è§£åQŒä»¥åˆ¤æ–­DNS è§£æžæ—‰™—´åQŒè¿žæŽ¥æœåŠ¡å™¨æˆ–SSL è®¤è¯æ‰€èŠÞp´¹çš„æ—¶é—´ã€‚通过使用LoadRunner 的分æžå·¥å…øP¼Œæ‚¨èƒ½å¾ˆå¿«åœ°æŸ¥æ‰‘Öˆ°å‡ºé”™çš„ä½¾|®å’ŒåŽŸå› òq¶ä½œå‡ºç›¸åº”的调整ã€?

5)é‡å¤‹¹‹è¯•ä¿è¯¾pÈ»Ÿå‘布的高性能

负貋¹‹è¯•是一个é‡å¤è¿‡½E‹ã€‚毋ơ处ç†å®Œä¸€ä¸ªå‡ºé”™æƒ…况,您都需è¦å¯¹æ‚¨çš„应用½E‹åºåœ¨ç›¸åŒçš„æ–ÒŽ¡ˆä¸‹ï¼Œå†è¿›è¡Œä¸€‹Æ¡è´Ÿè½½æµ‹è¯•。以此检验您所åšçš„ä¿®æ­£æ˜¯å¦æ”¹å–„了è¿è¡Œæ€§èƒ½ã€?/p>

6) Enterprise Java Beans的测�/p>

LoadRunner 完全支æŒEJB 的负载测试。这些基于Java 的组件è¿è¡Œåœ¨åº”用æœåŠ¡å™¨ä¸ŠåQŒæä¾›å¹¿æ³›çš„应用æœåŠ¡ã€‚é€šè¿‡‹¹‹è¯•˜q™äº›¾l„äšgåQŒæ‚¨å¯ä»¥åœ¨åº”用程åºå¼€å‘的早期ž®Þq¡®è®¤åƈ解决å¯èƒ½äº§ç”Ÿçš„问题ã€?

利用LoadRunner, 您å¯ä»¥å¾ˆæ–¹ä¾¿åœîCº†è§£ç³»¾lŸçš„æ€§èƒ½ã€?它的Controller å…许您é‡å¤æ‰§è¡Œä¸Žå‡ºé”™ä¿®æ”¹å‰ç›¸åŒçš„‹¹‹è¯•æ–ÒŽ¡ˆã€‚它的基于HTML çš„æŠ¥å‘ŠäØ“æ‚¨æä¾›ä¸€ä¸ªæ¯”较性能¾l“果所需的基准,以此衡é‡åœ¨ä¸€ŒD‰|—¶é—´å†…åQŒæœ‰å¤šå¤§½E‹åº¦çš„æ”¹˜q›åƈ¼‹®ä¿åº”用æˆåŠŸã€‚ç”±äºŽè¿™äº›æŠ¥å‘Šæ˜¯åŸÞZºŽHTML 的文本,您å¯ä»¥å°†å…¶å…¬å¸ƒäºŽæ‚¨å…¬å¸çš„内部¾|‘上åQŒä¾¿äºŽéšæ—¶æŸ¥é˜…ã€?

7)最大化投资回报

所有Mercury Interactive çš„äñ”å“å’ŒæœåŠ¡éƒ½æ˜¯é›†æˆè®¾è®¡çš? 能完全相容地一赯‚¿ä½œã€‚由于它们具有相åŒçš„æ ¸å¿ƒæŠ€æœ¯ï¼Œæ¥è‡ªäºŽLoadRunnerå’ŒActiveTest TM 的测试脚本,在Mercury Interactive 的负载测试æœåŠ¡é¡¹ç›®ä¸­åQŒå¯ä»¥è¢«é‡å¤ç”¨äºŽæ€§èƒ½ç›‘测。借助Mercury Interactive的监‹¹‹åŠŸèƒ½ï¼åQTopaz TM å’ŒActiveWatch TM åQŒæµ‹è¯•脚本å¯é‡å¤ä½¿ç”¨ä»Žè€Œåã^衡投资收益。更é‡è¦çš„æ˜¯åQŒæ‚¨èƒ½äØ“‹¹‹è¯•çš„å‰æœŸå¸ƒ¾|²å’Œç”Ÿäñ”¾pÈ»Ÿçš„监‹¹‹æä¾›ä¸€ä¸ªå®Œæ•´çš„应用性能½Ž¡ç†è§£å†³æ–ÒŽ¡ˆã€?/p>

8)æ”¯æŒæ— çº¿åº”用åè®®

éšç€æ— çº¿è®‘Ö¤‡æ•°é‡å’Œç§¾cÈš„增多åQŒæ‚¨çš„æµ‹è¯•计划需è¦åŒæ—¶æ»¡­‘³ä¼ ¾lŸçš„åŸÞZºŽ‹¹è§ˆå™¨çš„用户和无¾U¿äº’è”网讑֤‡åQŒå¦‚手机和PDA。LoadRunner 支æŒ2 ™åÒŽœ€òq¿æ³›ä½¿ç”¨çš„å议:WAPå’ŒI-mode。此外,通过负貋¹‹è¯•¾pÈ»Ÿæ•´ä½“æž¶æž„åQŒLoadRunner 能让您åªéœ€è¦é€šè¿‡è®°å½•一‹Æ¡è„šæœ¬ï¼Œž®±å¯å®Œå…¨‹‚€‹¹‹ä¸Š˜q°è¿™äº›æ— ¾U¿äº’è”网¾pÈ»Ÿã€?/p>

9)支æŒMedia Stream应用

LoadRunner ˜q˜èƒ½æ”¯æŒMedia Streamåº”ç”¨ã€‚äØ“äº†ä¿è¯ç»ˆç«¯ç”¨æˆ·å¾—到良好的æ“作体验和高质é‡Media StreamåQŒæ‚¨éœ€è¦æ£€‹¹‹æ‚¨çš„Media Stream应用½E‹åºã€‚ä‹É用LoadRunner åQŒæ‚¨å¯ä»¥è®°å½•å’Œé‡æ”¾ä“Q何æµè¡Œçš„å¤šåª’ä½“æ•°æ®æµæ ¼å¼æ¥è¯Šæ–­ç³»¾lŸçš„æ€§èƒ½é—®é¢˜åQŒæŸ¥æ‰‘ÖŽŸç”±ï¼Œåˆ†æžæ•°æ®çš„è´¨é‡ã€?/p>

10)完整的ä¼ä¸šåº”用环境的支æŒ

LoadRunner 支æŒòq¿æ³›çš„å议,å¯ä»¥‹¹‹è¯•å„ç§IT 基础架构ã€?/p>

七ã€WAS

1ã€ç®€ä»‹ï¼š

Microsoft Web Application Stress Tool 是由微èÊY的网站测试äh员所开å‘,专门用楘q›è¡Œå®žé™…¾|‘站压力‹¹‹è¯•的一套工兗÷€‚é€è¿‡˜q™å¥—åŠŸèƒ½å¼ºå¤§çš„åŽ‹åŠ›æµ‹è¯•å·¥å…øP¼Œæ‚¨å¯ä»¥ä‹É用少é‡çš„Client端计½Ž—机仿真大é‡ç”¨æˆ·ä¸Šçº¿å¯¹ç½‘ç«™æœåŠ¡æ‰€å¯èƒ½é€ æˆçš„媄å“ã€?/p>

2ã€ç‰¹å¾ï¼š

1åQ‰å¯ä»¥æ•°¿Uä¸åŒçš„æ–¹å¼å»ºç«‹‹¹‹è¯•指ä×oåQšåŒ…å«ä»¥æ‰‹åЍã€å½•制æµè§ˆå™¨æ“ä½œæ­¥éª¤ã€æˆ–直接录入IIS的记录文件ã€å½•入网站的内容åŠå½•入其它测试程åºçš„æŒ‡ä×o½{‰æ–¹å¼ã€?/p>

2åQ‰æ”¯æŒå¤š¿U客æˆïL«¯æŽ¥å£åQšæ ‡å‡†çš„¾|‘站应用½E‹åºC++的客æˆïL«¯åQŒä‹É用Active Server Page 客户端,或是使用Web Application Stress对象模型建立您自定的接å£ã€?/p>

3åQ‰æ”¯æŒå¤šç”¨æˆ·åQšåˆ©ç”¨å¤š¿Uä¸åŒçš„è®¤è¯æ–¹å¼ä»¿çœŸå®žé™…的情况,包å«äº†DPA, NTLM å?SSL½{‰ã€?/p>

æ‹æ‹å†¬å­£ 2006-04-14 15:26 å‘表评论
]]>
性能‹¹‹è¯•的有兛_®šä¹?/title><link>http://www.aygfsteel.com/jessica/archive/2006/04/13/40832.html</link><dc:creator>æ‹æ‹å†¬å­£</dc:creator><author>æ‹æ‹å†¬å­£</author><pubDate>Thu, 13 Apr 2006 03:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/jessica/archive/2006/04/13/40832.html</guid><wfw:comment>http://www.aygfsteel.com/jessica/comments/40832.html</wfw:comment><comments>http://www.aygfsteel.com/jessica/archive/2006/04/13/40832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jessica/comments/commentRss/40832.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jessica/services/trackbacks/40832.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">性能</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">perfotmance</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">—â€?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">应用½E‹åºçš„æ€§èƒ½æ˜¯è¿›è¡Œå…¸åž‹æ“作所需的时间。性能常常ç”?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">â€?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">å“应旉™—´</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">â€?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">的标准æ¥è¡¡é‡ã€‚性能¾l常是é‡è¦çš„业务需求之一ã€?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> <?xml:namespace prefix = o /?> <o:p> <br /> </o:p> </span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">å“应旉™—´</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">response time</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">—â€?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">是应用程åºå¤„ç†ä¸€ä¸ªè¯·æ±‚所需的时é—?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">比如åQšä»Žç”¨æˆ·çš„æµè§ˆå™¨å¾—åˆ°çš„ä¸€ä¸?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">HTTP</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">è¯äh±‚</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">ã€?font color="#800080">一般我们对òq›_‡å“应旉™—´æ„Ÿå…´­‘£ï¼Œåœ¨è´Ÿè½½å¢žå¤§æ—¶å“应旉™—´çš„一贯性也很é‡è¦ã€‚æé«˜è´Ÿè½½åŽè‹¥å“应时间曲¾U¿å‡ºçŽ°é”¯é½¿ï¼Œå¾€å¾€è¯´æ˜Žæ€§èƒ½ä¹å–„å¯é™ˆåQŒè¿˜æœ‰æ½œåœ¨çš„ä¸ç¨³å®šã€?/font></span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> <o:p> <br /> </o:p> </span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">延迟旉™—´</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">latency</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">——是从应用程åºå¾—到å馈所需的最ž®‘æ—¶é—ß_¼ˆä¸ç®¡½E‹åºæ˜¯å¦éœ€è¦åšå¤šå·¥ä½œæ‰èƒ½å¾—到这个å馈,˜qœç¨‹æ–ÒŽ³•调用å…ähœ‰å¾ˆé•¿çš„åšg˜qŸï¼›ä¸ç®¡è¢«è°ƒç”¨çš„æ–ÒŽ³•æ˜¯å¦æˆåŠŸåQŒéƒ½æœ‰ä¸€ä¸ªå›ºå®šçš„æœ€ž®å¼€é”€åQ‰ã€?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> <o:p> <br /> </o:p> </span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åžåé‡ï¼ˆ</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">throughput</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰â€”—是½E‹åºæˆ–者组件在一ŒD늻™å®šæ—¶é—´å†…所能进行工作的æ€Õd’ŒåQˆå¯¹</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">web</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">应用æ¥è¯´åQŒå¸¸å¸¸ç”¨æ¯ç§’点击率æ¥è¡¡é‡åQ›å¯¹äº‹åС处ç†åº”用æ¥è¯´åQŒåˆ™æ˜¯æ¯¿U’能完æˆçš„事务数åQ‰ã€?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> <o:p> <br /> </o:p> </span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">å¯äŽ×¾~©æ€§ï¼ˆ</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">scalability</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰â€”—指应用½E‹åºå¦‚何应对增长的æµé‡ã€?font color="#000000">说到å¯äŽ×¾~©æ€§çš„æ—¶å€™ï¼Œæˆ‘们通常指å‘上å¯ä¼¸ç¾ƒåQ?/font></span> <font color="#000000"> </font> <font color="#000000"> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">scaling up</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰ï¼Œä»¥ä¾¿åº”对更大的负载。å¯ä¼¸ç¾ƒæ€§ç»å¸¸ç­‰ä»·äºŽæ°´åã^å¯äŽ×¾~©æ€§ï¼ˆ</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">horizontal scalability</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰ï¼šå‘上伸羃到æœåŠ¡å™¨é›†ç¾¤æ¥æé«˜åžåé‡ã€?我们也å¯ä»¥é€šè¿‡æŠŠåº”用è{¿UÕdˆ°æ›´å¼ºçš„æœåŠ¡å™¨ä¸Šæ¥æé«˜åžåé‡ã€‚åŽè€…è¦½Ž€å•å¾—å¤šï¼Œä½†æ˜¾ç„¶åÆˆä¸èƒ½è®©åº”用更牢固åQŒä¹Ÿåªèƒ½å¾—到有é™çš„æé«˜ã€?br />å¦ä¸€¿U选择是垂直äŽ×¾~©ï¼ˆ </span> </font> <font color="#000000"> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">vertical scaling</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰ï¼šåœ¨æ¯å°æœåŠ¡å™¨ä¸Šè¿è¡Œå¤šä»½æœåŠ¡ã€‚â€œåž‚ç›´äŽ×¾~©â€è¿™ä¸ªæœ¯è¯­è¢«</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">Fowler</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">ç”¨æ¥æŒ‡â€œäØ“å•å°æœåŠ¡å™¨å¢žåŠ æ›´å¤šçš„è®¡ç®—èƒ½åŠ›â€ï¼Œæ¯”如æ·ÕdŠ é¢å¤–çš?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">CPU</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">或者内存ã€?br /><span></span></span> </font> <font color="#000000"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">性能和å¯ä¼¸ç¾ƒæ€§æœ‰æ—¶å€™åœ¨çŽ°å®žä¸­æ˜¯å¯¹ç«‹çš„ã€‚èƒ½åœ¨å•å°æœåŠ¡å™¨ä¸Šé«˜æ€§èƒ½˜q行的应用,å´å¯èƒ½æ— æ³•被部çÖv到集¾Ÿ¤ä¸­åQ?<font color="#800080">比如åQšäؓ了获得高性能åQŒé’ˆå¯ÒŽ¯ä¸ªç”¨æˆ·åœ¨ </font></span> <font color="#800080"> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">session</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">中维护大é‡çš„æ•°æ®åQ›è€Œåœ¨é›†ç¾¤çŽ¯å¢ƒä¸‹ï¼Œ˜q™äº›æ•°æ®æ— æ³•被高效地å¤åˆ¶ã€‚然而,必须æ„识刎ͼŒæ€§èƒ½åœîC¸‹çš„åº”ç”¨åŒæ ·ä¸ä¼šå…·æœ‰å¾ˆå¥½çš„å¯äŽ×¾~©æ€§ã€‚如果应用程åºåœ¨å•å°æœåŠ¡å™¨ä¸Š‹¹ªè´¹èµ„æºåQŒå°±ä»¥äØ“ç€å³ä¾¿åœ¨é›†¾Ÿ¤ä¸­˜q行åQŒä¹Ÿåªä¸˜q‡æ˜¯‹¹ªè´¹æ›´å¤šçš„资æºã€?/span> </font> </font> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> <o:p> <br /> </o:p> </span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">性能‹¹‹è¯•½Ž€å•说åQŒå°±æ˜¯åœ¨é¢„期的压力下åQŒæˆ‘的应用能跑多快ã€?font color="#800080">注æ„åQŒè¿™é‡Œçš„压力是你预期的,更多的时候就是你的性能指标ã€?/font></span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">负貋¹‹è¯•åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">load test</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰â€”—目标是¾l™ç³»¾lŸä»¥æœŸæœ›çš„è´Ÿè½½é‡[</span> <font color="#800080"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">åœ¨æ²¡æœ‰é€Ÿåº¦è¦æ±‚的情况下åQŒæˆ‘çš„åº”ç”¨èƒ½æ”¯æ’‘å¤šå°‘çš„åÆˆå‘ç”¨æˆøP¼Œ˜q™é‡Œæ›´å¤šçš„æ˜¯è€ƒè™‘定w‡ã€?/span> </font> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">]</span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">压力‹¹‹è¯•åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial">stress test</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰â€”—目标是åœ?font color="#00cc00"><span style="COLOR: blue"></span><font color="#000000">­‘…过</font></font>期望能力时确定系¾lŸè¡Œä¸º[</span> <font color="#800080"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">­‘…过定w‡åŽ‹åŠ›ä¸‹çš„è¡¨çŽ°åQŒä¹Ÿå…Ïx³¨åº”用的æ¢å¤èƒ½åŠ›ï¼Œ˜q™é‡Œæ›´å¤šçš„æ˜¯å…Ïx³¨¾pÈ»Ÿçš„å˜åŒ?span lang="EN-US">,</span>属于å¥å£®æ€§æµ‹è¯?span lang="EN-US">(robustness )</span>一¾c?/span> </font> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">]</span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">½E›_®šæ€§æµ‹è¯?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial">stability test</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ‰â€”â€?/span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">‹¹‹è¯•¾pÈ»Ÿé•¿æ—¶é—´è¿è¡Œçš„表现åQŒæ›´å¤šçš„æ˜¯å‘çŽîC¸€äº›èµ„æºæ³„æ¼ç­‰é—®é¢˜åQŒä¸€èˆ¬åŽ‹åŠ›éšä¾¿è®¾¾|®ã€?/span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">基准‹¹‹è¯•å¯Òޝ”性测è¯?/span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial">benchmark</span> <span style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">åQ?/span> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">—â€?span lang="EN-US"></span>一般用æ¥åŽ‚å•†ä¹‹é—´åŒ¾cÖMñ”å“之é—?span lang="EN-US">,</span>相åŒäº§å“版本之间的对比ã€?/span> </p> <p class="MsoNormal" style="LINE-HEIGHT: 150%"> <span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体"> <br /> </span> <span lang="EN-US" style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: Arial"> <o:p> </o:p> </span> </p><img src ="http://www.aygfsteel.com/jessica/aggbug/40832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jessica/" target="_blank">æ‹æ‹å†¬å­£</a> 2006-04-13 11:10 <a href="http://www.aygfsteel.com/jessica/archive/2006/04/13/40832.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>性能‹¹‹è¯•æ–ÒŽ³•http://www.aygfsteel.com/jessica/archive/2006/04/07/39884.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Fri, 07 Apr 2006 09:33:00 GMThttp://www.aygfsteel.com/jessica/archive/2006/04/07/39884.htmlhttp://www.aygfsteel.com/jessica/comments/39884.htmlhttp://www.aygfsteel.com/jessica/archive/2006/04/07/39884.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/39884.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/39884.html ½Ž€ä»?/span>

  如果ä¸è¿›è¡Œåˆç†çš„规划åQŒå¯¹ J2EE 应用½E‹åº˜q›è¡Œæ€§èƒ½‹¹‹è¯•ž®†ä¼šæ˜¯ä¸€™å¹ä×o人望而生ç•ä¸”æœ‰äº›æ··äØ•çš„ä“Q务。因为对于ä“Q何的软äšg开呿µ½E‹ï¼Œéƒ½å¿…™åÀL”¶é›†éœ€æ±‚ã€ç†è§£ä¸šåŠ¡éœ€è¦ï¼Œòq¶åœ¨˜q›è¡Œå®žé™…‹¹‹è¯•之å‰è®¾è®¡å‡ºæ­£å¼çš„˜q›åº¦è¡¨ã€‚性能‹¹‹è¯•的需求由业务需è¦é©±åŠ¨ï¼Œòq¶ç”±ä¸€¾l„ç”¨ä¾‹é˜æ˜Žã€‚这些用例å¯ä»¥åŸºäºŽåކ岿•°æ®ï¼ˆä¾‹å¦‚åQŒæœåŠ¡å™¨ä¸€å‘¨çš„è´Ÿè²æ¨¡å¼åQ‰æˆ–预测的近似倹{€‚å¼„æ¸…æ¥šéœ€è¦æµ‹è¯•的内容之åŽåQŒå°±éœ€è¦çŸ¥é“如何进行测试了ã€?/span>

  在开å‘阶ŒDµå‰æœŸï¼Œåº”该使用基准‹¹‹è¯•æ¥ç¡®å®šåº”用程åºä¸­æ˜¯å¦å‡ºçŽ°æ€§èƒ½å€’é€€ã€‚åŸºå‡†æµ‹è¯•å¯ä»¥åœ¨ä¸€ä¸ªç›¸å¯¹çŸ­çš„æ—¶é—´å†…攉™›†å¯é‡å¤çš„¾l“果。进行基准测试的最好方法是åQŒæ¯‹Æ¡æµ‹è¯•改å˜ä¸€ä¸ªä¸”åªæ”¹å˜ä¸€ä¸ªå‚数。例如,如果想知é“增åŠ?/span> JVM 内存是å¦ä¼šåª„å“应用程åºçš„æ€§èƒ½åQŒå°±é€æ¬¡é€’增 JVM 内存åQˆä¾‹å¦‚,ä»?/span> 1024 MB 增至 1224 MB åQŒç„¶åŽæ˜¯ 1524 MB åQŒæœ€åŽæ˜¯ 2024 MB åQ‰ï¼Œåœ¨æ¯ä¸ªé˜¶ŒD‰|”¶é›†ç»“果和环境数æ®åQŒè®°å½•ä¿¡æ¯ï¼Œç„¶åŽè½¬åˆ°ä¸‹ä¸€é˜¶æ®µã€‚这样在分枋¹‹è¯•¾l“果时就有迹å¯åó@。下一ž®èŠ‚æˆ‘å°†ä»‹ç»ä»€ä¹ˆæ˜¯åŸºå‡†‹¹‹è¯•åQŒä»¥åŠè¿è¡ŒåŸºå‡†æµ‹è¯•的最佛_‚æ•°ã€?/span>

  开å‘阶ŒDµåŽæœŸï¼Œåœ¨åº”用程åºä¸­çš?/span> bug å·²ç»è¢«è§£å†»I¼Œåº”用½E‹åºè¾‘Öˆ°ä¸€¿U稳定状æ€ä¹‹åŽï¼Œå¯ä»¥˜qè¡Œæ›´äØ“å¤æ‚的测试,¼‹®å®š¾pÈ»Ÿåœ¨ä¸åŒçš„è´Ÿè²æ¨¡å¼ä¸‹çš„表现。这些测试被¿UîCؓ定w‡è§„划‹¹‹è¯•ã€æ¸—入测è¯?/span> (soak test) ã€å³°è°ähµ‹è¯?/span> (peak-rest test) åQŒå®ƒä»¬æ—¨åœ¨é€šè¿‡‹¹‹è¯•应用½E‹åºçš„å¯é æ€§ã€å¥å£®æ€§å’Œå¯äŽ×¾~©æ€§æ¥‹¹‹è¯•接近于现实世界的场景。对于下é¢çš„æè¿°åº”该从抽象的æ„义上ç†è§£ï¼Œå› äØ“æ¯ä¸ªåº”用½E‹åºçš„ä‹É用模å¼éƒ½æ˜¯ä¸åŒçš„。例如,定w‡è§„划‹¹‹è¯•通常都ä‹É用较¾~“æ…¢çš?/span> ramp-up åQˆä¸‹æ–‡æœ‰å®šä¹‰åQ‰ï¼Œä½†æ˜¯å¦‚果应用½E‹åºåœ¨ä¸€å¤©ä¹‹ä¸­çš„æŸä¸ªæ—¶æ®µä¸­æœ‰å¿«é€Ÿçªå‘çš„‹¹é‡åQŒé‚£ä¹ˆè‡ªç„¶åº”该修æ”ÒŽµ‹è¯•ä»¥åæ˜ ˜q™ç§æƒ…况。但是,è¦è®°ä½ï¼Œå› äØ“æ›´æ”¹äº†æµ‹è¯•å‚æ•ŽÍ¼ˆæ¯”如 ramp-up 周期或用æˆïLš„考虑旉™—´ (think-time) åQ‰ï¼Œ‹¹‹è¯•的结果肯定也会改å˜ã€‚一个ä¸é”™çš„æ–ÒŽ³•是,˜q行一¾pÕdˆ—的基准测试,¼‹®ç«‹ä¸€ä¸ªå·²çŸ¥çš„å¯æŽ§çŽ¯å¢ƒåQŒç„¶åŽå†å¯¹å˜åŒ–进行比较ã€?/span>

基准‹¹‹è¯•

  基准‹¹‹è¯•的关键是è¦èŽ·å¾—ä¸€è‡´çš„ã€å¯å†çŽ°çš„ç»“æžœã€‚å¯å†çŽ°çš„ç»“æžœæœ‰ä¸¤ä¸ªå¥½å¤„åQšå‡ž®‘釿–°è¿è¡Œæµ‹è¯•çš„‹Æ¡æ•°åQ›å¯¹‹¹‹è¯•çš„äñ”å“和产生的数字更为确信。ä‹É用的性能‹¹‹è¯•工具å¯èƒ½ä¼šå¯¹‹¹‹è¯•¾l“果产生很大影å“。å‡å®šæµ‹è¯•的两个指标是æœåŠ¡å™¨çš„å“应时间和åžåé‡ï¼Œå®ƒä»¬ä¼šå—到æœåŠ¡å™¨ä¸Šçš„è´Ÿè²çš„媄å“。æœåŠ¡å™¨ä¸Šçš„è´Ÿè²å—两个因素媄å“ï¼šåŒæ—¶ä¸ŽæœåŠ¡å™¨é€šä¿¡çš„è¿žæŽ¥ï¼ˆæˆ–è™šæ‹Ÿç”¨æˆøP¼‰çš„æ•°ç›®ï¼Œä»¥åŠæ¯ä¸ªè™šæ‹Ÿç”¨æˆ·è¯äh±‚之间的考虑旉™—´çš„长短。很明显åQŒä¸ŽæœåŠ¡å™¨é€šä¿¡çš„ç”¨æˆ¯‚¶Šå¤šï¼Œè´Ÿè²ž®Þp¶Šå¤§ã€‚åŒæ øP¼Œè¯äh±‚之间的考虑旉™—´­‘ŠçŸ­åQŒè´Ÿè½½ä¹Ÿ­‘Šå¤§ã€‚这两个因素的ä¸åŒç»„åˆä¼šäº§ç”Ÿä¸åŒçš„æœåŠ¡å™¨è´Ÿè²½{‰çñ”。记ä½ï¼Œéšç€æœåŠ¡å™¨ä¸Šè´Ÿè²çš„增加,åžåé‡ä¼šä¸æ–­æ”€å‡ï¼Œç›´åˆ°åˆ°è¾¾ä¸€ä¸ªç‚¹ã€?/span>

囑փ-0011.png

å›?/span> 1. éšç€è´Ÿè²çš„增加,¾pÈ»Ÿåžåé‡çš„æ›²çº¿åQˆå•ä½ï¼š™åµé¢ / ¿U’)

  注æ„åQŒåžåé‡ä»¥ç¨³å®šçš„速度增长åQŒç„¶åŽåœ¨æŸä¸€ä¸ªç‚¹ä¸Šç¨³å®šä¸‹æ¥ã€?/span>

  在æŸä¸€ç‚¹ä¸ŠåQŒæ‰§è¡Œé˜Ÿåˆ—å¼€å§‹å¢žé•¿ï¼Œå› äØ“æœåŠ¡å™¨ä¸Šæ‰€æœ‰çš„¾U¿ç¨‹éƒ½å·²æŠ•入使用åQŒä¼ å…¥çš„è¯äh±‚ä¸å†è¢«ç«‹å›_¤„ç†ï¼Œè€Œæ˜¯æ”‘Ö…¥é˜Ÿåˆ—中,当线½E‹ç©ºé—²æ—¶å†å¤„ç†ã€?/span>

囑փ-0001.png 
å›?/span> 2. éšç€è´Ÿè²çš„增加,¾pÈ»Ÿæ‰§è¡Œé˜Ÿåˆ—长度的曲¾U?/span>

  注æ„åQŒæœ€åˆçš„一ŒD‰|—¶é—ß_¼Œæ‰§è¡Œé˜Ÿåˆ—çš„é•¿åº¦äØ“é›Óž¼Œç„¶åŽž®±å¼€å§‹ä»¥½E›_®šçš„速度增长。这是因为系¾lŸä¸­çš„负载在½E›_®šå¢žé•¿åQŒè™½ç„¶æœ€åˆç³»¾lŸæœ‰­‘›_¤Ÿçš„空闲线½E‹å޻处ç†å¢žåŠ çš„è´Ÿè½½ï¼Œæœ€¾lˆå®ƒ˜q˜æ˜¯ä¸èƒ½æ‰¿å—åQŒè€Œå¿…™åÕd°†å…¶æŽ’入队列ã€?/span>

  当系¾lŸè¾¾åˆ°é¥±å’Œç‚¹åQŒæœåС噍åžåé‡ä¿æŒç¨³å®šåŽåQŒå°±è¾‘Öˆ°äº†ç»™å®šæ¡ä»¶ä¸‹çš„ç³»¾lŸä¸Šé™ã€‚但是,éšç€æœåŠ¡å™¨è´Ÿè½½çš„¾l§ç®‹å¢žé•¿åQŒç³»¾lŸçš„å“应旉™—´ä¹Ÿéšä¹‹åšg长,虽然åžåé‡ä¿æŒç¨³å®šã€?/span>

 囑փ-0002.png
å›?/span> 3. éšç€è´Ÿè²çš„增加,¾pÈ»Ÿä¸­ä¸¤ä¸ªäº‹åŠ¡çš„å“应旉™—´æ›²çº¿

  注æ„åQŒåœ¨æ‰§è¡Œé˜Ÿåˆ—åQˆå›¾ 2 åQ‰å¼€å§‹å¢žé•¿çš„åŒæ—¶åQŒå“åº”æ—¶é—´ä¹Ÿå¼€å§‹ä»¥é€’å¢žçš„é€Ÿåº¦å¢žé•¿ã€‚è¿™æ˜¯å› ä¸ø™¯·æ±‚ä¸èƒ½è¢«åŠæ—¶å¤„ç†ã€?/span>

  ä¸ÞZº†èŽ·å¾—çœŸæ­£å¯å†çŽ°çš„¾l“æžœåQŒåº”该将¾pÈ»Ÿ¾|®äºŽç›¸åŒçš„高负è²ä¸‹ã€‚äØ“æ­¤ï¼Œä¸ŽæœåŠ¡å™¨é€šä¿¡çš„è™šæ‹Ÿç”¨æˆ·åº”è¯¥å°†è¯äh±‚之间的考虑旉™—´è®¾äؓ零。这æ ähœåŠ¡å™¨ä¼šç«‹åŒ™¶…载,òq¶å¼€å§‹æž„建执行队列。如果请求(虚拟用户åQ‰æ•°ä¿æŒä¸€è‡ß_¼ŒåŸºå‡†‹¹‹è¯•的结果应该会éžå¸¸¾_„¡¡®åQŒå®Œå…¨å¯ä»¥å†çްã€?/span>

  您å¯èƒ½è¦é—®çš„一个问题是åQ?/span> â€?/span> 如何度釾l“æžœåQ?/span> â€?/span> 对于一‹Æ¡ç»™å®šçš„‹¹‹è¯•åQŒåº”该å–å“应旉™—´å’Œåžåé‡çš„åã^å‡å€¹{€‚ç²¾¼‹®åœ°èŽ·å¾—˜q™äº›å€¼çš„唯一æ–ÒŽ³•是一‹Æ¡åŠ è½½æ‰€æœ‰çš„ç”¨æˆ·åQŒç„¶åŽåœ¨é¢„定的时间段内挾l­è¿è¡Œã€‚è¿™¿UîCØ“ “flatâ€?/span> ‹¹‹è¯•ã€?/span>

囑փ-0003.png
å›?/span> 4. flat ‹¹‹è¯•çš„æƒ…å†µï¼ˆæ‰€æœ‰çš„ç”¨æˆ·éƒ½æ˜¯åŒæ—¶åŠ è²çš„)

  与此相对应的æ˜?/span> “ramp-upâ€?/span> ‹¹‹è¯•ã€?/span>

 囑փ-0004.png
å›?/span> 5. ramp-up ‹¹‹è¯•的情况(在测试期é—ß_¼Œç”¨æˆ·ä»¥ç¨³å®šé€Ÿåº¦åQˆæ¯¿U?/span> x 个)增加åQ?/span>

   ramp-up ‹¹‹è¯•中的用户是交错上å‡çš„åQˆæ¯å‡ ç§’增加一些新用户åQ‰ã€?/span> ramp-up ‹¹‹è¯•ä¸èƒ½äº§ç”Ÿ¾_„¡¡®å’Œå¯é‡çŽ°çš„åã^å‡å€û|¼Œ˜q™æ˜¯å› äØ“ç”׃ºŽç”¨æˆ·çš„å¢žåŠ æ˜¯æ¯æ¬¡ä¸€éƒ¨åˆ†åQŒç³»¾lŸçš„è´Ÿè²åœ¨ä¸æ–­åœ°å˜åŒ–。因此, flat ˜q行是获得基准测试数æ®çš„ç†æƒ³æ¨¡å¼ã€?/span>

  ˜q™ä¸æ˜¯åœ¨è´¬ä½Ž ramp-up ‹¹‹è¯•çš„ä­h倹{€‚实际上åQ?/span> ramp-up ‹¹‹è¯•å¯Òމ¾å‡ÞZ»¥åŽè¦˜q行çš?/span> flat ‹¹‹è¯•的范围éžå¸¸æœ‰ç”¨ã€?/span> ramp-up ‹¹‹è¯•的优ç‚ÒŽ˜¯åQŒå¯ä»¥çœ‹å‡ºéšç€¾pÈ»Ÿè´Ÿè²çš„æ”¹å˜ï¼Œ‹¹‹é‡å€¼æ˜¯å¦‚何改å˜çš„。然åŽå¯ä»¥æ®æ­¤é€‰æ‹©ä»¥åŽè¦è¿è¡Œçš„ flat ‹¹‹è¯•的范围ã€?/span>

   Flat ‹¹‹è¯•的问题是¾pÈ»Ÿä¼šé‡åˆ?/span> â€?/span> 波动 â€?/span> 效果ã€?/span>

 囑փ-0005.png 
å›?/span> 6. 一‹Æ?/span> flat ‹¹‹è¯•中所‹¹‹å¾—的系¾lŸåžåé‡çš„æ›²¾U¿ï¼ˆå•ä½åQšé¡µé?/span> / ¿U’)

ã€€ã€€æ³¨æ„æ³¢åŠ¨çš„å‡ºçŽŽÍ¼Œåžåé‡ä¸å†æ˜¯òqÏx»‘çš„ã€?/span>

  ˜q™åœ¨¾pÈ»Ÿçš„å„个方é¢éƒ½æœ‰æ‰€ä½“现åQŒåŒ…æ‹?/span> CPU çš„ä‹É用é‡ã€?/span>

囑փ-0006.png 
å›?/span> 7. 一‹Æ?/span> flat ‹¹‹è¯•中所‹¹‹å¾—的系¾l?/span> CPU 使用é‡éšæ—‰™—´å˜åŒ–的曲¾U?/span>

  注æ„åQŒæ¯éš”一ŒD‰|—¶é—´å°±ä¼šå‡ºçŽîC¸€ä¸ªæ‡Lå½¢ã€?/span> CPU 使用é‡ä¸å†æ˜¯òqÏx»‘的,而是有了åƒåžåé‡å›ùN‚£æ ïLš„ž®–å³°ã€?/span>

  此外åQŒæ‰§è¡Œé˜Ÿåˆ—也承å—ç€ä¸ç¨³å®šçš„è´Ÿè²åQŒå› æ­¤å¯ä»¥çœ‹åˆŽÍ¼Œéšç€¾pÈ»Ÿè´Ÿè²çš„增加和å‡å°‘åQŒæ‰§è¡Œé˜Ÿåˆ—也在增长和¾~©å‡ã€?/span>

囑փ-0007.png 
å›?/span> 8. 一‹Æ?/span> flat ‹¹‹è¯•中所‹¹‹å¾—的系¾lŸæ‰§è¡Œé˜Ÿåˆ—的曲线

  注æ„åQŒæ¯éš”一ŒD‰|—¶é—´å°±ä¼šå‡ºçŽîC¸€ä¸ªæ‡L形。执行队列曲¾U¿ä¸Žä¸Šé¢çš?/span> CPU 使用é‡å›¾éžå¸¸ç›æ€¼¼ã€?/span>

  最åŽï¼Œ¾pÈ»Ÿä¸­äº‹åŠ¡çš„å“应旉™—´ä¹Ÿéµå¾ªç€˜q™ä¸ªæ³¢åŠ¨æ¨¡å¼ã€?/span>

囑փ-0008.png 
å›?/span> 9. 一‹Æ?/span> flat ‹¹‹è¯•中所‹¹‹å¾—的系¾lŸäº‹åŠ¡çš„å“应旉™—´

  注æ„åQŒæ¯éš”一ŒD‰|—¶é—´å°±ä¼šå‡ºçŽîC¸€ä¸ªæ‡L形。事务的å“应旉™—´ä¹Ÿä¸Žä¸Šé¢çš„图¾cÖM¼¼åQŒåªä¸è¿‡å…¶æ•ˆæžœéšç€æ—‰™—´çš„æŽ¨¿U»é€æ¸å‡å¼±ã€?/span>

ã€€ã€€å½“æµ‹è¯•ä¸­æ‰€æœ‰çš„ç”¨æˆ·éƒ½åŒæ—¶æ‰§è¡Œå‡ ä¹Žç›¸åŒçš„æ“ä½œæ—Óž¼Œž®×ƒ¼šå‘生˜q™ç§çŽ°è±¡ã€‚è¿™ž®†ä¼šäº§ç”Ÿéžå¸¸ä¸å¯é å’Œä¸ç²¾¼‹®çš„¾l“æžœåQŒæ‰€ä»¥å¿…™å»é‡‡å–一些措施防止这¿U情å†ëŠš„å‡ºçŽ°ã€‚æœ‰ä¸¤ç§æ–ÒŽ³•å¯ä»¥ä»Žè¿™¿U类型的¾l“果中获得精¼‹®çš„‹¹‹é‡å€¹{€‚如果测试å¯ä»¥è¿è¡Œç›¸å½“长的时é—ß_¼ˆæœ‰æ—¶æ˜¯å‡ ä¸ªå°æ—Óž¼Œå–决于用æˆïLš„æ“ä½œæŒç®‹çš„æ—¶é—ß_¼‰åQŒæœ€åŽç”±äºŽéšæœÞZº‹ä»¶çš„æœ¬æ€§ä‹Éç„Óž¼ŒæœåŠ¡å™¨çš„åžåé‡ä¼šè¢?/span> â€?/span> 拉åã^ â€?/span> 。或者,å¯ä»¥åªé€‰å–æ³¢åŞ中两个åã^æ¯ç‚¹ä¹‹é—´çš„æµ‹é‡å€¹{€‚该æ–ÒŽ³•的缺ç‚ÒŽ˜¯å¯ä»¥æ•获数æ®çš„æ—¶é—´éžå¸¸çŸ­ã€?/span>

性能规划‹¹‹è¯•

  对于性能规划¾cÕdž‹çš„æµ‹è¯•æ¥è¯ß_¼Œå…¶ç›®æ ‡æ˜¯æ‰‘Ö‡ºåQŒåœ¨ç‰¹å®šçš„环境下åQŒç»™å®šåº”用程åºçš„æ€§èƒ½å¯ä»¥è¾‘Öˆ°ä½•ç§½E‹åº¦ã€‚此时å¯é‡çŽ°æ€§å°±ä¸å¦‚在基准测试中那么é‡è¦äº†ï¼Œå› äØ“‹¹‹è¯•ä¸­é€šå¸¸éƒ½ä¼šæœ‰éšæœºå› å­ã€‚å¼•å…¥éšæœºå› å­çš„ç›®çš„æ˜¯äØ“äº†å°½é‡æ¨¡æ‹Ÿå…·æœ‰çœŸå®žç”¨æˆ¯‚´Ÿè½½çš„现实世界应用½E‹åºã€‚通常åQŒå…·ä½“的目标是找出系¾lŸåœ¨ç‰¹å®šçš„æœåŠ¡å™¨å“应旉™—´ä¸‹æ”¯æŒçš„当å‰ç”¨æˆ·çš„æœ€å¤§æ•°ã€‚例如,您å¯èƒ½æƒ³çŸ¥é“åQšå¦‚æžœè¦ä»?/span> 5 ¿U’或更少的å“应时间支æŒ?/span> 8,000 个当å‰ç”¨æˆøP¼Œéœ€è¦å¤šž®‘个æœåŠ¡å™¨ï¼Ÿè¦å›ž½{”这个问题,需è¦çŸ¥é“ç³»¾lŸçš„æ›´å¤šä¿¡æ¯ã€?/span>

  è¦ç¡®å®šç³»¾lŸçš„定w‡åQŒéœ€è¦è€ƒè™‘几个因素。通常åQŒæœåŠ¡å™¨çš„ç”¨æˆäh€ÀL•°éžå¸¸å¤§ï¼ˆä»¥å万计åQ‰ï¼Œä½†æ˜¯å®žé™…上,˜q™ä¸ªæ•°å­—òq¶ä¸èƒ½è¯´æ˜Žä»€ä¹ˆã€‚真正需è¦çŸ¥é“的是, ˜q™äº›ç”¨æˆ·ä¸­æœ‰å¤šå°‘æ˜¯åÆˆå‘与æœåŠ¡å™¨é€šä¿¡çš?/span> 。其‹Æ¡è¦çŸ¥é“的是åQ?/span> æ¯ä¸ªç”¨æˆ·çš?/span> â€?/span> 考虑旉™—´ â€?/span> 匙¯·æ±‚时间是多少 。这éžå¸¸é‡è¦åQ?/span> å› äØ“è€ƒè™‘æ—‰™—´­‘ŠçŸ­åQŒç³»¾lŸæ‰€èƒ½æ”¯æŒçš„òq¶å‘用户­‘Šå°‘ 。例如,如果用户的考虑旉™—´æ˜?/span> 1 ¿U’,那么¾pÈ»Ÿå¯èƒ½åªèƒ½æ”¯æŒæ•°ç™¾ä¸ªè¿™æ ïLš„òq¶å‘用户。但是,如果用户的考虑旉™—´æ˜?/span> 30 ¿U’,那么¾pÈ»Ÿåˆ™å¯èƒ½æ”¯æŒæ•°ä¸‡ä¸ª˜q™æ ·çš„åÆˆå‘ç”¨æˆøP¼ˆå‡å®š¼‹¬äšg和应用程åºéƒ½æ˜¯ç›¸åŒçš„åQ‰ã€‚在现实世界中,通常难以¼‹®å®šç”¨æˆ·çš„确切考虑旉™—´ã€‚è¿˜è¦æ³¨æ„,在现实世界中åQŒç”¨æˆ·ä¸ä¼šç²¾¼‹®åœ°æŒ‰ç…§é—´é𔿗‰™—´å‘出è¯äh±‚ã€?/span>

  于是ž®±å¼•å…¥äº†éšæœºæ€§ã€‚å¦‚æžœçŸ¥é“æ™®é€šç”¨æˆïLš„考虑旉™—´æ˜?/span> 5 ¿U’,误差ä¸?/span> 20% åQŒé‚£ä¹ˆåœ¨è®¾è®¡è´Ÿè²‹¹‹è¯•æ—Óž¼Œž®Þp¦¼‹®ä¿è¯äh±‚间的旉™—´ä¸?/span> 5× åQ?/span> 1 +/- 20% åQ‰ç§’。此外,å¯ä»¥åˆ©ç”¨ â€?/span> 调步 â€?/span> çš„ç†å¿µå‘è´Ÿè²åœºæ™¯ä¸­å¼•å…¥æ›´å¤šçš„éšæœºæ€§ã€‚它是这æ ïLš„åQšåœ¨ä¸€ä¸ªè™šæ‹Ÿç”¨æˆ·å®Œæˆä¸€æ•´å¥—的请求åŽåQŒè¯¥ç”¨æˆ·æš‚åœä¸€ä¸ªè®¾å®šçš„æ—‰™—´ŒDµï¼Œæˆ–者一个å°çš„éšæœºæ—¶é—´æ®µåQˆä¾‹å¦‚, 2× åQ?/span> 1 +/- 25% åQ‰ç§’åQ‰ï¼Œç„¶åŽå†ç‘ô¾l­æ‰§è¡Œä¸‹ä¸€å¥—请求。将˜q™ä¸¤¿UéšæœºåŒ–æ–ÒŽ³•˜q用到测试中åQŒå¯ä»¥æä¾›æ›´æŽ¥è¿‘于现实世界的场景ã€?/span>

  现在该进行实际的定w‡è§„划‹¹‹è¯•了。接下æ¥çš„问题是åQ?/span> 如何加è²ç”¨æˆ·ä»¥æ¨¡æ‹Ÿè´Ÿè½½çжæ€ï¼Ÿ 最好的æ–ÒŽ³•是模拟在高峰旉™—´ç”¨æˆ·ä¸ŽæœåŠ¡å™¨é€šä¿¡çš„çŠ¶å†?/span> 。这¿U用戯‚´Ÿè½½çŠ¶æ€æ˜¯åœ¨ä¸€ŒD‰|—¶é—´å†…逿­¥è¾‘Öˆ°çš„å—åQŸå¦‚果是åQŒåº”该ä‹Éç”?/span> ramp-up ¾cÕdž‹çš„æµ‹è¯•,æ¯éš”几秒增加 x 个用戗÷€‚或者,所有用æˆäh˜¯åœ¨ä¸€ä¸ªéžå¸¸çŸ­çš„æ—¶é—´å†…åŒæ—¶ä¸Žç³»¾lŸé€šä¿¡åQŸå¦‚果是˜q™æ ·åQŒå°±åº”该使用 flat ¾cÕdž‹çš„æµ‹è¯•,ž®†æ‰€æœ‰çš„ç”¨æˆ·åŒæ—¶åŠ è²åˆ°æœåŠ¡å™¨ã€‚ä¸¤¿Uä¸åŒç±»åž‹çš„‹¹‹è¯•会äñ”ç”Ÿæ²¡æœ‰å¯æ¯”性的ä¸åŒ‹¹‹è¯•。例如,如果˜q›è¡Œ ramp-up ¾cÕdž‹çš„æµ‹è¯•,¾pÈ»Ÿå¯ä»¥ä»?/span> 4 ¿U’或更短的å“应时间支æŒ?/span> 5,000 个用戗÷€‚而执è¡?/span> flat ‹¹‹è¯•åQŒæ‚¨ä¼šå‘玎ͼŒå¯¹äºŽ 5,000 ä¸ªç”¨æˆøP¼Œ¾pÈ»Ÿçš„åã^å‡å“应时间è¦å¤§äºŽ 4 ¿U’。这是由äº?/span> ramp-up ‹¹‹è¯•固有的ä¸å‡†ç¡®æ€§ä‹Éå…¶ä¸èƒ½æ˜¾½Cºç³»¾lŸå¯ä»¥æ”¯æŒçš„òq¶å‘用户的精¼‹®æ•°å­—。以门户应用½E‹åºä¸ÞZ¾‹åQŒéšç€é—¨æˆ·è§„模的扩大和集群规模的扩大,˜q™ç§ä¸ç¡®å®šæ€§å°±ä¼šéšä¹‹æ˜¾çްã€?/span>

  ˜q™ä¸æ˜¯è¯´ä¸åº”该ä‹Éç”?/span> ramp-up ‹¹‹è¯•。对于系¾lŸè´Ÿè½½åœ¨ä¸€ŒD‰|¯”较长的时间内¾~“慢增加的情况, ramp-up ‹¹‹è¯•效果˜q˜æ˜¯ä¸é”™çš„。这是因为系¾lŸèƒ½å¤Ÿéšç€æ—‰™—´ä¸æ–­è°ƒæ•´ã€‚如果ä‹É用快é€?/span> ramp-up ‹¹‹è¯•åQŒç³»¾lŸå°±ä¼šæ»žåŽï¼Œä»Žè€ŒæŠ¥å‘Šä¸€ä¸ªè¾ƒç›¸åŒç”¨æˆ·è´Ÿè²çš?/span> flat ‹¹‹è¯•低的å“应旉™—´ã€‚那么,什么是¼‹®å®šå®šw‡çš„æœ€å¥½æ–¹æ³•?¾l“åˆä¸¤ç§è´Ÿè²¾cÕdž‹çš„优点,òq¶è¿è¡Œä¸€¾pÕdˆ—的测试,ž®×ƒ¼šäº§ç”Ÿæœ€å¥½çš„¾l“果。例如, 首先使用 ramp-up ‹¹‹è¯•¼‹®å®š¾pÈ»Ÿå¯ä»¥æ”¯æŒçš„用戯‚Œƒå›´ã€‚确定了范围之åŽåQŒä»¥è¯¥èŒƒå›´å†…ä¸åŒçš„åÆˆå‘用戯‚´Ÿè½½è¿›è¡Œä¸€¾pÕdˆ—çš?/span> flat ‹¹‹è¯•åQŒæ›´¾_„¡¡®åœ°ç¡®å®šç³»¾lŸçš„定w‡ã€?/span>

渗入‹¹‹è¯•

  渗入‹¹‹è¯•是一¿U比较简å•的性能‹¹‹è¯•。渗入测试所需旉™—´è¾ƒé•¿åQŒå®ƒä½¿ç”¨å›ºå®šæ•°ç›®çš„åÆˆå‘用æˆähµ‹è¯•ç³»¾lŸçš„æ€ÖM½“å¥å£®æ€§ã€‚这些测试将会通过内存泄æ¼ã€å¢žåŠ çš„åžƒåœ¾æ”‰™›† (GC) 或系¾lŸçš„其他问题åQŒæ˜¾½Cºå› é•¿æ—¶é—´è¿è¡Œè€Œå‡ºçŽ°çš„ä»ÖM½•性能é™ä½Žã€‚测试è¿è¡Œçš„æ—‰™—´­‘Šä¹…åQŒæ‚¨å¯¹ç³»¾lŸå°±­‘Šäº†è§£ã€‚è¿è¡Œä¸¤‹Æ¡æµ‹è¯•是一个好ä¸ÀL„ —â€?/span> 一‹Æ¡ä‹É用较低的用户负è²åQˆè¦åœ¨ç³»¾lŸå®¹é‡ä¹‹ä¸‹ï¼Œä»¥ä¾¿ä¸ä¼šå‡ºçŽ°æ‰§è¡Œé˜Ÿåˆ—åQ‰ï¼Œä¸€‹Æ¡ä‹É用较高的负è²åQˆä»¥ä¾¿å‡ºçŽ°ç§¯æžçš„æ‰§è¡Œé˜Ÿåˆ—åQ‰ã€?/span>

  ‹¹‹è¯•应该˜q行几天的时é—ß_¼Œä»¥ä¾¿çœŸæ­£äº†è§£åº”用½E‹åºçš„长期å¥åºïLжå†üc€‚覼‹®ä¿‹¹‹è¯•的应用程åºå°½å¯èƒ½æŽ¥è¿‘现实世界的情况,用户场景也è¦é€¼çœŸåQˆè™šæ‹Ÿç”¨æˆ·é€šè¿‡åº”用½E‹åºå¯ÆDˆªçš„æ–¹å¼è¦ä¸ŽçŽ°å®žä¸–ç•Œä¸€è‡ß_¼‰åQŒä»Žè€Œæµ‹è¯•应用程åºçš„全部ç‰ÒŽ€§ã€‚ç¡®ä¿è¿è¡Œäº†æ‰€æœ‰å¿…éœ€çš„ç›‘æŽ§å·¥å…øP¼Œä»¥ä¾¿¾_„¡¡®åœ°ç›‘‹¹‹åƈ跟踪问题ã€?/span>

å³°è°·‹¹‹è¯•

  峰谷‹¹‹è¯•兼有定w‡è§„划 ramp-up ¾cÕdž‹‹¹‹è¯•和渗入测试的特å¾ã€‚其目标æ˜?/span> ¼‹®å®šä»Žé«˜è´Ÿè²åQˆä¾‹å¦‚ç³»¾lŸé«˜å³°æ—¶é—´çš„è´Ÿè²åQ‰æ¢å¤ã€è{为几乎空闌Ӏ然åŽå†æ”€å‡åˆ°é«˜è´Ÿè½½ã€å†é™ä½Žçš„能åŠ?/span> ã€?/span>

  实现˜q™ç§‹¹‹è¯•的最好方法就是,˜q›è¡Œä¸€¾pÕdˆ—的快é€?/span> ramp-up ‹¹‹è¯•åQŒç‘ô之以一ŒD‰|—¶é—´çš„òq³ç¨³çжæ€ï¼ˆå–决于业务需求)åQŒç„¶åŽæ€¥å‰§é™ä½Žè´Ÿè²åQŒæ­¤æ—¶å¯ä»¥ä×o¾pÈ»ŸòqÏx¯ä¸€ä¸‹ï¼Œç„¶åŽå†è¿›è¡Œå¿«é€Ÿçš„ ramp-up åQ›åå¤é‡å¤è¿™ä¸ªè¿‡½E‹ã€‚这样å¯ä»¥ç¡®å®šä»¥ä¸‹äº‹™å¹ï¼š½W¬äºŒ‹Æ¡é«˜å³°æ˜¯å¦é‡çŽ°ç¬¬ä¸€‹Æ¡çš„å³°å€û|¼Ÿå…¶åŽçš„æ¯‹Æ¡é«˜å³°æ˜¯½{‰äºŽ˜q˜æ˜¯å¤§äºŽ½W¬ä¸€‹Æ¡çš„å³°å€û|¼Ÿåœ¨æµ‹è¯•过½E‹ä¸­åQŒç³»¾lŸæ˜¯å¦æ˜¾½CÞZº†å†…å­˜æˆ?/span> GC 性能é™ä½Žçš„æœ‰å…Œ™¿¹è±¡ï¼Ÿ‹¹‹è¯•˜q行åQˆä¸åœåœ°é‡å¤ â€?/span> å³°å€?/span> / ½Iºé—² â€?/span> 周期åQ‰çš„æ—‰™—´­‘Šé•¿åQŒæ‚¨å¯¹ç³»¾lŸçš„长期å¥åº·çж况ž®Þp¶Šäº†è§£ã€?/span>

]]>
软äšg‹¹‹è¯•常识http://www.aygfsteel.com/jessica/archive/2006/03/30/38266.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Thu, 30 Mar 2006 07:16:00 GMThttp://www.aygfsteel.com/jessica/archive/2006/03/30/38266.htmlhttp://www.aygfsteel.com/jessica/comments/38266.htmlhttp://www.aygfsteel.com/jessica/archive/2006/03/30/38266.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/38266.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/38266.html软äšgå¼€å‘和使用的历å²å·²¾lç•™¾l™äº†æˆ‘们很多ç”׃ºŽè½¯äšg¾~ºé™·è€Œå¯¼è‡´çš„巨大财力ã€ç‰©åŠ›æŸå¤Þqš„¾l验教训。这些ç»éªŒæ•™è®­è¿«ä½¿æˆ‘们这些测试工½E‹å¸ˆä»¬å¿…™å»é‡‡å–强有力的检‹¹‹æŽªæ–½æ¥‹‚€‹¹‹æœªå‘现的éšè—的软äšg¾~ºé™·ã€?/span>


生äñ”软äšg的最¾lˆç›®çš„æ˜¯ä¸ÞZº†æ»¡èƒöå®¢æˆ·éœ€æ±‚ï¼Œæˆ‘ä»¬ä»¥å®¢æˆ·éœ€æ±‚ä½œä¸ø™¯„判èÊYä»¶è´¨é‡çš„æ ‡å‡†åQŒè®¤ä¸ø™ÊYä»¶ç¼ºé™øP¼ˆ Software Bug åQ‰çš„具体å«ä¹‰åŒ…括下é¢å‡ ä¸ªå› ç´ åQ?/span>

â€?/span>    软äšg未达到客户需求的功能和性能åQ?/span>

â€?/span>    软äšg­‘…出客户需求的范围åQ?/span>

â€?/span>    软äšg出现客户需求ä¸èƒ½å®¹å¿çš„错误åQ?/span>

â€?/span>    软äšgçš„ä‹É用未能符åˆå®¢æˆïLš„习惯和工作环境ã€?/span>

考虑到设计等斚w¢çš„因素,我们˜q˜å¯ä»¥è®¤ä¸ø™ÊY件缺陯‚¿˜å¯ä»¥åŒ…括软äšg设计ä¸ç¬¦åˆè§„范,未能在特定的æ¡äšgåQˆèµ„金ã€èŒƒå›´ç­‰åQ‰è¾¾åˆ°æœ€ä½³ç­‰ã€‚坿ƒœçš„æ˜¯ï¼Œæˆ‘们中的很多人更們֑于把软äšg¾~ºé™·çœ‹æˆ˜q行时出现问题上æ¥ï¼Œè®¤äؓ软äšg‹¹‹è¯•ä»…é™äºŽç¨‹åºæäº¤ä¹‹åŽã€?/span>

在目å‰çš„国内环境下,我们几乎看ä¸åˆ°å®Œæ•´å‡†¼‹®çš„客户需求说明书åQŒåР以客æˆïLš„需求时时在å˜ï¼Œ˜q½æ±‚完美的测试å˜å¾—ä¸å¤ªå¯èƒ½ã€‚因此作ä¸ÞZ¸€ä¸ªä¼˜å¼‚çš„‹¹‹è¯•人员åQŒè¿½æ±‚èÊYä»¶è´¨é‡çš„完美固然是我们的宗旨åQŒä½†æ˜¯æ˜Ž¼‹®èÊYä»¶æµ‹è¯•çŽ°å®žä¸Žç†æƒ³çš„å·®è·ï¼Œåœ¨èÊY件测试中学会å–èˆå’Œè®©æ­¥ï¼Œå¯¹èÊY件测试是有百益而无一弊的ã€?/span>

䏋颿˜¯ä¸€äº›èÊY件测试的常识åQŒå¯¹˜q™äº›å¸¸è¯†çš„ç†è§£å’Œ˜q用ž®†æœ‰åŠ©äºŽæˆ‘ä»¬åœ¨è¿›è¡ŒèÊY件测试时能够更好的把æ¡èÊY件测试的ž®ºåº¦ã€?/span>

â€?/span>    ‹¹‹è¯•是ä¸å®Œå…¨çš„(‹¹‹è¯•ä¸å®Œå…¨ï¼‰

很显ç„Óž¼Œç”׃ºŽè½¯äšg需求的ä¸å®Œæ•´æ€§ã€èÊY仉™€»è¾‘è·¯å¾„çš„ç»„åˆæ€§ã€è¾“入数æ®çš„大釿€§åоl“果多样性等因素åQŒå“ªæ€•是一个æžå…¶ç®€å•çš„½E‹åºåQŒè¦æƒ³ç©·ž®½æ‰€æœ‰é€»è¾‘路径åQŒæ‰€æœ‰è¾“入数æ®å’ŒéªŒè¯æ‰€æœ‰ç»“果是éžå¸¸å›°éš¾çš„一件事情。我们ä‹D一个简å•的例å­åQŒæ¯”如说求两个整数的最大公¾U¦æ•°ã€‚其输入信æ¯ä¸ÞZ¸¤ä¸ªæ­£æ•´æ•°ã€‚但是如果我们将整个正整数域的数字进行一番测试的è¯ï¼Œä»Žå…¶æ•°ç›®çš„æ— é™æ€§æˆ‘们便å¯è¯æ˜Žæ˜¯˜q™æ ·çš„æµ‹è¯•在实际生活中是行ä¸é€šçš„åQŒå³ä¾¿æŸä¸€å¤©æˆ‘们能够穷ž®½è¯¥½E‹åºåQŒåªæ€•我们乃è‡Ïxˆ‘们的å­å­™éƒ½æ—©å·²ä½œå¤äº†ã€‚äØ“æ­¤ä½œä¸ø™ÊY件测试,我们一般采用等ä»ïL±»å’Œè¾¹ç•Œå€¼åˆ†æžç­‰æŽªæ–½æ¥è¿›è¡Œå®žé™…的软äšg‹¹‹è¯•åQŒå¯»æ‰¾æœ€ž®ç”¨ä¾‹é›†åˆæˆä¸ºæˆ‘们精½Ž€‹¹‹è¯•夿‚性的一æ¡å¿…¾l之é“ã€?/span>

â€?/span>    ‹¹‹è¯•å…ähœ‰å…疫性(软äšg¾~ºé™·å…疫性)

软äšg¾~ºé™·ä¸Žç—…æ¯’ä¸€æ ·å…·æœ‰å¯æ€•çš„ â€?/span> å…ç–«æ€?/span> â€?/span> åQŒæµ‹è¯•äh员对光™‡‡ç”¨çš„‹¹‹è¯•­‘Šå¤šåQŒå…¶å…疫能力ž®Þp¶Šå¼ºï¼Œå¯ÀL‰¾æ›´å¤šè½¯äšg¾~ºé™·ž®±æ›´åŠ å›°éš¾ã€‚ç”±æ•°å­¦ä¸Šçš„æ¦‚çŽ‡è®ºæˆ‘ä»¬å¯ä»¥æŽ¨å‡ø™¿™ä¸€¾l“论。å‡è®¾ä¸€ä¸?/span> 50000 行的½E‹åºä¸­æœ‰ 500 个èÊYä»¶ç¼ºé™·åÆˆä¸”è¿™äº›èÊY仉™”™è¯¯åˆ†å¸ƒæ—¶å‡åŒ€çš„ï¼Œåˆ™æ¯ 100 行å¯ä»¥æ‰¾åˆîC¸€ä¸ªèÊY件缺陗÷€‚我们å‡è®¾æµ‹è¯•äh员用æŸç§æ–ÒŽ³•花在查找软äšg¾~ºé™·çš„ç²¾åŠ›äØ“ X ž®æ—¶ /100 行。照此推½Ž—,软äšg存在 500 个缺é™äh—¶åQŒæˆ‘们查找一个èÊY件缺陷需è¦?/span> X ž®æ—¶åQŒå½“软äšgåªå­˜åœ?/span> 5 个错误时åQŒæˆ‘ä»¬æ¯æŸ¥æ‰¾ä¸€ä¸ªèÊY件缺陷需è¦?/span> 100X ž®æ—¶ã€‚å®žè·µè¯æ˜Žï¼Œå®žé™…的测试过½E‹æ¯”上é¢çš„å‡è®¾æ›´ä¸ø™‹›åˆ»ï¼Œä¸ºæ­¤æˆ‘们必须更æ¢ä¸åŒçš„æµ‹è¯•æ–¹å¼å’Œ‹¹‹è¯•æ•°æ®ã€‚该例存q˜è¯´æ˜Žäº†åœ¨èÊY件测试中采用å•一的方法ä¸èƒ½é«˜æ•ˆå’Œå®Œå…¨çš„é’ˆå¯Òމ€æœ‰èÊYä»¶ç¼ºé™øP¼Œå› æ­¤è½¯äšg‹¹‹è¯•应该ž®½å¯èƒ½çš„多采用多¿U途径˜q›è¡Œ‹¹‹è¯•ã€?/span>

â€?/span>    ‹¹‹è¯•æ˜?/span> â€?/span> 泛型概念 â€?/span> åQˆå…¨½E‹æµ‹è¯•)

我一直å对èÊY件测试仅存在于程åºå®Œæˆä¹‹åŽã€‚如果啾U¯çš„åªå°†½E‹åºè®¾è®¡é˜¶æ®µåŽçš„阶段¿UîC¹‹ä¸ø™ÊY件测试的è¯ï¼Œéœ€æ±‚阶ŒDµå’Œè®¾è®¡é˜¶æ®µçš„缺陷äñ”生的攑֤§æ•ˆåº”会加大。这éžå¸¸ä¸åˆ©äºŽä¿è¯èÊYä»¶è´¨é‡ã€‚需求缺陗÷€è®¾è®¡ç¼ºé™·ä¹Ÿæ˜¯èÊYä»¶ç¼ºé™øP¼Œè®îC½ â€?/span> 软äšg¾~ºé™·å…ähœ‰ç”Ÿè‚²èƒ½åŠ› â€?/span> 。èÊY件测试应该跨­‘Šæ•´ä¸ªèÊY件开呿µ½E‹ã€‚需求验è¯ï¼ˆè‡ªæ£€åQ‰å’Œè®¾è®¡éªŒè¯åQˆè‡ª‹‚€åQ‰ä¹Ÿå¯ä»¥½Ž—作软äšg‹¹‹è¯•åQˆå¾è®®ç§°ä¸ºï¼šéœ€æ±‚测试和设计‹¹‹è¯•åQ‰çš„一¿U。èÊY件测试应该是一个泛型概念,æ¶ëŠ›–整个软äšg生命周期åQŒè¿™æ äh‰èƒ½ç¡®ä¿å‘¨æœŸçš„æ¯ä¸ªé˜¶æ®µ¼›å¾—赯‚€ƒéªŒã€‚åŒæ—¶æµ‹è¯•本íw«ä¹Ÿéœ€è¦æœ‰½W¬ä¸‰è€…进行评伎ͼˆä¿¡æ¯¾pÈ»Ÿå®¡è®¡å’ŒèÊYä»¶å·¥½E‹ç›‘ç†ï¼‰åQŒå³‹¹‹è¯•本èín也应当被‹¹‹è¯•åQŒä»Žè€Œç¡®ä¿æµ‹è¯•自íw«çš„å¯é æ€§å’Œé«˜æ•ˆæ€§ã€‚å¦åˆ™è‡ªíw«ä¸æ­£ï¼Œéš¾ä»¥æœähã€?/span>

å¦å¤–˜q˜éœ€æŒ‡å‡ºçš„æ˜¯è½¯äšg‹¹‹è¯•是æé«˜èÊYä»¶äñ”å“è´¨é‡çš„å¿…è¦æ¡äšg而éžå……分æ¡äšgåQŒèÊY件测试是æé«˜äº§å“è´¨é‡æœ€ç›´æŽ¥ã€æœ€å¿«æ·çš„æ‰‹ŒDµï¼Œä½†å†³ä¸æ˜¯ä¸€ä¸ªæ ¹æœ¬æ‰‹ŒDüc€?/span>

�/span>   80-20 原则

80%
çš„èÊY件缺陷常常生存在软äšg 20% 的空间里。这个原则告诉我们,如果你想使èÊY件测试有效地è¯ï¼Œè®îC½å¸¸å¸¸å…‰äÍå…‰™«˜å±å¤šå?/span> â€?/span> 地段 â€?/span> 。在那里å‘现软äšg¾~ºé™·çš„å¯èƒ½æ€§ä¼šå¤§çš„多。这一原则对于软äšg‹¹‹è¯•人员æé«˜‹¹‹è¯•效率åŠç¼ºé™·å‘现率有ç€é‡å¤§çš„æ„ä¹‰ã€‚èªæ˜Žçš„‹¹‹è¯•人员会根æ®è¿™ä¸ªåŽŸåˆ™å¾ˆå¿«æ‰¾å‡ø™¾ƒå¤šçš„¾~ºé™·è€Œæ„šè ¢çš„‹¹‹è¯•人员å´ä»åœ¨æ˜O无目的地到处æœå¯»ã€?/span>

80-20
原则的å¦å¤–一¿U情冉|˜¯åQŒæˆ‘们在¾pÈ»Ÿåˆ†æžã€ç³»¾lŸè®¾è®¡ã€ç³»¾lŸå®žçŽ°é˜¶ŒD늚„å¤å®¡åQŒæµ‹è¯•工作中能够å‘现和é¿å…?/span> 80% çš„èÊYä»¶ç¼ºé™øP¼Œæ­¤åŽçš„ç³»¾lŸæµ‹è¯•能够帮助我们找出剩余缺陷中çš?/span> 80% åQŒæœ€åŽçš„ 5% çš„èÊY件缺陷å¯èƒ½åªæœ‰åœ¨¾pÈ»Ÿäº¤ä»˜ä½¿ç”¨åŽç”¨æˆïL»˜q‡å¤§èŒƒå›´ã€é•¿æ—‰™—´ä½¿ç”¨åŽæ‰ä¼šæ›éœ²å‡ºæ¥ã€‚因䏸™ÊY件测试åªèƒ½å¤Ÿä¿è¯ž®½å¯èƒ½å¤šåœ°å‘现èÊYä»¶ç¼ºé™øP¼Œå´æ— æ³•ä¿è¯èƒ½å¤Ÿå‘现所有的软äšg¾~ºé™·ã€?/span>

80-20
原则˜q˜èƒ½å映到èÊY件测试的自动化方é¢ä¸Šæ¥ï¼Œå®žè·µè¯æ˜Ž 80% çš„èÊY件缺陷å¯ä»¥å€ŸåŠ©äººå·¥‹¹‹è¯•而å‘玎ͼŒ 20% çš„èÊY件缺陷å¯ä»¥å€ŸåŠ©è‡ªåŠ¨åŒ–æµ‹è¯•èƒ½å¤Ÿå¾—ä»¥å‘现。由于这二者间å…ähœ‰äº¤å‰çš„部分,因此ž®šæœ‰ 5% å·¦å³çš„èÊY件缺陷需è¦é€šè¿‡å…¶ä»–方弘q›è¡Œå‘现和修正ã€?/span>

�/span>    为效益而测�/span>

ä¸ÞZ»€ä¹ˆæˆ‘们è¦å®žæ–½è½¯äšg‹¹‹è¯•åQŒæ˜¯ä¸ÞZº†æé«˜™å¹ç›®çš„è´¨é‡æ•ˆç›Šæœ€¾lˆä»¥æé«˜™å¹ç›®çš„æ€ÖM½“æ•ˆç›Šã€‚äØ“æ­¤æˆ‘ä»¬ä¸éš‘Ö¾—出我们在实施软äšg‹¹‹è¯•应该掌æ¡çš„度。èÊY件测试应该在软äšg‹¹‹è¯•æˆæœ¬å’ŒèÊYä»¶è´¨é‡æ•ˆç›Šä¸¤è€…间扑ֈ°ä¸€ä¸ªåã^衡点。这个åã^衡点ž®±æ˜¯æˆ‘们在实施èÊY件测试时应该éµå®ˆçš„åº¦ã€‚å•æ–šw¢çš„追求都必然æŸå®³è½¯äšg‹¹‹è¯•存在的ä­h值和æ„义。一般说æ¥ï¼Œåœ¨èÊY件测试中我们应该ž®½é‡åœîC¿æŒèÊYä»¶æµ‹è¯•ç®€å•æ€§ï¼Œåˆ‡å‹¿ž®†èÊYä»¶æµ‹è¯•è¿‡åº¦å¤æ‚化åQŒæ‹¿ç‰©ç†å­¦å®¶çˆ±å› æ–¯å¦çš„è¯è¯´å°±æ˜¯ï¼š Keep it simple but not too simple ã€?/span>

â€?/span>    ¾~ºé™·çš„å¿…ç„¶æ€?/span>

软äšg‹¹‹è¯•中,ç”׃ºŽé”™è¯¯çš„å…³è”æ€§ï¼Œòq¶ä¸æ˜¯æ‰€æœ‰çš„软äšg¾~ºé™·éƒ½èƒ½å¤Ÿå¾—以修å¤ã€‚æŸäº›èÊY件缺陯‚™½ç„¶èƒ½å¤Ÿå¾—以修å¤ä½†åœ¨ä¿®å¤çš„˜q‡ç¨‹ä¸­æˆ‘们会隑օ引入新的软äšg¾~ºé™·ã€‚很多èÊYä»¶ç¼ºé™·ä¹‹é—´æ˜¯ç›æ€º’矛盾的,一个矛盄¡š„消失必然会引å‘å¦å¤–一个矛盄¡š„产生。比如我们在解决通用性的¾~ºé™·åŽå¾€å¾€ä¼šå¸¦æ¥æ‰§è¡Œæ•ˆçŽ‡ä¸Šçš„ç¼ºé™—÷€‚更何况在缺é™ïLš„修夘q‡ç¨‹ä¸­ï¼Œæˆ‘们常常˜q˜ä¼šå—æ—¶é—´ã€æˆæœ¬ç­‰æ–šw¢çš„é™åˆ¶å› æ­¤æ— æ³•有效ã€å®Œæ•´åœ°ä¿®å¤æ‰€æœ‰çš„软äšg¾~ºé™·ã€‚因此评估èÊY件缺é™ïLš„é‡è¦åº¦ã€åª„å“范å›ß_¼Œé€‰æ‹©ä¸€ä¸ªæŠ˜ä¸­çš„æ–ÒŽ¡ˆæˆ–是从éžè½¯äšg的因素(比如æå‡¼‹¬äšg性能åQ‰è€ƒè™‘软äšg¾~ºé™·æˆäؓ我们在é¢å¯¹èÊY件缺é™äh—¶ä¸€ä¸ªå¿…™åÈ›´é¢çš„事实ã€?/span>

â€?/span>    软äšg‹¹‹è¯•必须有预期结æž?/span>

没有预期¾l“果的测试是ä¸å¯ç†å–»çš„。èÊY件缺é™äh˜¯¾l过å¯Òޝ”而得出æ¥çš„。这正如没有标准无法˜q›è¡Œåº¦é‡ä¸€æ —÷€‚如果我们事先ä¸çŸ¥é“或是无法肯定预期的结果,我们必然无法了解‹¹‹è¯•正确性。这很容易然人感觉如盲äh摸象一般,ä¸å°‘‹¹‹è¯•人员常常凭借自íw«çš„æ„Ÿè§‰åŽ»è¯„åˆ¤èÊY件缺é™ïLš„å‘生åQŒå…¶¾l“果往往是把似是而éžçš„东西作为正¼‹®çš„¾l“æžœæ¥åˆ¤æ–­ï¼Œå› æ­¤å¸¸å¸¸å‡ºçŽ°è¯¯æµ‹çš„çŽ°è±¡ã€?/span>

â€?/span>    软äšg‹¹‹è¯•çš„æ„ä¹?/span> - 事åŽåˆ†æž

软äšg‹¹‹è¯•的目的å•啿˜¯å‘现¾~ºé™·˜q™ä¹ˆ½Ž€å•å—åQŸå¦‚果是 â€?/span> æ˜?/span> â€?/span> çš„è¯åQŒæˆ‘æ•¢ä¿è¯ï¼Œ¾cÖM¼¼çš„èÊY件缺陷在下一‹Æ¡æ–°™å¹ç›®çš„èÊY件测试中˜q˜ä¼šå‘生。å¤è¯­è¯´å¾—好åQ?/span> â€?/span> ä¸çŸ¥é“历å²çš„人必然会é‡è¹ˆè¦†è¾™ â€?/span> 。没有对软äšg‹¹‹è¯•¾l“æžœ˜q›è¡Œè®¤çœŸçš„分æžï¼Œæˆ‘们ž®±æ— æ³•了解缺陷å‘生的原因和应å¯ÒŽŽªæ–½ï¼Œ¾l“果是我们ä¸å¾—ä¸è€—费的大é‡çš„人力和物力æ¥å†æ¬¡æŸ¥æ‰¾è½¯äšg¾~ºé™·ã€‚å¾ˆå¯æƒœåQŒç›®å‰å¤§å¤šæµ‹è¯•团队都没有æ„识到这一点,‹¹‹è¯•æŠ¥å‘Šä¸­ç¼ºä¹æµ‹è¯•结果分æžè¿™ä¸€çŽ¯èŠ‚ã€?/span>

¾l“论åQ?/span>

软äšg‹¹‹è¯•是一个需è¦?/span> â€?/span> 自觉 â€?/span> 的过½E‹ï¼Œä½œäؓ一个测试äh员,é‡äº‹æ²‰ç€åQŒæŠŠæŒå°ºåº¦ï¼Œä»Žæ ¹æœ¬ä¸Šåº”对软äšg‹¹‹è¯•æœ‰ç€æ­£ç¡®çš„认识,希望本文对读者对软äšg‹¹‹è¯•的认识有所帮助ã€?/span>



æ‹æ‹å†¬å­£ 2006-03-30 15:16 å‘表评论
]]>
瓉™¢ˆå®šä¹‰http://www.aygfsteel.com/jessica/archive/2006/03/29/38091.htmlæ‹æ‹å†¬å­£æ‹æ‹å†¬å­£Wed, 29 Mar 2006 09:01:00 GMThttp://www.aygfsteel.com/jessica/archive/2006/03/29/38091.htmlhttp://www.aygfsteel.com/jessica/comments/38091.htmlhttp://www.aygfsteel.com/jessica/archive/2006/03/29/38091.html#Feedback0http://www.aygfsteel.com/jessica/comments/commentRss/38091.htmlhttp://www.aygfsteel.com/jessica/services/trackbacks/38091.html

CPU é™åˆ¶

vmstat

å½?%user+%sys ­‘…过 80% æ—?

¼‚盘 I/O é™åˆ¶

vmstat

å½?%iowait ­‘…过åQ?AIX4.3.3 或更高版本) 40% æ—?

应用¼‚盘é™åˆ¶

iostat

å½?%tm_act ­‘…过 70% æ—?

虚存½Iºé—´ž®?

lsps-a

当分™å늩ºé—´çš„‹zÕdŠ¨çŽ‡è¶…˜q?70% æ—?

æ¢é¡µé™åˆ¶

iostat
vmstat

虚存逻辑å?%tm_act ­‘…过 I/O åQ?iostat åQ‰çš„ 30% åQŒæ¿€‹zÈš„虚存率超˜q?CPU åQ?vmstat åQ‰æ•°é‡çš„ 10 倿—¶

¾pÈ»Ÿå¤±æ•ˆ

vmstatsar

™åµäº¤æ¢å¢žå¤§ã€?CPU ½{‰å¾…òq¶è¿è¡Œé˜Ÿåˆ?


æ‹æ‹å†¬å­£ 2006-03-29 17:01 å‘表评论
]]>
应用软äšg¾U§åˆ«çš„æµ‹è¯•指æ ?/title><link>http://www.aygfsteel.com/jessica/archive/2006/03/29/38038.html</link><dc:creator>æ‹æ‹å†¬å­£</dc:creator><author>æ‹æ‹å†¬å­£</author><pubDate>Wed, 29 Mar 2006 06:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/jessica/archive/2006/03/29/38038.html</guid><wfw:comment>http://www.aygfsteel.com/jessica/comments/38038.html</wfw:comment><comments>http://www.aygfsteel.com/jessica/archive/2006/03/29/38038.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jessica/comments/commentRss/38038.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jessica/services/trackbacks/38038.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <b> <span style="FONT-FAMILY: 宋体">è”æœºäº¤æ˜“¾cÈš„执行情况<span lang="EN-US">    </span></span> </b> <b> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <?xml:namespace prefix = o /?> <o:p> </o:p> </span> </b> </p> <p class="07432955">    交易的åã^å‡å“应时é—ß_¼ˆæœŸæœ›å€û|¼š<span lang="EN-US"> <15s </span>åQ?/p> <p class="07432955">    交易的最大å“应时é—ß_¼ˆæœŸæœ›å€û|¼š<span lang="EN-US"> <30s </span>åQ?</p> <p class="07432955">    òq›_‡æ¯ç§’处ç†äº¤æ˜“æ•°é‡åQˆåˆ†åˆ«è®°å½•å•使—¶é—´å†…æˆåŠŸã€å¤±è´¥å’Œåœæ­¢çš„交易数é‡ï¼‰ </p> <p class="07432955">    交易æˆåŠŸçŽ?åQˆæœŸæœ›å€û|¼š<span lang="EN-US"> >95% </span>åQ?/p> <p class="07432955"> <span>    ä¸åŒòq¶å‘用户数的状况下的上述记录å€?/span> <span lang="EN-US" style="FONT-SIZE: 12pt"> <span lang="EN-US"> <o:p> </o:p> </span> <br /> <o:p> </o:p> </span> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <b> <span style="FONT-FAMILY: 宋体">‹¹‹è¯•¾l“æžœåˆ†æžæƒ…况<span lang="EN-US">    </span></span> </b> <b> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <o:p> </o:p> </span> </b> </p> <p class="07432955">    å•ç¬”è®°å½•çš„å¤„ç†æ—¶é—ß_¼ˆæœŸæœ›å€û|¼š<span lang="EN-US"> <15s </span>åQ?</p> <p class="07432955">    å•使—‰™—´å†…的处ç†äº¤æ˜“½W”æ•°åQˆæœŸæœ›å€û|¼š <span lang="EN-US">>10 </span>个) </p> <p class="07432955">    æŸä¸ªæ—‰™—´ŒDµå†…çš„äº¤æ˜“å¤„ç†æ•°é‡?</p> <p class="07432955">    å•笔能处ç†çš„æœ€å¤§æ•°æ®é‡ </p> <p class="07432955">    在æ¯ä¸ªäº¤æ˜“处ç†ä¸­æœ€å¤§ï¼ˆæœ€è€—æ—¶åQ‰çš„æ¨¡å— </p> <p class="07432955">    在ä¸åŒæ•°é‡çš„‹¹‹è¯•æ•°æ®åŸºç¡€ä¸Šçš„上述记录å€?br /><span lang="EN-US" style="FONT-SIZE: 12pt"><o:p> </o:p></span></p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <b> <span style="FONT-FAMILY: 宋体">¾|‘络¾U§åˆ«çš„æµ‹è¯•指æ ?span lang="EN-US">    </span></span> </b> <b> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <o:p> </o:p> </span> </b> </p> <p class="07432955">    åžåé‡ï¼šå•使—‰™—´å†…网¾lœä¼ è¾“æ•°æ®é‡ </p> <p class="07432955">    冲çªçŽ‡ï¼šåœ¨ä»¥å¤ªç½‘ä¸Šç›‘‹¹‹åˆ°çš„æ¯¿U’冲½Hæ•°<br /><span lang="EN-US" style="FONT-SIZE: 12pt"><o:p> </o:p></span></p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <b> <span style="FONT-FAMILY: 宋体">æ“作¾pÈ»Ÿ¾U§åˆ«çš„æµ‹è¯•指æ ?/span> </b> <b> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <span lang="EN-US"> <o:p> </o:p> </span> </span> </b> </p> <p class="07432955">    ˜q›ç¨‹<span lang="EN-US"> / </span>¾U¿ç¨‹äº¤æ¢çŽ‡ï¼š˜q›ç¨‹å’Œçº¿½E‹ä¹‹é—´æ¯¿U’äº¤æ¢æ¬¡æ•?</p> <p class="07432955">    <span lang="EN-US">CPU </span>利用率:å?span lang="EN-US"> CPU </span>å ç”¨çŽ‡ï¼ˆåQ…) </p> <p class="07432955">    ¾pÈ»Ÿ<span lang="EN-US"> CPU </span>利用率:¾pÈ»Ÿçš?span lang="EN-US"> CPU </span>å ç”¨çŽ‡ï¼ˆåQ…) </p> <p class="07432955">    用户<span lang="EN-US"> CPU </span>利用率:用户模å¼ä¸‹çš„<span lang="EN-US"> CPU </span>å ç”¨çŽ‡ï¼ˆåQ…) </p> <p class="07432955">    ¼‚盘交æ¢çŽ‡ï¼š¼‚盘交æ¢é€Ÿçއ </p> <p class="07432955">    中断速率åQ?span lang="EN-US"> CPU </span>æ¯ç§’处ç†çš„中断数 </p> <p class="07432955">    è¯Õd…¥å†…å­˜™åµé€ŸçއåQšç‰©ç†å†…存中æ¯ç§’è¯Õd…¥å†…å­˜™å늚„æ•°ç›® </p> <p class="07432955">    写出内存™åµé€ŸçއåQšæ¯¿U’从物ç†å†…存写到™å‰|–‡ä»¶ä¸­çš„内存页数目或者从物ç†å†…存中删掉的内存™å‰|•°ç›?</p> <p class="07432955">    内存™åµäº¤æ¢é€ŸçއåQšæ¯¿U’写入内存页和从物ç†å†…存中读出页的个æ•?</p> <p class="07432955">    ˜q›ç¨‹å…¥äº¤æ¢çއåQšäº¤æ¢åŒºè¾“入的进½E‹æ•°ç›?</p> <p class="07432955">    ˜q›ç¨‹å‡ÞZº¤æ¢çއåQšäº¤æ¢åŒºè¾“出的进½E‹æ•°ç›?br /><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <b> <span style="FONT-FAMILY: 宋体">æ•°æ®åº“çñ”别的‹¹‹è¯•指标</span> </b> <b> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <span lang="EN-US"> <o:p> </o:p> </span> </span> </b> </p> <p class="07432955">    æ•°æ®åº“çš„òq¶å‘˜qžæŽ¥æ•ŽÍ¼šå®¢æˆ·ç«¯çš„æœ€å¤§è¿žæŽ¥æ•° </p> <p class="07432955">    æ•°æ®åº“所资æºçš„ä‹É用数é‡?span style="FONT-SIZE: 12pt"><span lang="EN-US"><o:p></o:p></span></span></p> <p class="07432955"> <span lang="EN-US" style="FONT-SIZE: 12pt"> <o:p> </o:p> </span> </p> <p class="MsoNormal"> <span lang="EN-US">from mercury<o:p></o:p></span> </p> <p class="MsoNormal"> <span lang="EN-US"> <o:p> </o:p> </span> </p><img src ="http://www.aygfsteel.com/jessica/aggbug/38038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jessica/" target="_blank">æ‹æ‹å†¬å­£</a> 2006-03-29 14:06 <a href="http://www.aygfsteel.com/jessica/archive/2006/03/29/38038.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">Ô­ÑôÏØ</a>| <a href="http://" target="_blank">ËÕÄáÌØÓÒÆì</a>| <a href="http://" target="_blank">·áÏØ</a>| <a href="http://" target="_blank">Î÷ÁÖÏØ</a>| <a href="http://" target="_blank">·ðѧ</a>| <a href="http://" target="_blank">Íò°²ÏØ</a>| <a href="http://" target="_blank">³ÉÎäÏØ</a>| <a href="http://" target="_blank">Í­ÁºÏØ</a>| <a href="http://" target="_blank">³¤ÊÙÇø</a>| <a href="http://" target="_blank">л¯ÏØ</a>| <a href="http://" target="_blank">ѰÎÚÏØ</a>| <a href="http://" target="_blank">¹²ºÍÏØ</a>| <a href="http://" target="_blank">ÓÀ¿µÊÐ</a>| <a href="http://" target="_blank">¹ȪÊÐ</a>| <a href="http://" target="_blank">Ìì¶ëÏØ</a>| <a href="http://" target="_blank">¼ÎÒñÏØ</a>| <a href="http://" target="_blank">ÎÚ³ľÆëÏØ</a>| <a href="http://" target="_blank">ãòÏªÏØ</a>| <a href="http://" target="_blank">íã¿ÚÏØ</a>| <a href="http://" target="_blank">Äϵ¤ÏØ</a>| <a href="http://" target="_blank">Ù¤Ê¦ÏØ</a>| <a href="http://" target="_blank">ȪÖÝÊÐ</a>| <a href="http://" target="_blank">ÎäÉ½ÏØ</a>| <a href="http://" target="_blank">»¯ÖÝÊÐ</a>| <a href="http://" target="_blank">¹ÌÔ­ÊÐ</a>| <a href="http://" target="_blank">ÏĺÓÏØ</a>| <a href="http://" target="_blank">·ÊÎ÷ÏØ</a>| <a href="http://" target="_blank">Å©°²ÏØ</a>| <a href="http://" target="_blank">°²»ÕÊ¡</a>| <a href="http://" target="_blank">³¤´ºÊÐ</a>| <a href="http://" target="_blank">Î¼Ô´ÏØ</a>| <a href="http://" target="_blank">Ä˶«ÏØ</a>| <a href="http://" target="_blank">»¥Öú</a>| <a href="http://" target="_blank">ÐûÎäÇø</a>| <a href="http://" target="_blank">ͬµÂÏØ</a>| <a href="http://" target="_blank">²©°®ÏØ</a>| <a href="http://" target="_blank">´óÌïÏØ</a>| <a href="http://" target="_blank">¶¼°²</a>| <a href="http://" target="_blank">¹ØÁë</a>| <a href="http://" target="_blank">»¸Ì¨ÏØ</a>| <a href="http://" target="_blank">ÍÍÁôÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>