Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓà Contest ·ÖÎö²âÊÔÓÃÀýµÄ´úÂ븲¸ÇÂÊ
 
×÷ÕߣºÐìÓ­¾ü,ÕÅά,ÐÐæç³Ì À´Ô´£ºIBM ·¢²¼ÓÚ 2016-4-7
  2338  次浏览      27
 

±¾ÎÄ´Ó´úÂ븲¸ÇÂʵĻù±¾¸ÅÄʼ£¬Ïêϸ½éÉܲâÊÔ¹¤³ÌʦÈçºÎʹÓà Contest À´·ÖÎö²âÊÔÓÃÀýµÄ´úÂ븲¸ÇÂÊ£¬½Ó׎áºÏ FoCuS À´²úÉú²âÊÔÓÃÀýµÄÔ´´úÂ븲¸ÇÂʱ¨±í£¬´ÓÒ»¸öÌØÊâµÄ½Ç¶ÈÀ´¶ÈÁ¿²âÊÔÓÃÀýµÄÓÅÁÓ¡£Í¬Ê±Í¨¹ýÒ»¸öʵ¼ÊÀý×ÓÀ´½²½âÈ¡µÃ´úÂ븲¸ÇÂʵĻù±¾Á÷³Ì£¬Æä¼ä¹á´©Ò»Ð©»ù±¾¸ÅÄ²¢ÇÒÔڵõ½´úÂ븲¸ÇÂʵĻù´¡Ö®ÉÏ·ÖÎöÈçºÎ¸Ä½ø²âÊÔÓÃÀý£¬ÔÚ·´¸´µü´úµÄ¹ý³ÌÖÐÀ´Ìá¸ß²âÊÔÓÃÀýµÄ´úÂ븲¸ÇÂÊ¡£Äú¿ÉÒÔÔÚ¶Ìʱ¼äÄÚÁ˽â´úÂ븲¸ÇÂʵĸÅÄ²¢ÇÒÓ¦ÓÃ×÷Õß½éÉܵÄÁ÷³ÌÀ´·¢ÏÖ²âÊÔÓÃÀýµÄ©¶´£¬ÒÔ¼°·ÖÎö¸Ä½ø²âÊÔÓÃÀý¡£

½â¾öʲôÎÊÌâ

ÎÊÌâµÄÌá³öʱÕâÑùµÄ£º¶ÔÓÚ²âÊÔÈËÔ±À´Ëµ£¬Ê×ÏÈÃæÁÙµÄÎÊÌâ¾ÍÊÇÎÞ·¨¶ÈÁ¿²âÊÔÓÃÀýµÄÖÊÁ¿£¬Èç¹û²âÊÔ¹¤³Ìʦ»¨·Ñ´óÁ¿Ê±¼äдµÄ²âÊÔÓÃÀý²»ÄÜÓÐЧµØ¸²¸ÇÖØÒªµÄʵÏÖ´úÂ룬ÄÇô¿ÉÒÔ±íÃ÷ÕâÑùµÄ²âÊÔÓÃÀý²»ÊÇÓÅÁ¼µÄ¡£Í¬Ê±¿ÉÒÔ¸ù¾Ý²âÊÔ¸²¸ÇÁ˵ı¨±íÀ´·ÖÎöΪʲôûÓи²¸Çµ½ÖØÒªµÄ´úÂ룬½Ó×ÅÐèÒª½øÐиĽø²âÊÔÓÃÀýµÄ´úÂ븲¸ÇÂÊ´ïµ½ÂúÒâµÄ½á¹û¡£´úÂ븲¸ÇÂʸߵ͸ù¾Ý²úÆ·µÄ²»Í¬¶ø²»Í¬£º70%£¬80% ÉõÖÁ 100% ¶¼ÊÇ¿ÉÄܵġ£¶ÔÓÚ²âÊÔ¹¤³ÌʦÀ´½²£¬¿ÉÒÔ×ñÑ­ÕâÑùµÄÁ÷³Ì : »ñÈ¡¸²¸ÇÂÊ ¨C > ·¢ÏÖδ¸²¸ÇµÄ´úÂë ¨C > Ìí¼ÓвâÊÔÓÃÀýÀ´¸ÄÁ¼²âÊÔÓÃÀý£¬±£Ö¤²úÆ·ÖÊÁ¿¡£

´úÂ븲¸ÇÂÊ»ù±¾½éÉÜ

ÔÚ CMMI4 ÌåϵµÄ²âÊÔ¹ý³ÌÖж¨ÒåÁËËĸö¶ÈÁ¿Ö¸±ê£º´úÂ븲¸ÇÂÊ¡¢²âÊÔÖ´ÐÐÂÊ¡¢²âÊÔÖ´ÐÐͨ¹ýÂÊ¡¢²âÊÔȱÏݽâ¾öÂÊ¡£ÆäÖдúÂ븲¸ÇÂʾÍÊÇÃèÊöÁ˳ÌÐòµÄÔ´´úÂëÔÚ¹¦ÄܲâÊÔÖеĸ²¸ÇÂÊ£¬¼´·´Ó³²âÊÔÓÃÀý¶Ô±»²âÈí¼þµÄʵÏÖ´úÂ븲¸Ç³Ì¶ÈµÄÖØÒªÖ¸±ê£¬ËüÒ²ÊǶԲâÊÔ¹¤×÷½øÐÐÁ¿»¯µÄÖØÒªÖ¸±êÖ®Ò»¡£²âÊÔ¹¤×÷ÍùÍù²»È翪·¢ÄÇÑù¿ÉÒÔÓÃͼ±íÊý¾Ý±íʾ½á¹û£¬Ò»¸öÖØÒªÔ­ÒòÖ®Ò»¾ÍÊDzâÊÔÄÑÓÚÁ¿»¯£¬¶ø´úÂ븲¸ÇÂÊǡǡÊǽâ¾öÕâÒ»ÎÊÌâµÄÖØÒªÖ¸±ê¡£Í¬Ê±Ò»¸ö½Ç¶ÈÀ´½²£¬Èí¼þµÄ·çÏպܿÉÄܾʹæÔÚÓÚ´úÂ븲¸ÇÂÊûÓÐÉæ¼°µÄµØ·½£¬´úÂ븲¸ÇÂÊ¿ÉÒÔ·¢ÏÖÆäÖÐδ¸²¸ÇµÄ³¡¾°£¨Test Hole£©, ²âÊÔ¹¤³Ìʦ¸ù¾ÝÕâ¸ö Test Hole À´·ÖÎö²âÊÔÓÃÀý£¬ÒÔ´ËÀ´ÓÅ»¯²âÊÔÓÃÀý£¬Õâ¸ö¹ý³ÌÄÜÏÔÖøÌá¸ß²âÊÔµÄÉú²úЧÂÊ£¬²¢Ìá¸ßÈí¼þ²úÆ·ÖÊÁ¿¡£´úÂ븲¸ÇÂÊÊǸö°×ºÐ²âÊԵĸÅÄ±Ï¾¹×îºóÒª¸ú×Ùµ½Ô´´úÂë¡£Ò»°ãÀ´Ëµ£¬´úÂ븲¸ÇÂʵIJâÊÔÓ¦¸ÃÊÇÔÚ²úÆ·µÄÖкóÆÚÒýÈ룬²»¹ý¶ÔÓÚʹÓÃÃô½Ý¼¼Êõ¿ª·¢µÄ²úÆ·£¬¿ÉÒÔÔÚ¿ªÊ¼¿ª·¢µÄµü´úÖÜÆÚ¾ÍÒýÈë¡£±ÊÕßËùÔÚµÄÍŶӾÍÔÚÏîÄ¿µÄÖкóÆÚʹÓã¬Ö÷ÒªÓÃÓÚ²âÊԻعé²âÊԵĴúÂ븲¸ÇÂÊ¡£

´úÂ븲¸ÇÂÊ»ù±¾µÄÖ¸±ê

Óï¾ä¸²¸Ç Statement coverage (line coverage): ÓÃÓÚÆÀ²â²úÆ·´úÂë¶ÀÁ¢´úÂëÐÐÔÚ²âÊԻÖÐÖ´ÐеÄÐи²¸ÇÂÊ£¬ÓŵãÊǼòµ¥£¬È±µãÊÇÎÞ·¨°üº¬´úÂëµÄÂß¼­·ÖÖ§¡£

»ù±¾Óï¾ä¿é¸²¸Ç Basic block coverage: °Ñ·Ç·ÖÖ§µÄ´úÂëÇøÓò×öΪһ¸ö¼ÆÁ¿µ¥Î»£¬ÓÃÓÚÒ»¸ö if/else ÖеÄij¸ö·ÖÖ§ÐÐÊýÔ¶´óÓÚÁíÒ»¸ö·ÖÖ§£¬ËùÒÔ¿ÉÄÜ»á³öÏÖÕâÏîÖ¸±ê±È½Ï¸ßµÄÇé¿ö¡£

Ìõ¼þ¸²¸Ç Decision coverage (branch coverage): ÓÃÓÚÆÀ¼Û´úÂë·ÖÖ§µØ´úÂ븲¸ÇÂÊ¡£

¹¦Äܸ²¸Ç Function coverage (Method Function): ÆÀ²â²úÆ·´úÂëÔÚ²âÊԻÖÐÖ´Ðз½·¨µÄ¸²¸ÇÂÊ¡£

´úÂ븲¸ÇÂʵÄʵÏÖ·½Ê½

¶ÔÓÚ Java ×÷Ϊ¿ª·¢ÓïÑԵIJúÆ·£¬·ÖÎö´úÂ븲¸ÇÂÊʱºòʹÓà Instrumentation ¼¼Êõ£¬±¾ÖʾÍÊÇÔÚ²úÆ·´úÂëµÄ¹Ø¼üλÖòåÈëͳ¼Æ´úÂ룬¼´ÔÚ´úÂëµÄÿ¸ö·½·¨µÄ¿ªÊ¼¼ÓÈëͳ¼Æ¼ÆÊýÆ÷ºÍÐòÁкţ¬µ±·½·¨±»Ö´ÐÐÖ®ºó£¬¸ù¾ÝÐòÁкÅÒÔ¼ÆËã¸Ä·½·¨±»²âÊÔÓÃÀý²âÊÔµ½¡£Ò»°ãÀ´Ëµ£¬Instrumentation ¼¼Êõ¿ÉÒÔ·ÖΪÁ½ÖÖ·½Ê½£ºClass Instrumentation ºÍ Source Instrumentation¡£Ç°Õß°Ñͳ¼Æ´úÂë²åÈë±àÒëºÃµÄ .class Îļþ£¬¶øºóÕßÔò°Ñͳ¼Æ´úÂë²åÈëÔ´´úÂë (.java Îļþ ) ²¢±àÒë³ÉÐ嵀 .class Îļþ¡£´ó¶àÊý´úÂ븲¸ÇÂʹ¤¾ß²ÉÓÃÕâÁ½ÖÖ Instrumentation ¼¼Êõ¡£ÆäÖÐÓà Class Instrumentation ʹÓÃ×î¹ã£¬ÒòΪÔÚ²úÆ·¿ª·¢µÄÿ¸ö½×¶Î£¬²ÉÓóÖÐø¼¯³ÉµÄ·½Ê½À´¿ª·¢²úÆ·£¬²âÊÔ¹¤³ÌÊ¦Ãæ¶ÔµÄ²»ÊDzúÆ·µÄÔ´´úÂ룬¶øÊǽ»¸¶¸ø²âÊԵIJúÆ·°æ±¾£¬ËùÒÔ¿¼Âǵ½±ÜÃâÐÞ¸ÄÔ´´úÂ룬¶øÖ±½Ó×¢Èëͳ¼Æ´úÂëµ½Éú³ÉµÄ class, ¶ÔÓÚ±¾ÎÄÖÐÒ²ÓõÚÒ»ÖÖ Class Instrumentation ¼¼Êõ¡£

Contest ½éÉÜ

Contest Êǹ¦ÄÜÇ¿´óµÄÒ×ÓõŤ¾ß£¬ÔÚ²âÊÔµÄǰÆÚÓÃÒÔ·¢ÏÖ²¢ÐÐϵͳµÄ bug, ¶ø²»Óý¨Á¢¸´ÔӵIJâÊÔ¶à´¦ÀíÆ÷ºÍ¶àÓ¦ÓõIJâÊÔ»·¾³¡£Contest ¶Ô¿ª·¢ÈËÔ±¿É²âÊÔ¹¤³Ìʦ¶¼ºÜ·Ç³£ÓаïÖú£¬Ëü¿ÉÒÔ×÷Ϊ¶ÀÁ¢ÔËÐеŤ¾ß»òÕßÒ»¸ö Eclipse ²å¼þ£¬¿ª·¢ÈËԱȥÔËÐпÉÒԵõ½µ¥Ôª²âÊԵĴúÂ븲¸ÇÂÊ¡£Contest ¿ÉÒÔÓÃ×îСµÄ³É±¾À´¶ÈÁ¿´úÂ븲¸ÇÂÊ£¬ÔÚµ÷ÊÔÆÚ¼ä£¬¿ÉÒÔ·¢ÏÖËÀËøÐÅÏ¢£¬Contest »¹ÓкܶàÆäËû¹¦ÄÜ£¬´úÂ븲¸ÇÂÊÊÇÎÒÃÇÔÚ±¾ÎÄÖÐÓõ½µÄÒ»¸ö¹¦ÄÜ¡£ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔÔÚÕâÀïÏÂÔØ Contest¡£Contest Ö§³ÖÁ½ÖÖ¼¶±ðµÄ´úÂ븲¸ÇÂÊ£¬¹¦Äܸ²¸Ç method coverage ºÍ»ù±¾Óï¾ä¿é basic-block coverage¡£

·ÖÎö´úÂ븲¸ÇÂʼòµ¥µÄËĸö²½Öè

µÚÒ»²½£ºInstrumentation ÄúµÄÓ¦ÓÃ

Instrumentation ²¿ÊðµÄÓ¦ÓþÍÊǽ«´úÂ븲¸ÇÂʵÄͳ¼Æ´úÂë²åÈëµ½ÄúµÄÓ¦ÓÃÖÐÈ¥µÄ¹ý³Ì£¬Ö§³Ö J2EE µÄÓ¦ÓÃÓУºweb application, °üÀ¨ war ²¿Êð°üºÍ ear ²¿Êð°ü¡£Ö§³Ö J2SE µÄ C/S ϵͳÖÐµÄ Java Ó¦Óá£ÔÚ×ö Instrumentation ²Ù×÷ǰ±ØÐëÏÈ Contest ÔËÐл·¾³£¬ÈÃÀà·¾¶ÄÜÕÒµ½ contest.jar Îļþ¼´¿É¡£

°éËæ Instrumentation ²Ù×÷ÓÐÒ»¸ö preference Îļþ£¬Æä¼Ç¼ÐèÒªÔËÐÐ Instrumentation µÄ²ÎÊý£¬Ãû×ÖΪ King.Properties¡£

ÕâÀïÖ÷Òª¹Ø×¢Ëĸö²ÎÊý¼´¿É£¬ÆäÖÐ method Coverage ºÍ basic-Block Coverage ÊǶþѡһµÄ£¬²»ÄÜͬʱΪ true¡£

methodCoverage = true // Ñ¡Ôñ¹¦Äܸ²¸ÇÂÊ

basicBlockCoverage = false// Ñ¡Ôñ basic block ¸²¸ÇÂÊ

buffer_size = 2048 // ÔËÐÐ instrument µÄ»º³å´óС

output = . //Instrument µÄÊä³öĿ¼µÄ·¾¶

instrument ÃüÁî

¶ÔÓÚ²¿Êð°üÊÇ war µÄ½Å±¾ :

java -classpath yourFolder:\Contest.jar; com.ibm.Contest.instrumentation.Instrument yourFolder\YourApp.war

¶ÔÓÚ C/S µÄ jar ½Å±¾ :

java -classpath yourFolder:\Contest.jar; com.ibm.contest.instrumentation.Instrument your1.jar your2.jar your2.jar

Ö´ÐбàдµÄ½Å±¾£¬¾ÍÔËÐÐ Instrument ÃüÁÔÚÊä³öĿ¼µÄ·¾¶Éϵõ½ com_ibm_contest£¬ÕâÊǸö instrument µÄÊä³öĿ¼¡£È»ºó¾Í»áµÃµ½ÁíÍâÒ»¸ö½á¹ûÎļþ£¬±ÈÈçÄúÔ­À´µÄ²¿Êð°üÊÇ YourApp.war, È»ºó¾Í»áÓÐÐ嵀 YourApp.war Îļþ£¬Size ±ÈÔ­À´µÄ´óһЩ£¬Ô­À´µÄ¾Í»á±¸·ÝΪ YourApp.war_backup¡£

µÚ¶þ²½£º²¿ÊðÄúµÄ²¿Êð°üµ½·þÎñÆ÷ÉÏ

ÔÚǰһ²½ÎÒÃǵõ½Ò»¸ö YourApp.war ²¿Êð°ü£¬È»ºóµÇ½ÄúµÄ·þÎñÆ÷£¬±ÈÈçÊÇ Jboss ·þÎñÆ÷£¬ÕÒµ½ Jboss/server/default/deploy, ÓÃÄú¸ÄÔìµÄ YourApp.war Ìæ»»Ô­Ê¼µÄ YourApp.war, È»ºóÆô¶¯Ó¦Ó÷þÎñÆ÷£¬ÈøÄÔìºó YourApp.war ¿ªÊ¼ÔËÐС£¾­¹ýÒÔÉÏÁ½²½£¬ÔÚÔËÐзþÎñÆ÷ÉÏ´úÂ븲¸ÇÂʵĻ·¾³¾Í½¨Á¢³É¹¦ÁË¡£

µÚÈý²½£ºÔËÐвâÊÔÓÃÀý

ÔÚÕâÒ»²½²âÊÔÈËÔ±¿ÉÒÔÊÖ¹¤Ö´ÐвâÊÔÓÃÀý£¬Ò²¿ÉÒÔÔËÐÐ×Ô¶¯»¯²âÊÔ£¬±ÊÕß¾ÍÊÇÔËÐÐ×Ô¶¯»¯²âÊÔÀ´Ö´ÐвâÊÔÓÃÀý¡£

µÚËIJ½£ºµÃµ½´úÂ븲¸ÇÂÊ

ÔÚǰÈý²½ÔËÐÐÍê³Éºó£¬¾Í»á²úÉú com_ibm_contest Ŀ¼£¬ÒÔ Jboss ΪÀý£¬Õâ¸öĿ¼ÔÚĿ¼Ï±»Éú³ÉÔÚ Jboss\bin£¬¼Ç¼×Å´úÂ븲¸ÇÂʵĸú×ÙÎļþ trace file¡£Ä¿Â¼½á¹¹Èçͼ 1 Ëùʾ¡£

ͼ 1. Contest Instrument Éú³ÉµÄĿ¼½á¹¹

FoCuS ÊÇÒ»¿îÉú³É¸÷ÖÖ±¨±íµÄ¹¤¾ß£¬Óë Contest ½áºÏ£¬¸ù¾Ý Contest µÄ Task ÎļþºÍ Trace Îļþ¿ÉÒÔÉú³É¸÷ÖÖÐèÒªµÄ±¨±í£¬Èç´úÂ븲¸ÇÂʱ¨±í¡¢²âÊÔ©¶´±¨±íµÈµÈ¡£

ͨ¹ý FoCuS µÃµ½´úÂ븲¸ÇÂʵĹý³ÌÈçÏ£ºÆô¶¯ FoCuS, ÔËÐÐ YourFolder\JavaConTest\FoCuS\FoCuS.bat£¬Èçͼ 2 Ëùʾ¡£FoCuS µÄʹÓÿÉÒԲο¼°ïÖúÎļþ£¬ÔÚÕâÀÊ×ÏȱØÐëµ¼Èë Task Îļþ£¬Èçͼ 3 Ëùʾ¡£

ͼ 2. FoCuS Æô¶¯½çÃæ

½ÓÏÂÀ´Ñ¡ÔñÔÚµÚÒ»²½²úÉúµÄ Task ÎļþĿ¼£¬Èçͼ 3 Ëùʾ£º

ͼ 3. Ñ¡Ôñ Task Îļþ

µ¼Èë Task Îļþºó£¬FoCuS ÐèÒª´´½¨Ò»¸öÄ£ÐÍÎļþ£¬Ä£ÐÍÎļþÏ൱ÓÚ¹¤³ÌÎļþ£¬°üº¬ËùÓÐµÄ Task ÎļþºÍ Trace Îļþ£¬ÎÒÃÇÃüÃûΪ Coverage, Èçͼ 4 Ëùʾ¡£

ͼ 4. ´´½¨ÐµÄÄ£ÐÍÎļþ

½ÓÏÂÀ´µ¯³öÒ»¸öÏûÏ¢´°¿ÚÏÔʾȫ²¿µÄ Task ÎļþÊýÄ¿£¬Õâ¸öÊýÄ¿ºÍÄúÔÚµÚÒ»²½Éú³ÉµÄ Task ÎļþÏàͬ£¬Èçͼ 5 Ëùʾ¡£

ͼ 5. ËùʹÓÃµÄ Task ÎļþµÄÌáʾ½çÃæ

½ÓÏÂÀ´Ñ¡ÔñËùÓÐµÄ Task µÄÎļþÊôÐÔ£¬Èçͼ 6 Ëùʾ¡£

ͼ 6. Ñ¡Ôñ Task ÎļþµÄÊôÐÔ

½ÓÏÂÀ´ÒªÑ¡ÔñÉú³É±¨±í£¬Ñ¡Ôñ Code-Coverage->Hierarchy (Drill Down). Èçͼ 7 Ëùʾ¡£

ͼ 7. Éú³É±¨±í²Ëµ¥

ÔÚÕâÒ»²½ÇëÑ¡Ôñ Trace Îļþ£¬È»ºóÔËÐÐËùÓеIJâÊÔÓÃÀýºóÉú³É Trace£¬Èçͼ 8 Ëùʾ£º

µã»÷ Add °´Å¥£¬È»ºóÑ¡Ôñ Trace ÎļþËùÔÚµÄλÖá£

ͼ 8. Ñ¡Ôñ Trace Îļþ½çÃæ

Ñ¡ÔñÍê Trace Îļþºó£¬µã»÷ Create Report °´Å¥£¬ÕâÑù¾ÍÉú³É´úÂ븲¸ÇÂʵı¨±í£¬Éú³É±¨±íµÄʱ¼ä¸ù¾Ý Task ÎļþµÄÊýÄ¿¶ø²»Í¬£¬×îºóÉú³ÉµÄ±¨±íÈçͼ 9 Ëùʾ¡£

ͼ 9. Éú³ÉµÄ±¨±í

ͼ 9 µÚÒ»ÐÐÏÔʾ´úÂ븲¸ÇÂÊΪ 49.2%£¬ÏÔʾ×ܹ²ÓÐ 5593 ¸ö·½·¨ÐèÒª±»²âÊÔ£¬ÆäÖÐÄúµÄ²âÊÔÓÃÀý¸²¸Çµ½ 2752 ¸ö·½·¨£¬Á½ÕßµÄÏà³ýµÄ½á¹û¾ÍÊÇ´úÂ븲¸ÇÂÊ¡£½Ó×ÅÔÙ¿´ºìÉ«²¿·ÖÏÔʾµÄÊÇûÓи²¸ÇµÄ´úÂ루¸²¸ÇÂÊΪ 0%£©£¬ÂÌÉ«²¿·ÖÏÔʾȫ²¿¸²¸ÇµÄ´úÂë ( ¸²¸ÇÂÊΪ 100%)£¬»ÆÉ«²¿·ÖÏÔʾµÄÊÇÖ»Óв¿·Ö´úÂë±»¸²¸Ç¡£

ͬʱÎÒÃÇ¿ÉÒÔ´´½¨²âÊÔ©¶´ (Test Hole) ±¨±í£¬Ñ¡Ôñ Functional-Coverage -> Holes (Drill Down)£¬Èçͼ 10 Ëùʾ¡£

ͼ 10. Ñ¡Ôñ²âÊÔ©¶´²Ëµ¥

ÔÚÕâ¸ö´°¿ÚÖУ¬ÔÚÄ¿±ê·¾¶ÉÏÑ¡Ôñ Trace Îļþ£¬È»ºóµã»÷ Create Report °´Å¥£¬ÕâÑù¾ÍÉú³É²âÊÔ©¶´±¨±í£¬Õâ¸ö±¨±íÏÔʾËùÓеÄûÓб»²âÊÔÓÃÀý¸²¸ÇµÄ´úÂ룬±¨±íͼ 11 Ëùʾ¡£

ͼ 11. Éú³É²âÊÔ©¶´±¨±í

Èç¹ûÎÒÃÇÐèÒª¿´¿´ÄÇЩ´úÂëûÓб»¸²¸Ç£¬Ö±½Óµã»÷ Substring µÄÏîĿȥ¿´ÏêϸÄÚÈÝ£¬±ÈÈçÎÒÃÇÑ¡Ôñ delete ÏîÄ¿£¬µã»÷½øÈ¥¿´µ½Èçͼ 12 Ëùʾ¡£

ͼ 12. ²âÊÔ©¶´Ïêϸ±¨±í

ÔÚÕâ¸öͼ±íÖУ¬±ÈÈçÎÒÃÇ¿´µ½ÔÚĿ¼ com\pasw\dms\uiservice\serviceImpl\quicklaunch ÖÐµÄ UserPreferenceServiceImpl.java Ô´Îļþ£¬¼ì²éµ½ deleteApplicationGroup (com.pasw.dms.userprefs.TypeApplicationBookmark) ·½·¨Ã»Óб»¸²¸Ç£¬Õâ¸ö±¨±í·Ç³£Ã÷È·µØ¸æËß²âÊÔÈËÕâ¸ö·½·¨Ã»Óб»²âÊÔµ½£¬ÄÇôÎÒÃǾͼì²é²âÊÔÓÃÀý£¬ÊÇ·ñÓжÔÓ¦Õâ¸ö·½·¨µÄ²âÊÔÓÃÀý£¬½Ó×Å¿ÉÒÔ²¹³äÕâ¸ö²âÊÔÓÃÀýÒÔÌá¸ß´úÂ븲¸ÇÂÊ¡£ÒÔ´ËÀàÍÆ¼ì²éËùÓÐûÓб»¸²¸Çµ½µÄ·½·¨£¬²¢·ÖÎöºÍ²¹³äȱʧµÄ²âÊÔÓÃÀý¡£

×ܽá

ÎÒÃÇ¿ÉÒÔÃâ·ÑµØ»ñµÃ Contest ºÍ FoCuS ¹¤¾ß£¬²¢ÓÃÓÚÏîÄ¿¿ª·¢¡£ÕâÁ½¸ö¹¤¾ßʹÓ÷½·¨ºÜ¼òµ¥£¬ÕâÑù¼õÉÙѧϰ¹¤¾ßµÄʱ¼ä¿ªÏú£¬Ê¹²âÊÔÈËÔ±Ö»ÐèÒª°Ñʱ¼ä»¨ÏúÔÚ׫д²âÊÔÓÃÀý²ãÃæ¡£Contest ÊÇÒ»¸öÓÃÓÚ¼ì²âºÍ±¨¸æ Java ´úÂ븲¸ÇÂʵĿªÔ´¹¤¾ß¡£Ëü²»µ«ÄܺܺõÄÓÃÓÚСÐÍÏîÄ¿£¬ºÜ·½±ãµÃµÃ³ö¸²¸ÇÂʱ¨¸æ£¬¶øÇÒÊÊÓÃÓÚ´óÐÍÆóÒµ¼¶±ðµÄÏîÄ¿¡£Contest Ö§³ÖÁ½ÖÖ·½Ê½µÄ´úÂ븲¸ÇÂÊ·ÖÎö£¬Óû§¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒª½øÐÐÑ¡Ôñ¡£

FoCuS ¹¤¾ß¿ÉÒԺܷ½±ãµØÕë¶Ô±¾»úÒÔ¼°Ô¶³Ì»úÆ÷É쵀 Java ³ÌÐò½øÐдúÂ븲¸Ç·ÖÎö£¬·ÖÎö±¨¸æ¿É×Ô¶¯Éú³É¡£FoCuS ¿ÉÒÔ¾«È·µØÕÒ³ö±»¸²¸ÇÒÔ¼°Ã»Óб»¸²¸ÇµÄ·½·¨£¬ÒÔ¶àÖÖ±¨±íÀ´Õ¹Ê¾¸øÓû§£¬Í¨¹ý¸²¸ÇÂÊÊý¾Ý£¬¿ÉÒÔÖªµÀ²âÊÔµÃÊÇ·ñ³ä·Ö£¬²âÊÔµÃÈõµãÔÚÄÄЩ·½Ã棬½ø¶ø¿ÉÒÔÖ¸µ¼ÎÒÃÇÉè¼ÆÄܹ»Ôö¼Ó¸²¸ÇÂʵIJâÊÔÓÃÀý¡£

´úÂ븲¸ÇÂÊÔÚʵ¼ÊÓ¦ÓÃÖг£Óë×Ô¶¯²âÊÔÏà½áºÏÒÔ´ïµ½×îºÃµÄЧ¹û¡£×Ô¶¯²âÊÔ¹ý³ÌÖеĴúÂ븲¸ÇÂÊ·ÖÎö£¬ÒÔ×îСµÄ²âÊÔ´ú¼Û£¬×ȷµÄ·ÖÎö£¬À´»ñµÃµ±Ç°µÄ²âÊÔÍê³ÉÇé¿ö£¬Îª²âÊÔÈËÔ±Ìá¸ßÁËÁ¼ºÃµÄ·ÖÎö±¨¸æ£¬ÒÔ±ã²âÊÔÈËÔ±¸Ä½øºÍÐÂÔöеIJâÊÔÓÃÀý£¬´ó´óÌá¸ßÁ˻عé²âÊԵIJâÊÔЧÂÊÓëÖÊÁ¿¡£

   
2338 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

LoadRunnerÐÔÄܲâÊÔ»ù´¡
Èí¼þ²âÊÔ½á¹û·ÖÎöºÍÖÊÁ¿±¨¸æ
ÃæÏò¶ÔÏóÈí¼þ²âÊÔ¼¼ÊõÑо¿
Éè¼Æ²âÊÔÓÃÀýµÄËÄÌõÔ­Ôò
¹¦ÄܲâÊÔÖйÊÕÏÄ£Ð͵Ľ¨Á¢
ÐÔÄܲâÊÔ×ÛÊö

ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
²âÊÔ¹ý³ÌÓëÍŶӹÜÀí
LoadRunner½øÐÐÐÔÄܲâÊÔ
WEBÓ¦ÓõÄÈí¼þ²âÊÔ
ÊÖ»úÈí¼þ²âÊÔ
°×ºÐ²âÊÔ·½·¨Óë¼¼Êõ

ij²©²ÊÐÐÒµ Êý¾Ý¿â×Ô¶¯»¯²âÊÔ
IT·þÎñÉÌ Web°²È«²âÊÔ
IT·þÎñÉÌ ×Ô¶¯»¯²âÊÔ¿ò¼Ü
º£º½¹É·Ý µ¥Ôª²âÊÔ¡¢Öع¹
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀý·ÖÎö
»¥ÁªÍøweb²âÊÔ·½·¨Óëʵ¼ù
»ùÓÚSeleniumµÄWeb×Ô¶¯»¯²âÊÔ