ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>一区二区亚洲精品国产,91天堂在线观看,国产欧美综合精品一区二区http://www.aygfsteel.com/dearnnyang/archive/2006/02/22/31970.html阿兽学习阿兽学习Wed, 22 Feb 2006 06:58:00 GMThttp://www.aygfsteel.com/dearnnyang/archive/2006/02/22/31970.htmlhttp://www.aygfsteel.com/dearnnyang/comments/31970.htmlhttp://www.aygfsteel.com/dearnnyang/archive/2006/02/22/31970.html#Feedback0http://www.aygfsteel.com/dearnnyang/comments/commentRss/31970.htmlhttp://www.aygfsteel.com/dearnnyang/services/trackbacks/31970.html

如何˜q›è¡Œå•å…ƒ‹¹‹è¯•

ä½œè€…ï¼šè‘›å¿—æ˜¥ï¼ˆæ¥æºåQšå¸Œèµ›ç½‘åQ?nbsp; http://www.csai.cn  2003òq?6æœ?6æ—?BR>
摘è¦åQ?/STRONG>å•å…ƒ‹¹‹è¯•是èÊY件测试的基础åQŒæœ¬æ–‡è¯¦¾l†çš„è®ø™¿°äº†å•å…ƒæµ‹è¯•çš„ä¸¤ä¸ªæ­¥éª¤äººå·¥é™æ€æ£€æŸ¥æ³•ä¸ŽåŠ¨æ€æ‰§è¡Œè·Ÿítªæ³•åQŒæ‰€éœ€æ‰§è¡Œçš„工作项目åŠç›¸å…³çš„策略和æ–ÒŽ(gu¨©)³•。通过对这两个步骤的æ˜qîC½œè€…将多年的å•元测试ç»éªŒåŠ‹¹‹è¯•ç†è®ºæ³¨å…¥äºŽå…¨æ–‡ã€?BR>
关键è¯?å•å…ƒ‹¹‹è¯•ã€äh工检查ã€ç™½ç›’æµ‹è¯•ã€æµ‹è¯•用例ã€è·Ÿítªè°ƒè¯?BR>
1 概述

å•å…ƒ‹¹‹è¯•是针对èÊY件设计的最ž®å•ä½â€”â€”ç¨‹åºæ¨¡å—,˜q›è¡Œæ­£ç¡®æ€§æ£€éªŒçš„‹¹‹è¯•工作。其目的在于å‘现æ¯ä¸ª½E‹åºæ¨¡å—内部å¯èƒ½å­˜åœ¨çš„差错ã€?BR>
å•å…ƒ‹¹‹è¯•也是½E‹åºå‘˜çš„一™å¹åŸºæœ¬èŒè´£ï¼Œ½E‹åºå‘˜å¿…™åÕd¯¹è‡ªå·±æ‰€¾~–写的代ç ä¿æŒè®¤çœŸè´Ÿè´£çš„æ€åº¦åQŒè¿™æ˜¯ä¹Ÿ½E‹åºå‘˜çš„基本èŒä¸šç´ è´¨ä¹‹ä¸€ã€‚åŒæ—¶å•元测试能力也是程åºå‘˜çš„一™å¹åŸºæœ¬èƒ½åŠ›ï¼Œèƒ½åŠ›çš„é«˜ä½Žç›´æŽ¥åª„å“到½E‹åºå‘˜çš„工作效率与èÊY件的质é‡ã€?BR>
在编ç çš„˜q‡ç¨‹ä¸­ä½œå•å…ƒ‹¹‹è¯•åQŒå…¶èŠÞp´¹æ˜¯æœ€ž®çš„åQŒè€Œå›žæŠ¥å´ç‰¹åˆ«ä¼˜åŽšçš„ã€‚åœ¨¾~–ç çš„过½E‹ä¸­è€ƒè™‘‹¹‹è¯•问题åQŒå¾—到的ž®†æ˜¯æ›´ä¼˜è´¨çš„代ç åQŒå› ä¸ºåœ¨˜q™æ—¶æ‚(zh¨¨n)¨å¯¹ä»£ç åº”该åšäº›ä»€ä¹ˆäº†è§£å¾—最清楚。如果丘q™æ ·åšï¼Œè€Œæ˜¯ä¸€ç›´ç­‰åˆ°æŸä¸ªæ¨¡å—崩溃了åQŒåˆ°é‚£æ—¶æ‚(zh¨¨n)¨å¯èƒ½å·²¾l忘è®îCº†ä»£ç æ˜¯æ€Žæ ·å·¥ä½œçš„。å³ä½¿æ˜¯åœ¨å¼ºå¤§çš„工作压力下,æ‚(zh¨¨n)¨ä¹Ÿ˜q˜å¿…™å»é‡æ–°æŠŠå®ƒå¼„清楚åQŒè¿™åˆè¦èŠÞp´¹è®¸å¤šæ—‰™—´ã€‚进一步说åQŒè¿™æ ·åšå‡ºçš„æ›´æ­£å¾€å¾€ä¸ä¼šé‚£ä¹ˆå½Õdº•åQŒå¯èƒ½æ›´è„†å¼±åQŒå› ä¸ºæ?zh¨¨n)¨å”¤å›žçš„ç†è§£å¯èƒ½ä¸é‚£ä¹ˆå®Œå…¨ã€?BR>
é€šå¸¸åˆæ ¼çš„代ç åº”该具备以下性质åQšæ­£¼‹®æ€§ã€æ¸…晰性ã€è§„范性ã€ä¸€è‡´æ€§ã€é«˜æ•ˆæ€§ç­‰åQˆæ ¹æ®ä¼˜å…ˆçñ”别排åºï¼‰ã€?BR>
1. 正确性是指代ç é€»è¾‘必须正确åQŒèƒ½å¤Ÿå®žçŽ°é¢„æœŸçš„åŠŸèƒ½ã€?BR>
2. 清晰性是指代ç å¿…™åÈ®€æ˜Žã€æ˜“懂,注释准确没有歧义ã€?BR>
3. 规范性是指代ç å¿…™åȬ¦åˆä¼ä¸šæˆ–部门所定义的共åŒè§„范包括命å规则,代ç é£Žæ ¼½{‰ç­‰ã€?BR>
4. 一致性是指代ç å¿…™åÕdœ¨å‘½å上(如:相åŒåŠŸèƒ½çš„å˜é‡å°½é‡é‡‡ç”¨ç›¸åŒçš„æ ‡ç¤º½W¦ï¼‰ã€é£Žæ ég¸Šéƒ½ä¿æŒç»Ÿä¸€ã€?BR>
5. 高效性是指代ç ä¸ä½†è¦æ»¡èƒö以上性质åQŒè€Œä¸”需è¦å°½å¯èƒ½é™ä½Žä»£ç çš„æ‰§è¡Œæ—¶é—´ã€?BR>
2 å•å…ƒ‹¹‹è¯•步骤

在代ç ç¼–写完æˆåŽçš„å•元测试工作主è¦åˆ†ä¸ÞZ¸¤ä¸ªæ­¥éª¤äh工陿€æ£€æŸ¥å’ŒåŠ¨æ€æ‰§è¡Œè·Ÿítªã€?BR>
äººå·¥é™æ€æ£€æŸ¥æ˜¯‹¹‹è¯•的第一步,˜q™ä¸ªé˜¶æ®µå·¥ä½œä¸»è¦æ˜¯ä¿è¯ä»£ç ç®—法的逻辑正确性(ž®½é‡é€šè¿‡äººå·¥‹‚€æŸ¥å‘çŽîC»£ç çš„逻辑错误åQ‰ã€æ¸…晰性ã€è§„范性ã€ä¸€è‡´æ€§ã€ç®—æ³•é«˜æ•ˆæ€§ã€‚åÆˆž®½å¯èƒ½çš„å‘现½E‹åºä¸­æ²¡æœ‰å‘现的错误ã€?BR>
½W¬äºŒæ­¥æ˜¯é€šè¿‡è®¾è®¡‹¹‹è¯•用例åQŒæ‰§è¡Œå¾…‹¹‹ç¨‹åºæ¥è·Ÿè¸ªæ¯”较实际¾l“果与预期结果æ¥å‘现错误。ç»éªŒè¡¨æ˜Žï¼Œä½¿ç”¨äººå·¥é™æ€æ£€æŸ¥æ³•能够有效的å‘çŽ?0%åˆ?0%的逻辑设计和编ç é”™è¯¯ã€‚但是代ç ä¸­ä»ä¼šæœ‰å¤§é‡çš„éšæ€§é”™è¯¯æ— æ³•通过视觉‹‚€æŸ¥å‘玎ͼŒå¿…é¡»é€šè¿‡è·Ÿè¸ªè°ƒè¯•æ³•ç»†å¿ƒåˆ†æžæ‰èƒ½å¤Ÿæ•æ‰åˆ°ã€‚所以,动æ€è·Ÿítªè°ƒè¯•方法也æˆäº†å•å…ƒ‹¹‹è¯•çš„é‡ç‚¹ä¸Žéš„¡‚¹ã€?BR>
3 人工‹‚€æŸ?/STRONG>

通常在äh工检查阶ŒDµå¿…™åÀL‰§è¡Œä»¥ä¸‹é¡¹ç›®çš„‹zÕdЍåQ?BR>
½W¬ä¸€ã€?‹‚€æŸ¥ç®—法的逻辑正确性;¼‹®å®šæ‰€¾~–写的代ç ç®—æ³•ã€æ•°æ®ç»“构定义(如:队列ã€å †æ ˆç­‰åQ‰æ˜¯å¦å®žçŽîCº†æ¨¡å—æˆ–æ–¹æ³•æ‰€è¦æ±‚的功能ã€?BR>
½W¬äºŒã€?æ¨¡å—æŽ¥å£çš„æ­£¼‹®æ€§æ£€æŸ¥ï¼›¼‹®å®šå½¢å¼å‚æ•°ä¸ªæ•°ã€æ•°æ®ç±»åž‹ã€é¡ºåºæ˜¯å¦æ­£¼‹®ï¼›¼‹®å®š˜q”回值类型劘q”回值的正确性ã€?BR>
½W¬ä¸‰ã€?è¾“å…¥å‚æ•°æœ‰æ²¡æœ‰ä½œæ­£ç¡®æ€§æ£€æŸ¥ï¼›å¦‚果没有作正¼‹®æ€§æ£€æŸ¥ï¼Œ¼‹®å®šè¯¥å‚数是å¦çš„¼‹®æ— éœ€åšå‚æ•°æ­£¼‹®æ€§æ£€æŸ¥ï¼Œå¦åˆ™è¯äh·»åŠ ä¸Šå‚æ•°çš„æ­£¼‹®æ€§æ£€æŸ¥ã€‚ç»éªŒè¡¨æ˜Žï¼Œ¾~ºå°‘傿•°æ­£ç¡®æ€§æ£€æŸ¥çš„ä»£ç æ˜¯é€ æˆè½¯äšg¾pÈ»Ÿä¸ç¨³å®šçš„主è¦åŽŸå› ä¹‹ä¸€ã€?BR>
½W¬å››ã€?调用其他æ–ÒŽ(gu¨©)³•接å£çš„æ­£¼‹®æ€§ï¼›‹‚€æŸ¥å®žå‚类型正¼‹®ä¸Žå¦ã€ä¼ å…¥çš„傿•°å€¼æ­£¼‹®ä¸Žå¦ã€ä¸ªæ•°æ­£¼‹®ä¸Žå¦ï¼Œç‰¹åˆ«æ˜¯å…·æœ‰å¤šæ€çš„æ–ÒŽ(gu¨©)³•。返回值正¼‹®ä¸Žå¦ï¼Œæœ‰æ²¡æœ‰è¯¯è§£è¿”å›žå€¼æ‰€è¡¨ç¤ºçš„æ„æ€ã€‚最好对æ¯ä¸ªè¢«è°ƒç”¨çš„æ–ÒŽ(gu¨©)³•的返回值用显湿代ç ä½œæ­£¼‹®æ€§æ£€æŸ¥ï¼Œå¦‚果被调用方法出现异常或错误½E‹åºåº”该¾l™äºˆå馈åQŒåƈæ·ÕdŠ é€‚å½“çš„å‡ºé”™å¤„ç†ä»£ç ã€?BR>
½W¬äº”ã€?出错处ç†åQ›æ¨¡å—代ç è¦æ±‚能预è§å‡ºé”™çš„æ¡ä»Óž¼Œòq¶è®¾¾|®é€‚当的出错处ç†ï¼Œä»¥ä¾¿åœ¨ä¸€æ—¦ç¨‹åºå‡ºé”™æ—¶åQŒèƒ½å¯¹å‡ºé”™ç¨‹åºé‡åšå®‰æŽ’,ä¿è¯å…‰™€»è¾‘的正¼‹®æ€§ï¼Œ˜q™ç§å‡ºé”™å¤„ç†åº”当是模å—功能的一部分。若出现下列情况之一åQŒåˆ™è¡¨æ˜Žæ¨¡å—的错误处ç†åŠŸèƒ½åŒ…å«æœ‰é”™è¯¯æˆ–ç¼ºé™øP¼šå‡ºé”™çš„æ˜q°éš¾ä»¥ç†è§£ï¼›å‡ºé”™çš„æ˜qîC¸­‘³ä»¥å¯šw”™è¯¯å®šä½ï¼Œä¸èƒö以确定出错的原因åQ›æ˜¾½Cºçš„错误信æ¯ä¸Žå®žé™…的错误原因ä¸ç¬¦åQ›å¯¹é”™è¯¯æ¡äšg的处ç†ä¸æ­£ç¡®åQ›åœ¨å¯šw”™è¯¯è¿›è¡Œå¤„ç†ä¹‹å‰ï¼Œé”™è¯¯æ¡äšgå·²ç»å¼•è“v¾pÈ»Ÿçš„干预等ã€?BR>
½W¬å…­ã€?ä¿è¯è¡¨è¾¾å¼ã€SQL语å¥çš„æ­£¼‹®æ€§ï¼›‹‚€æŸ¥æ‰€¾~–写的SQL语å¥çš„语法ã€é€»è¾‘的正¼‹®æ€§ã€‚对表达å¼åº”该ä¿è¯ä¸å«äºŒä¹‰æ€§ï¼Œå¯¹äºŽå®ÒŽ(gu¨©)˜“äº§ç”Ÿæ­§ä¹‰çš„è¡¨è¾‘Ö¼æˆ–è¿½Ž—ç¬¦ä¼˜å…ˆ¾U§ï¼ˆå¦‚:ã€?ã€?ã€?》ã€?&&ã€||ã€?+ã€?--½{‰ï¼‰å¯ä»¥é‡‡ç”¨æ‰©å·â€œï¼ˆåQ‰â€è¿½Ž—符é¿å…二义性,˜q™æ ·ä¸€æ–šw¢èƒ½å¤Ÿä¿è¯ä»£ç çš„æ­£¼‹®å¯é ï¼ŒåŒæ—¶ä¹Ÿèƒ½å¤Ÿæé«˜ä»£ç çš„å¯è¯»æ€§ã€?BR>
½W¬ä¸ƒã€?‹‚€æŸ¥å¸¸é‡æˆ–全局å˜é‡ä½¿ç”¨çš„æ­£¼‹®æ€§ï¼›¼‹®å®šæ‰€ä½¿ç”¨çš„叏釿ˆ–全局å˜é‡çš„å–值和数倹{€æ•°æ®ç±»åž‹ï¼›ä¿è¯å¸”R‡æ¯æ¬¡å¼•用åŒå®ƒçš„å–倹{€æ•°å€¼å’Œ¾cÕdž‹çš„一致性ã€?BR>
½W¬å…«ã€?表示½W¦å®šä¹‰çš„规范一致性;ä¿è¯å˜é‡å‘½å能够è§å知æ„åQŒåƈ且简‹z但ä¸å®œ˜q‡é•¿æˆ–过短ã€è§„范ã€å®¹æ˜“è®°å¿†ã€æœ€å¥½èƒ½å¤Ÿæ‹¼è¯…R€‚åÆˆž®½é‡ä¿è¯ç”¨ç›¸åŒçš„表示½W¦ä»£è¡¨ç›¸åŒåŠŸèƒ½ï¼Œä¸è¦ž®†ä¸åŒçš„功能用相åŒçš„表示½W¦è¡¨½Cºï¼›æ›´ä¸è¦ç”¨ç›¸åŒçš„表½Cºç¬¦ä»£è¡¨ä¸åŒçš„功能æ„义ã€?BR>
½W¬ä¹(ji¨¦)ã€?½E‹åºé£Žæ ¼çš„一致性ã€è§„范性;代ç å¿…须能ä¿è¯ç¬¦åˆä¼ä¸šè§„范,ä¿è¯æ‰€æœ‰æˆå‘˜çš„代ç é£Žæ ¼ä¸€è‡´ã€è§„范ã€å·¥æ•´ã€‚例如对数组åšåó@环,ä¸è¦ä¸€ä¼šå„¿é‡‡ç”¨ä¸‹æ ‡å˜é‡ä»Žä¸‹åˆîC¸Šçš„æ–¹å¼ï¼ˆå¦?for(I=0;I++åQ›I<10)åQ‰ï¼Œä¸€ä¼šå„¿åˆé‡‡ç”¨ä»Žä¸Šåˆ°ä¸‹çš„æ–¹å¼(å¦?for(I=10;I--;I>0))åQ›åº”该尽é‡é‡‡ç”¨ç»Ÿä¸€çš„æ–¹å¼ï¼Œæˆ–则¾lŸä¸€ä»Žä¸‹åˆîC¸ŠåQŒæˆ–则统一从上åˆîC¸‹ã€‚å¾è®®é‡‡ç”¨for循环和While循环åQŒä¸è¦é‡‡ç”¨do{}while循环½{‰ã€?BR>
½W¬åã€?‹‚€æŸ¥ç¨‹åºä¸­ä½¿ç”¨åˆ°çš„¼œžç§˜æ•°å­—是å¦é‡‡ç”¨äº†è¡¨½Cºç¬¦å®šä¹‰ã€‚神¿U˜çš„æ•°å­—包括å„ç§å¸¸æ•°ã€æ•°¾l„的大å°ã€å­—½W¦ä½¾|®ã€å˜æ¢å› å­ä»¥åŠç¨‹åºä¸­å‡ºçŽ°çš„å…¶ä»–ä»¥æ–‡å­—å½¢å¼å†™å‡ºçš„æ•°å€¹{€‚在½E‹åºæºä»£ç é‡ŒåQŒä¸€ä¸ªå…·æœ‰åŽŸæœ¬åÅžå¼çš„æ•°å¯¹å…¶æœ¬íw«çš„é‡è¦æ€§æˆ–作用没æä¾›ä“Q何指½Cºæ€§ä¿¡æ¯ï¼Œå®ƒä»¬ä¹Ÿå¯¼è‡´ç¨‹åºéš¾ä»¥ç†è§£å’Œä¿®æ”¹ã€‚对于这¾cÈ¥ž¿U˜æ•°å­—å¿…™å»é‡‡ç”¨ç›¸åº”çš„æ ‡é‡æ¥è¡¨½Cºï¼›å¦‚果该数字在整个¾pÈ»Ÿä¸­éƒ½å¯èƒ½ä½¿ç”¨åˆ°åŠ¡å¿…å°†å®ƒå®šä¹‰äØ“å…¨å±€å¸”R‡åQ›å¦‚果该¼œžç§˜æ•°å­—在一个类中ä‹É用寞®†å…¶å®šä¹‰ä¸ºç±»çš„属性(AttributeåQ?如果该神¿U˜æ•°å­—åªåœ¨ä¸€ä¸ªæ–¹æ³•中出现务必ž®†å…¶å®šä¹‰ä¸ºå±€éƒ¨å˜é‡æˆ–帔R‡ã€?BR>
½W¬å一ã€?‹‚€æŸ¥ä»£ç æ˜¯å¦å¯ä»¥ä¼˜åŒ–ã€ç®—æ³•æ•ˆçŽ‡æ˜¯å¦æœ€é«˜ã€‚如åQšSQLè¯­å¥æ˜¯å¦å¯ä»¥ä¼˜åŒ–åQŒæ˜¯å¦å¯ä»¥ç”¨1æ¡SQL语å¥ä»£æ›¿½E‹åºä¸­çš„多æ¡SQL语å¥çš„功能,循环是å¦å¿…è¦åQŒåó@çŽ¯ä¸­çš„è¯­å¥æ˜¯å¦å¯ä»¥æŠ½å‡ºåˆ°å¾ªçޝ之外½{‰ã€?BR>
½W¬å二ã€?‹‚€æŸ¥æ?zh¨¨n)¨çš„ç¨‹åºæ˜¯å¦æ¸…晰简‹z容易ç†è§£ã€‚注æ„:冗长的程åºåƈä¸ä¸€å®šä¸æ˜¯æ¸…æ™°çš„ã€?BR>
½W¬å三ã€?‹‚€æŸ¥æ–¹æ³•内部注释是å¦å®Œæ•ß_¼›æ˜¯å¦æ¸…æ™°½Ž€‹zï¼›æ˜¯å¦æ­£ç¡®çš„åæ˜ äº†ä»£ç çš„功能,错误的注释比没有注释更糟åQ›æ˜¯å¦åšäº†å¤šä½™çš„æ³¨é‡ŠåQ›å¯¹äºŽç®€å•çš„ä¸€çœ‹å°±æ‡‚çš„ä»£ç æ²¡æœ‰å¿…è¦æ³¨é‡Šã€?BR>
½W¬åå››ã€?‹‚€æŸ¥æ³¨é‡Šæ–‡æ¡£æ˜¯å¦å®Œæ•ß_¼›å¯¹åŒ…ã€ç±»ã€å±žæ€§ã€æ–¹æ³•功能ã€å‚æ•°ã€è¿”å›žå€¼çš„æ³¨é‡Šæ˜¯å¦æ­£ç¡®ä¸”容易ç†è§£ï¼›æ˜¯å¦ä¼šè½äº†æˆ–多了æŸä¸ªå‚æ•°çš„æ³¨é‡Šï¼Œå‚æ•°¾cÕdž‹æ˜¯å¦æ­£ç¡®åQŒå‚æ•°çš„é™å®šå€¼æ˜¯å¦æ­£¼‹®ã€‚特别是对于形å¼å‚数与返回å€ég¸­å…³äºŽ¼œžç§˜æ•°å€¼çš„æ³¨é‡ŠåQŒå¦‚åQšç±»åž‹å‚æ•?应该指出 1.代表什么,2.代表什么,3.代表什么等。对于返回结果集(Result Set)的注释,应该注释¾l“果集中包å«é‚£äº›å­—段åŠå­—ŒD늱»åž‹ã€å­—ŒDµé¡ºåºç­‰ã€?BR>
4 åŠ¨æ€æ‰§è¡Œè·Ÿít?/STRONG>

åŠ¨æ€æ‰§è¡Œæµ‹è¯•é€šå¸¸åˆ†äØ“é»‘ç›’‹¹‹è¯•与白盒测试。黑盒测试指已知产å“的功能设计规æ û|¼Œå¯ä»¥˜q›è¡Œ‹¹‹è¯•è¯æ˜Žæ¯ä¸ªå®žçŽ°äº†çš„åŠŸèƒ½æ˜¯å¦½W¦åˆè¦æ±‚。白盒测试指已知产å“的内部工作过½E‹ï¼Œå¯ä»¥é€šè¿‡‹¹‹è¯•è¯æ˜Žæ¯ç§å†…部æ“作是妽W¦åˆè®¾è®¡è§„æ ¼çš„è¦æ±‚,所有内部æˆåˆ†æ˜¯å¦å·²¾l绘q‡æ£€æŸ¥ã€?BR>
对于å•å…ƒ‹¹‹è¯•æ¥è¯´ä¸»è¦åº”该采用白盒‹¹‹è¯•法对æ¯ä¸ªæ¨¡å—的内部作跟踪‹‚€æŸ¥æµ‹è¯•。对于å•å…ƒç™½ç›’æµ‹è¯•ï¼Œåº”è¯¥å¯¹ç¨‹åºæ¨¡å—进行如下检查:

1. å¯ÒŽ(gu¨©)¨¡å—内所有独立的执行路径臛_°‘‹¹‹è¯•一‹Æ¡ï¼›

2. å¯ÒŽ(gu¨©)‰€æœ‰çš„逻辑判定åQŒå–“真â€ä¸Žâ€œå‡â€çš„ä¸¤ç§æƒ…况都至ž®‘执行一‹Æ¡ï¼›

3. 在åó@环的边界和è¿è¡Œç•Œé™å†…执行循环体;

4. ‹¹‹è¯•内部数æ®çš„æœ‰æ•ˆæ€§ç­‰½{‰ã€?BR>
å•元白盒跟踪‹¹‹è¯•åQŒé€šå¸¸éœ€è¦åšå¦‚下三项工作:

1. 设计‹¹‹è¯•用例åQ?BR>
2. 设计‹¹‹è¯•¾cÀL¨¡å—ï¼›

3. 跟踪调试�BR>
4.1 ‹¹‹è¯•用例设计

é€šå¸¸åŠ¨æ€æ‰§è¡Œè·Ÿítªè°ƒè¯•是在编ç é˜¶ŒDµè¿›è¡Œçš„。在å¯ÒŽ(gu¨©)º½E‹åºä½œé™æ€äh工检查之åŽå°±å¯ä»¥å¼€å§‹è¿›è¡Œå•元测试的‹¹‹è¯•用例设计。利用设计文档,设计å¯ä»¥éªŒè¯½E‹åºåŠŸèƒ½ã€æ‰¾å‡ºç¨‹åºé”™è¯¯çš„多个‹¹‹è¯•用例ã€?BR>
4.1.1 ‹¹‹è¯•用例的设计基本原åˆ?BR>
设计‹¹‹è¯•用例基本的原则是åQ?BR>
1. 一个好的测试用例在于能够å‘现至今没有å‘现的错误åQ?BR>
2. ‹¹‹è¯•用例应由‹¹‹è¯•输入数æ®å’Œä¸Žä¹‹å¯¹åº”的预期输出¾l“æžœ˜q™ä¸¤éƒ¨åˆ†¾l„æˆåQ?BR>
3. 在测试用例设计时åQŒåº”当包å«åˆç†çš„输入æ¡äšgå’Œä¸åˆç†çš„输入æ¡ä»¶ã€?BR>
4.1.2 白盒‹¹‹è¯•的测试用例设è®?BR>
白盒‹¹‹è¯•‹¹‹è¯•用例一般采用逻辑覆盖法和基本路径法进行设计ã€?BR>
一ã€é€»è¾‘覆盖æ³?/STRONG>

逻辑覆盖是以½E‹åºå†…部的逻辑¾l“构为基¼‹€çš„æµ‹è¯•用例设计技术,˜q™ä¸€æ–ÒŽ(gu¨©)³•è¦æ±‚‹¹‹è¯•人员对程åºçš„逻辑¾l“构有清楚的了解。逻辑覆盖å¯åˆ†ä¸ºï¼šè¯­å¥è¦†ç›–ã€åˆ¤å®šè¦†ç›–ã€æ¡ä»¶è¦†ç›–ã€åˆ¤å®?æ¡äšgè¦†ç›–ã€æ¡ä»¶ç»„åˆè¦†ç›–与路径覆盖ã€?BR>
1. 语å¥è¦†ç›–ž®±æ˜¯è®¾è®¡è‹¥å¹²ä¸ªæµ‹è¯•用例,˜q行所‹¹‹ç¨‹åºï¼Œä½¿å¾—æ¯ä¸€å¯æ‰§è¡Œè¯­å¥è‡³ž®‘执行一‹Æ¡ã€?BR>
2. 判定覆盖ž®±æ˜¯è®¾è®¡è‹¥å¹²ä¸ªæµ‹è¯•用例,˜q行所‹¹‹ç¨‹åºï¼Œä½¿å¾—½E‹åºä¸­æ¯ä¸ªåˆ¤æ–­çš„å–真分支和å–å‡åˆ†æ”¯è‡³ž®‘ç»åކ䏀‹Æ¡ã€?BR>
3. æ¡äšg覆盖ž®±æ˜¯è®¾è®¡è‹¥å¹²ä¸ªæµ‹è¯•用例,˜q行所‹¹‹ç¨‹åºï¼Œä½¿å¾—½E‹åºä¸­æ¯ä¸ªåˆ¤æ–­çš„æ¯ä¸ªæ¡äšgçš„å¯èƒ½å–倯D‡³ž®‘执行一‹Æ¡ã€?BR>
4. 判定--æ¡äšg覆盖ž®±æ˜¯è®¾è®¡­‘›_¤Ÿçš„æµ‹è¯•用例,使得判断中æ¯ä¸ªæ¡ä»¶çš„æ‰€æœ‰å¯èƒ½å–倯D‡³ž®‘执行一‹Æ¡ï¼ŒåŒæ—¶æ¯ä¸ªåˆ¤æ–­çš„æ‰€æœ‰å¯èƒ½åˆ¤æ–­ç»“果也臛_°‘执行一‹Æ¡ã€?BR>
5. æ¡äšg¾l„åˆè¦†ç›–ž®±æ˜¯è®¾è®¡­‘›_¤Ÿçš„æµ‹è¯•用例,˜q行所‹¹‹ç¨‹åºï¼Œä½¿å¾—æ¯ä¸ªåˆ¤æ–­çš„æ‰€æœ‰å¯èƒ½çš„æ¡äšgå–值组åˆè‡³ž®‘执行一‹Æ¡ã€?BR>
6. 路径‹¹‹è¯•ž®±æ˜¯è®¾è®¡­‘›_¤Ÿçš„æµ‹è¯•用例,覆盖½E‹åºä¸­æ‰€æœ‰å¯èƒ½çš„路径ã€?BR>
æ¯ä¸€¿U覆盖方法都有其优缺点,˜q?¿U覆盖方法关¾p»ï¼Œå¦‚图1åQ?BR>


å›?

通常在设计测试用例时应该æ ÒŽ(gu¨©)®ä»£ç æ¨¡å—çš„å¤æ‚度åQŒé€‰æ‹©è¦†ç›–æ–ÒŽ(gu¨©)³•。一般的代ç çš„夿‚åº¦ä¸Žæµ‹è¯•ç”¨ä¾‹è®¾è®¡çš„å¤æ‚åº¦æˆæ­£æ¯”。因此,设计人员必须åšåˆ°æ¨¡å—或方法功能的å•一性ã€é«˜å†…èšæ€§ï¼Œä½¿å¾—æ–ÒŽ(gu¨©)³•或函æ•îC»£ç å°½å¯èƒ½çš„简å•ï¼›˜q™æ ·ž®†å¯å¤§å¤§æé«˜?g¨°u)¹‹è¯•用例设计的容易度åQŒæé«˜æµ‹è¯•用例的覆盖½E‹åº¦ã€?BR>
二ã€åŸºæœ¬èµ\径法

基本路径‹¹‹è¯•æ³•æ˜¯åœ¨ç¨‹åºæŽ§åˆ¶æµå›„¡š„åŸºç¡€ä¸Šï¼Œé€šè¿‡åˆ†æžæŽ§åˆ¶æž„é€ çš„çŽ¯èµ\夿‚æ€§ï¼Œå¯¼å‡ºåŸºæœ¬å¯æ‰§è¡Œèµ\径集åˆï¼Œä»Žè€Œè®¾è®¡æµ‹è¯•用例的æ–ÒŽ(gu¨©)³•。设计出的测试用例è¦ä¿è¯åœ¨æµ‹è¯•中½E‹åºçš„æ¯ä¸ªå¯æ‰§è¡Œè¯­å¥è‡›_°‘执行一‹Æ¡ã€‚基本èµ\径测试法包括以下5个方é¢ï¼š

1. ½E‹åºçš„æŽ§åˆ¶æµå›¾ï¼šæè¿°½E‹åºæŽ§åˆ¶‹¹çš„一¿U图½Cºæ–¹æ³•ã€?BR>
2. ½E‹åºçŽ¯å¢ƒå¤æ‚性:McCabe夿‚性度é‡ï¼›ä»Žç¨‹åºçš„环èµ\夿‚性å¯å¯¼å‡º½E‹åºåŸºæœ¬è·¯å¾„集åˆä¸­çš„ç‹¬ç«‹è·¯å¾„æ¡æ•°åQŒè¿™æ˜¯ç¡®å®šç¨‹åºä¸­æ¯ä¸ªå¯æ‰§è¡Œè¯­å¥è‡³ž®‘执行例ơ所必须的测试用例数目的上界ã€?BR>
3. 导出‹¹‹è¯•用例ã€?BR>
4. 准备‹¹‹è¯•用例åQŒç¡®ä¿åŸºæœ¬èµ\径集中的æ¯ä¸€æ¡èµ\径的执行ã€?BR>
5. 囑ÖŞ矩阵åQšæ˜¯åœ¨åŸºæœ¬èµ\径测试中赯‚¾…助作用的软äšg工具åQŒåˆ©ç”¨å®ƒå¯ä»¥å®žçŽ°è‡ªåŠ¨åœ°ç¡®å®šä¸€ä¸ªåŸºæœ¬èµ\径集ã€?BR>
å¦å¤–åQŒå¯¹äºŽæµ‹è¯•用例的选择除了满èƒö所选择的覆盖程度(或覆盖标准)外还需è¦å°½å¯èƒ½çš„é‡‡ç”¨è¾¹ç•Œå€¼åˆ†æžæ³•ã€é”™è¯¯æŽ¨‹¹‹æ³•½{‰å¸¸ç”¨åœ°è®¾è®¡æ–ÒŽ(gu¨©)³•ã€‚é‡‡ç”¨è¾¹ç•Œå€¼åˆ†æžæ³•设计åˆç†çš„输入æ¡ä»¶ä¸Žä¸åˆç†çš„输入æ¡äšgåQ›æ¡ä»¶è¾¹ç•Œæµ‹è¯•ç”¨ä¾‹åº”è¯¥åŒ…æ‹¬è¾“å…¥å‚æ•°çš„边界与æ¡ä»¶è¾¹ç•Œï¼ˆif,whileåQŒforåQŒswitch ,SQL Whereå­å¥½{‰ï¼‰ã€‚错误推‹¹‹æ³•åQŒåˆ—丑ևº½E‹åºä¸­æ‰€æœ‰å¯èƒ½çš„错误和容易å‘生错误的ç‰ÒŽ(gu¨©)®Šæƒ…况åQŒæ ¹æ®å®ƒä»¬é€‰æ‹©‹¹‹è¯•用例åQ›åœ¨¾~–ç ã€å•元测试阶ŒDµå¯ä»¥å‘现很多常è§çš„错误和疑似错误,对于˜q™äº›é”™è¯¯åº”该作é‡ç‚ÒŽ(gu¨©)µ‹è¯•,òq¶è®¾è®¡ç›¸åº”çš„‹¹‹è¯•用例ã€?BR>
4.1.3 å•å…ƒ‹¹‹è¯•计划表格

在设计测试用例时å¯ä»¥å‚考如下表æ û|¼Œæ‹Ÿå®šå¯ÒŽ(gu¨©)¯ä¸ªç±»(æˆ–æ¨¡å—æˆ–åŒ?的测试计划。表1åQŒæ˜¯å¯ÒŽ(gu¨©)¯ä¸ªç±»åQˆæˆ–æ¨¡å—æˆ–包åQ‰ä½œ‹¹‹è¯•计划的表å¤ß_¼Œå®ƒæŒ‡æ˜Žæœ¬‹¹‹è¯•计划是针寚w‚£ä¸ªæ¨¡å—åŠç›¸å…³æ–‡äšg的。表2是针对表1指定模嗋¹‹è¯•用例而对应的å­è¡¨åQŒæ¯ä¸ªæµ‹è¯•用例å¯ä»¥æ‹¥æœ‰ä¸€ä¸ªå­è¡¨ï¼›å•å…ƒ‹¹‹è¯•¾l“æžœå­è¡¨ç•™ä½œæ‰§è¡Œ‹¹‹è¯•用例时根æ®å®žé™…结果填写ã€?BR>
å­ç³»¾lŸå. PackageName. JavaClassName

å•å…ƒ‹¹‹è¯•计划
标识 æ ¼å¼åQ?BR>
“孾pÈ»Ÿå? jsp_filenameåQˆå«ç›®å½•中间用\分开å›_¯åQ‰â€?

或�

“孾pÈ»Ÿå? PackageName. JavaClassNameâ€?
¾l„äšg功能™å?/TD> 如:¾l„äšgå®Œæˆ â€œæ–°å¢žè„“(chu¨¤ng)å­â€çš„功能
针对概è¦/详细设计文äšgå?/TD> 如:1.1版本公告部分详细设计说明ä¹?/TD>
ç‰©ç†æ–‡äšgå?/TD> jsp_filenameåQˆå«ç›®å½•åQ‰ï¼›

packageName. JavaClassName
è¡?

å•å…ƒ‹¹‹è¯•å­é¡¹001

下é¢è¡¨æ ¼ä¸ºé’ˆå¯¹ä¸Šé¢è¡¨æ ¼â€œå­¾pÈ»Ÿå? PackageName. JavaClassNameâ€è€Œå¯¹åº”çš„å­è¡¨åQŒæ¯ä¸ªæµ‹è¯•用例用一张å­è¡¨ï¼š

¾~–å· .001 注:â€? ¾~–å·â€?部分è¦ä»Ž001¾~–å·å¼€å§‹ä¸€ç›´åˆ°999åQŒä¸ªäºø™‡ªè¡Œç¼–å?/TD>
½E‹åºè®¾è®¡äººå‘˜ 如:葛志æ˜?
‹¹‹è¯•人员 如:葛志æ˜?
‹¹‹è¯•目的 如:寚w”™è¯¯é€»è¾‘输入‹‚€éª?
‹¹‹è¯•内容æè¿° 如:对于public int fun3åQˆString p1, int p2 åQ‰çš„输入‹‚€éªŒï¼Œå¦‚æžœ p1 == null ,½E‹åºä¸­æ£€éªŒåˆ°åQŒåº”该记录到¾pÈ»Ÿ logfile, return â€?;
输入期望 P1 == null
åŠŸèƒ½å¤„ç†æœŸæœ›æè¿° Logfile 多一æ¡åކå²è®°å½•,æ–ÒŽ(gu¨©)³•return -1åQ?/TD>
输出期望 Return �
å•å…ƒ‹¹‹è¯•¾l“æžœ
å®žé™…è¾“å…¥æ•°æ® P1 = null
å®žé™…å¤„ç†æƒ…况æè¿° ½E‹åºæ²¡æœ‰˜q›è¡Œp1 == null 的验è¯ï¼Œæ²¡æœ‰åŠæ—¶return â€?åQŒè€Œæ˜¯˜q行åˆ?p1.aaa( ) æ–ÒŽ(gu¨©)³•时出çŽ?null pointer 异常ã€?/TD>
实际输出 没有å†?logfile æ–‡äšgåQ?/TD>
‹¹‹è¯•¾l“论 正常 / 异常
è¡?

4.2 ‹¹‹è¯•¾c»è®¾è®?BR>
ä¸€ä¸ªæ¨¡å—æˆ–一个方法(MethodåQ‰åÆˆä¸æ˜¯ä¸€ä¸ªç‹¬ç«‹çš„½E‹åºåQŒåœ¨è€ƒè™‘‹¹‹è¯•它时è¦åŒæ—¶è€ƒè™‘它和外界的蔾p»ï¼Œç”¨äº›è¾…助模å—åŽÀL¨¡æ‹Ÿä¸Žæ‰€‹¹‹æ¨¡å—相è”系的其他模å—。这些辅助模å—分ä¸ÞZ¸¤¿U:

1. 驱动模å—åQˆdriveråQ?相当于所‹¹‹æ¨¡å—çš„ä¸È¨‹åºã€‚它接收‹¹‹è¯•æ•°æ®åQŒæŠŠ˜q™äº›æ•°æ®ä¼ é€ç»™æ‰€‹¹‹æ¨¡å—,最åŽå†è¾“出实际‹¹‹è¯•¾l“æžœã€?BR>
2. 桩模å—(stubåQ?用于代替所‹¹‹æ¨¡å—è°ƒç”¨çš„å­æ¨¡å—。桩模å—å¯ä»¥åšå°‘é‡çš„æ•°æ®æ“作åQŒä¸éœ€è¦æŠŠå­æ¨¡å—所有功能都带进æ¥ï¼Œä½†ä¸å®¹è®¸ä»€ä¹ˆäº‹æƒ…也ä¸åšã€?BR>
所‹¹‹æ¨¡å—与它相关的驱动模å—åŠæ¡©æ¨¡å—å…±åŒæž„æˆäº†ä¸€ä¸ªâ€œæµ‹è¯•环境â€ï¼Œå¦‚图2。驱动模å—和桩模å—çš„¾~–写会给‹¹‹è¯•带æ¥é¢å¤–的开销。因为它们在软äšg交付时ä¸ä½œäؓ产å“的一部分一åŒäº¤ä»˜ï¼Œè€Œä¸”它们的编写需è¦ä¸€å®šçš„工作é‡ã€‚特别是桩模å—,ä¸èƒ½åªç®€å•地¾l™å‡ºâ€œæ›¾¾l进入â€çš„ä¿¡æ¯ã€‚äØ“äº†èƒ½å¤Ÿæ­£¼‹®çš„‹¹‹è¯•软äšgåQŒæ¡©æ¨¡å—å¯èƒ½éœ€è¦æ¨¡æ‹Ÿå®žé™…å­æ¨¡å—的功能,˜q™æ ·æ¡©æ¨¡å—的建立ž®×ƒ¸æ˜¯å¾ˆè½ÀL¾äº†ã€?/SPAN>



å›? å•å…ƒ‹¹‹è¯•的测试环å¢?BR>
¾~–å†™æ¡©æ¨¡å—æ˜¯å›°éš¾è´ÒŽ(gu¨©)—¶çš„,其实也是完全å¯ä»¥é¿å…¾~–写桩模å—çš„åQ›åªéœ€åœ¨é¡¹ç›®è¿›åº¦ç®¡ç†æ—¶ž®†å®žé™…桩模å—的代ç ç¼–写工作安排在被测模å—å‰ç¼–写å³å¯ã€‚而且˜q™æ ·å¯ä»¥æé«˜?g¨°u)¹‹è¯•工作的效率,æé«˜å®žé™…桩模å—çš„‹¹‹è¯•频率从而更有效的ä¿è¯äñ”å“的质é‡ã€‚但是,ä¸ÞZº†ä¿è¯èƒ½å¤Ÿå‘上一层çñ”æä¾›½E›_®šå¯é çš„实际桩模å—åQŒäØ“åŽç®‹æ¨¡å—‹¹‹è¯•打下良好的基¼‹€åQŒé©±åŠ¨æ¨¡å—还是必ä¸å¯ž®‘çš„ã€?BR>
对于æ¯ä¸€ä¸ªåŒ…或孾pÈ»Ÿæˆ‘们å¯ä»¥æ ÒŽ(gu¨©)®æ‰€¾~–写的测试用例楾~–写一个测试模å—ç±»æ¥åšé©±åŠ¨æ¨¡å—åQŒç”¨äºŽæµ‹è¯•包中所有的待测试模å—。而最好ä¸è¦åœ¨æ¯ä¸ª¾cÖM¸­ç”¨ä¸€ä¸ªæµ‹è¯•函数的æ–ÒŽ(gu¨©)³•åQŒæ¥‹¹‹è¯•跟踪¾cÖM¸­æ‰€æœ‰çš„æ–ÒŽ(gu¨©)³•。这æ ïLš„好处在于åQ?BR>
1. èƒ½å¤ŸåŒæ—¶‹¹‹è¯•包中所有的æ–ÒŽ(gu¨©)³•或模å—,也å¯ä»¥æ–¹ä¾¿çš„‹¹‹è¯•è·Ÿè¸ªæŒ‡å®šçš„æ¨¡å—æˆ–æ–ÒŽ(gu¨©)³•ã€?BR>
2. 能够è”åˆä½¿ç”¨æ‰€æœ‰æµ‹è¯•用例对åŒä¸€ŒDµä»£ç æ‰§è¡Œæµ‹è¯•,å‘现问题ã€?BR>
3. 便以回归‹¹‹è¯•åQŒå½“æŸä¸ªæ¨¡å—作了修改之åŽåQŒåªè¦æ‰§è¡Œæµ‹è¯•ç±»ž®±å¯ä»¥æ‰§è¡Œæ‰€æœ‰è¢«‹¹‹çš„æ¨¡å—或方法。这样ä¸ä½†èƒ½å¤Ÿæ–¹ä¾¿å¾—‹‚€æŸ¥ã€è·Ÿítªæ‰€ä¿®æ”¹çš„代ç ï¼Œè€Œä¸”能够‹‚€æŸ¥å‡ºä¿®æ”¹å¯¹åŒ…内相å…Ïx¨¡å—或æ–ÒŽ(gu¨©)³•所造æˆçš„媄å“,使修改引˜q›çš„é”™è¯¯å¾—ä»¥åŠæ—¶å‘现ã€?BR>
4. å¤ç”¨‹¹‹è¯•æ–ÒŽ(gu¨©)³•åQŒä‹É‹¹‹è¯•å•å…ƒä¿æŒæŒä¹…性,òq¶å¯ä»¥ç”¨æ—¢æœ‰çš„æµ‹è¯•楾~–写相关‹¹‹è¯•ã€?BR>
5. ž®†æµ‹è¯•代ç ä¸Žäº§å“代ç åˆ†å¼€åQŒä‹Éä»£ç æ›´æ¸…æ™°ã€ç®€‹zï¼›æé«˜?g¨°u)¹‹è¯•代ç ä¸Žè¢«‹¹‹ä»£ç çš„å¯ç»´æŠ¤æ€§ã€?BR>
4.3 跟踪调试

跟踪调试ä¸ä½†æ˜¯æ·±å…¥æµ‹è¯•代ç çš„æœ€ä½Ïx–¹æ³•,而且也是½E‹åºè°ƒè¯•å‘现错误æ ÒŽ(gu¨©)ºçš„æœ‰åˆ©å·¥å…—÷€?BR>
‹¹‹è¯•¾c»è®¾è®¡å®ŒæˆåŽåQŒæœ€å¥½èƒ½å€ŸåŠ©ä»£ç æŽ’é”™å·¥å…·æ¥è·Ÿítªè°ƒè¯•å¾…‹¹‹ä»£ç æ®µä»¥æ·±å…¥çš„‹‚€æŸ¥ä»£ç çš„逻辑错误。现有的代ç å¼€å‘工典P¼ˆå¦?JBuilderåQ‰ä¸€èˆ¬éƒ½é›†æˆäº†è¿™¾cÀLޒ错工兗÷€‚排错工具一般由执行控制½E‹åºã€æ‰§è¡ŒçŠ¶æ€æŸ¥è¯¢ç¨‹åºã€è·Ÿítªç¨‹åºç»„æˆã€‚执行控制程åºåŒ…æ‹¬æ–­ç‚¹å®šä¹‰ã€æ–­ç‚ÒŽ(gu¨©)’¤é”€ã€å•æ­¥æ‰§è¡Œã€æ–­ç‚ÒŽ(gu¨©)‰§è¡Œã€æ¡ä»¶æ‰§è¡Œç­‰åŠŸèƒ½ã€‚æ‰§è¡ŒçŠ¶æ€æŸ¥è¯¢ç¨‹åºåŒ…括寄存器ã€å †æ ˆçжæ€ã€å˜é‡ã€ä»£ç ç­‰ä¸Žç¨‹åºç›¸å…³çš„å„ç§çжæ€ä¿¡æ¯çš„æŸ¥è¯¢ã€‚è·Ÿítªç¨‹åºç”¨ä»¥è·Ÿítªç¨‹åºæ‰§è¡Œè¿‡½E‹ä¸­æ‰€¾l历的事件åºåˆ—(如:分支ã€å­½E‹åºè°ƒç”¨½{‰ï¼‰ã€‚程åºå‘˜å¯é€šè¿‡å¯¹ç¨‹åºæ‰§è¡Œè¿‡½E‹ä¸­å„ç§çжæ€çš„判别˜q›è¡Œ½E‹åºé”™è¯¯çš„识别ã€å®šä½åŠæ”ÒŽ(gu¨©)­£ã€?BR>
对于模å—çš„å•元跟ítªè°ƒè¯•,最好能够åšåˆ°å¯¹è¢«æµ‹æ¨¡å—的毋ơ修改,都对æ¯ä¸ª‹¹‹è¯•用例˜q›è¡Œè·Ÿè¸ªæ‰§è¡Œä¸€é以排除所有å¯èƒ½å‡ºçŽ°æˆ–å¼•è¿›çš„é”™è¯¯ã€‚åœ¨æ—‰™—´æœ‰é™çš„æƒ…况下也必™å»è°ƒç”¨é©±åŠ¨æ¨¡å—对所有的‹¹‹è¯•用例执行一‹Æ¡ï¼Œòq¶å¯¹å‡ºçŽ°é”™è¯¯æˆ–å¼‚å¸¸çš„‹¹‹è¯•用例跟踪执行一‹Æ¡ï¼Œä»¥å‘现问题的æ ÒŽ(gu¨©)ºã€?

排错˜q‡ç¨‹å¾€å¾€æ˜¯ä¸€ä¸ªè‰°è‹¦çš„˜q‡ç¨‹åQŒç‰¹åˆ«æ˜¯é‚£ç§½Ž—æ³•å¤æ‚ã€è°ƒç”¨å­æ¨¡å—较多的模å—ï¼Œå¯¹äºŽé”™è¯¯çš„å®šä½æ¥è¯´åÆˆä¸æ˜¯ä¸€ä»¶å®¹æ˜“的事情。尽½Ž¡æŽ’错䏿˜¯ä¸€é—¨å¥½å­¦çš„æŠ€æœ¯ï¼ˆæœ‰æ—¶äºÞZ»¬æ›´æ„¿æ„ç§°ä¹‹äØ“è‰ºæœ¯åQ‰ï¼Œä½†è¿˜æ˜¯æœ‰è‹¥å¹²è¡Œä¹‹æœ‰æ•ˆçš„æ–¹æ³•å’Œ½{–ç•¥åQŒä¸‹é¢ä»‹¾l几¿U排错时应该采用的方法策略ã€?BR>
1. 断点讄¡½®åQŒè®¾¾|®æ–­ç‚¹å¯¹æºç¨‹åºå®žè¡Œæ–­ç‚¹è·Ÿítªå°†èƒ½å¤Ÿå¤§å¤§æé«˜æŽ’错的效率。通常断点的设¾|®é™¤äº†æ ¹æ®ç»éªŒä¸Žé”™è¯¯ä¿¡æ¯æ¥è®¾¾|®å¤–åQŒè¿˜åº”é‡ç‚¹è€ƒè™‘以下几秾c»è¡Œçš„语å¥ã€?BR>
1åQ?函数调用语å¥ã€‚å­å‡½æ•°çš„è°ƒç”¨è¯­å¥æ˜¯‹¹‹è¯•çš„é‡ç‚¹ï¼Œä¸€æ–šw¢ç”׃ºŽåœ¨è°ƒç”¨å­å‡½æ•°æ—¶å¯èƒ½å¼•èµähŽ¥å£å¼•用错误,å¦ä¸€æ–šw¢å¯èƒ½æ˜¯å­å‡½æ•°æœ¬èín的错误ã€?BR>
2åQ?判定转移/循环语å¥ã€‚判定语å¥å¸¸å¸æ€¼šç”׃ºŽè¾¹ç•Œå€ég¸Žæ¯”较优先¾U§ç­‰é—®é¢˜å¼•è“v错误或失效而作出错误的转移。因此,对于判定转移/循环语å¥ä¹Ÿæ˜¯ä¸€ä¸ªé‡è¦çš„‹¹‹è¯•ç‚V€?BR>
3åQ?SQL语å¥ã€‚对于数æ®åº“çš„åº”ç”¨ç¨‹åºæ¥è¯ß_¼ŒSQL语å¥å¸¸å¸¸ä¼šåœ¨æ¨¡å—䏭堿¯”较é‡è¦çš„业务逻辑åQŒè€Œä¸”æ¯”è¾ƒå¤æ‚。因此,它也属于比较å®ÒŽ(gu¨©)˜“出现错误的语å¥ã€?BR>
4åQ?夿‚½Ž—法ŒDüc€‚å‡ºé”™çš„æ¦‚çŽ‡å¸æ€¸Ž½Ž—æ³•çš„å¤æ‚åº¦æˆæ­£æ¯”ã€‚æ‰€ä»¥è¶Šå¤æ‚的算法越需è¦ä½œé‡ç‚¹è·Ÿè¸ªåQŒå¦‚递归ã€å›žæœ”ç­‰½Ž—法ã€?BR>
2. å¯ç–‘å˜é‡æŸ¥çœ‹åQŒåœ¨è·Ÿè¸ªæ‰§è¡Œçжæ€ä¸‹å½“程åºåœæ­¢åœ¨æŸæ¡è¯­å¥æ—¶å¯ä»¥æŸ¥çœ‹å˜é‡çš„当å‰å€¼å’Œå¯¹è±¡çš„当å‰å±žæ€§ã€‚通过å¯ÒŽ(gu¨©)¯”˜q™äº›å˜é‡å½“å‰å€ég¸Žé¢„期值å¯ä»¥è½»æ„¡š„定佽E‹åºé—®é¢˜æ ÒŽ(gu¨©)ºã€?BR>
3. SQLè¯­å¥æ‰§è¡Œ‹‚€æŸ¥ï¼Œåœ¨è·Ÿítªæ‰§è¡Œæˆ–˜q行状æ€ä¸‹ž®†ç–‘似错误的SQLè¯­å¥æ‰“å°å‡ºæ¥åQŒé‡æ–°åœ¨æ•°æ®åº“SQL查询分æžå™¨ï¼ˆå¦‚:Oracle SQL PlusåQ‰ä¸­è·Ÿè¸ªæ‰§è¡Œå¯ä»¥è¾ƒé«˜æ•ˆçš„‹‚€æŸ¥çº æ­£SQL语å¥é”™è¯¯ã€?BR>
4. 注愾Ÿ¤é›†çŽ°è±¡åQŒç»éªŒè¡¨æ˜Žæµ‹è¯•厽E‹åºä¸­æ®‹å­˜çš„错误数目与该½E‹åºä¸­å·²å‘现的错误数目或‹‚€é”™çŽ‡æˆæ­£æ¯”。根æ®è¿™ä¸ªè§„律,应当寚w”™è¯¯ç¾¤é›†çš„½E‹åºŒDµè¿›è¡Œé‡ç‚ÒŽ(gu¨©)µ‹è¯•,以æé«˜æµ‹è¯•投资的效益。如果å‘现æŸä¸€ä»£ç ŒDµä¼¼ä¹Žæ¯”å…¶ä»–½E‹åºæ¨¡å—更多的错误們֑æ—Óž¼Œåˆ™åº”当花费较多的旉™—´å’Œä»£ä»ähµ‹è¯•è¿™ä¸ªç¨‹åºæ¨¡å—ã€?BR>


]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º µÇ·âÊÐ| Ñô¸ßÏØ| ·½³ÇÏØ| Ç­¶«| Âí¹«ÊÐ| ¾Å½­ÊÐ| °ÍÖÐÊÐ| ÕżҴ¨| ÄϹ¬ÊÐ| °²Í¼ÏØ| ÊæÀ¼ÊÐ| Ë«³ÇÊÐ| ÁÉÔ´ÊÐ| ÁøÁÖÏØ| ¶«¸ÛÊÐ| ²¼¶û½òÏØ| ÒË´¨ÏØ| ·ï¸ÔÏØ| ººÊÙÏØ| Íò°²ÏØ| °×ɽÊÐ| Ä˶«ÏØ| ÅíÉ½ÏØ| ͨ½­ÏØ| ÏçÄþÏØ| ×ÓÖÞÏØ| ÀÉÏªÏØ| ƽÏçÏØ| ɨɽÊÐ| °üÍ·ÊÐ| ¹È³ÇÏØ| ÁêË®| ½ðÃÅÏØ| ³àË®ÊÐ| ÎÄ»¯| ·áË³ÏØ| ·ï¸ÔÏØ| °×ÓñÏØ| ººÔ´ÏØ| ÅÊÖ¦»¨ÊÐ| á°¸ÞÏØ|