æè¿ããã·ã¢ããã³æµ·å€ã®ããŸããŸãªå°éITäŒè°ã§ã®ååšæã匷åããŸããã ã»ãšãã©ã®ã€ãã³ãã§ã¯ãã¹ã¿ã³ãã§ç«ã¡äžããããšããŸããããã¬ãŒã³ããŒã·ã§ã³ãè¡ãããšããããŸãã äŒè°ã¯ãåœç€Ÿè£œåïŒPVS-Studioéçã³ãŒãã¢ãã©ã€ã¶ãŒïŒã®èªç¥åºŠãé«ããã ãã§ãªããæãéèŠãªããšã«ã¯ãæœåšçãªæ¢åãŠãŒã¶ãŒããã身è¿ã«ç¥ãããšãã§ããŸãã ã¹ã¿ã³ãã§èšªåè ãšã³ãã¥ãã±ãŒã·ã§ã³ãåããªãããåœç€Ÿã®åŸæ¥å¡ã¯ãã°ãã°åã質åã«çããŸãã ãã®èšäºã§ã¯ãäžè¬çãªéç解æãç¹ã«PVS-Studioã«é¢ãã蚪åè ã®æããããã質åã«çããããšããŸãã
æå§ãã«ããæåŸ ãšçŸå®ããããŒãã«ããã¡ãã£ãšãããŠãŒã¢ã¢ã ç§ãã¡ã¯å€ãã®èšäºãæžããŠããã人ã ããã§ã«ããããèªãã§ãããªããå°ãªããšãäžè¬çã«ã¯åœŒãã¯ç§ãã¡ã®è£œåãšãã®æ©èœã«ã€ããŠç¥ã£ãŠãããšåçŽã«ä¿¡ããŠããŸãã æ®å¿µãªãããããã¯åžžã«ããã§ã¯ãããŸããã æè¿ã®äŒè°ã§ã®èšªåè ãšã®å®éã®ã³ãã¥ãã±ãŒã·ã§ã³ã®äŸã次ã«ç€ºããŸãã 蚪åè ïŒãHabréã®èšäºãèªã¿ãŸããã é¢çœãã ããªãã®åæåšãç§ãã¡ã«ãŸã£ããåããªãã®ã¯æ®å¿µã§ãã ãã¹ãŠã®ãœãŒã¹ã³ãŒãã¯ç§å¯ã§ããéä¿¡ããããšã¯ã§ããŸããã ãã ããã¯ã©ãŠãäžã®ãã¹ãŠãããã§æ©èœããŸããã
ç§ãã¡ã®ããŒã±ãã£ã³ã°éšéã«ã¯ããããäœãåãçµãã¹ãããšããããŸãã
次ã«ãç§ã¯å±ç€ºäŒã®ç§ãã¡ã®ã¹ã¿ã³ãã«äžè¬çãªèšªåè ããã®ä»ã®äžè¬çãªè³ªåãšãããããžã®å³åžã®å¯Ÿè©±åœ¢åŒã§ã®åçãããŸãã
QïŒããªãã«ã€ããŠäœãèããŸããã ããªãã¯ã©ãããæ¥ãŠãäœãããŠããŠãããªãã®ããšããã£ãšç¥ãã«ã¯ïŒ
AïŒç§ãã¡ã¯ãã¥ãŒã©ã®å°ããªç¬ç«ããããŒã ã§ãã CãC ++ãCïŒãJavaèšèªçšã®éçã³ãŒãã¢ãã©ã€ã¶ãŒã§ããPVS-StudioãéçºããŠããŸãã PVS-Studio Webãµã€ãã§ãåœç€Ÿã®è©³çŽ°ã確èªã§ããŸãã ãŸããèšäºãæžããããã° ã Habré ããã®ä»ã®ãªãœãŒã¹ã«æçš¿ããŸãã
QïŒã©ã®ãããªéç解æã§ããïŒ ç§ãã¡ã®ããŒã ã«ã¯ãååãªã³ã³ãã€ã©èŠåãšå ±åã³ãŒãã¬ãã¥ãŒããããŸãã
AïŒã³ã³ãã€ã©ã¯ãã°ãã¹ã§ããªãæçœãªãšã©ãŒã®ã¿ãææã§ããŸãã ããšãã°ãå°éäžèœã³ãŒããŸãã¯åæåãããŠããªãå€æ°ã®äœ¿çšã ã³ã³ãã€ã©ã®ãšã©ãŒæ€åºã¯å¯æ¬¡çãªã¿ã¹ã¯ã§ãã ã¯ããã³ã³ãã€ã©ã¯æè¿éåžžã«ã€ã³ããªãžã§ã³ãã«ãªããŸããã ããããã³ãŒãå ã®ãšã©ãŒãèŠã€ããããã®ç¹å¥ãªããŒã«ã¯ã³ã³ãã€ã©ãããã¯ããã«åªããŠãããããã³ãŒãã®è©³çŽ°ãªåæãè¡ããã¿ã€ããã¹ãè«çãšã©ãŒããã«ãã€ã³ã¿ãŒ/ãªã³ã¯ã®æœåšçãªäœ¿çšãªã©ãç¹å®ã§ããŸãã
å ±åã³ãŒãã¬ãã¥ãŒã¯ãå®çžŸã®ããåªãããã¯ãããžã§ãã ããããä»ã®äººã®ã³ãŒãã«åãçµãããã«è¿œå ã®åŸæ¥å¡ãåŒãä»ããå¿ èŠæ§ã«é¢é£ããæ¬ ç¹ããããŸãã ããã«ããéçºã³ã¹ããå¢å ããŸããããã¹ãç¯ãã®ã¯äººéã®æ§è³ªã§ããããããšã©ãŒãã¹ããããããæ°ãããšã©ãŒãè¿œå ãããããå¯èœæ§ã¯æ®ããŸãã
éçåæãšã¯ãããã°ã©ã ãå®è¡ããã«ãœãŒã¹ã³ãŒããæ€èšŒããããšã§ãã ãšã©ãŒã«å¯Ÿããè¿œå ã®éå£ãšããŠéçã³ãŒãåæããŒã«ã䜿çšããããšããå§ãããŸãã
QïŒ PVS-Studioã¯å®è¡å¯èœãã¡ã€ã«ãåæããŸããããããšããœãŒã¹ã³ãŒããçŽæ¥åæããŸããïŒ
AïŒè匱æ§ã®æ€çŽ¢ã«ã€ããŠèª¬æããå Žåãå®è¡å¯èœã³ãŒãã®åæã¯ããŠã€ã«ã¹å¯Ÿçã®åäœã«ãã䌌ãŠãããããŒã¿ããŒã¹ã®ãã€ããªã³ãŒãã§çœ²åãæ€çŽ¢ããŸãã
PVS-Studioã¯ãœãŒã¹ã³ãŒããåæããŸã ã ããã«ãããã¯ããã«åºãç¯å²ã®ãšã©ãŒãšæœåšçãªè匱æ§ãç¹å®ããäœæ¥ã®é床ãäžããããä¿¡é Œæ§ã®é«ãçµæãåŸãããšãã§ããŸãã
ã¯ãããã¡ãããã³ãŒããéã¢ã»ã³ãã«ããŠãã¢ã«ãŽãªãºã ã®ãšã©ãŒãèŠã€ããããšãã§ããŸãã ãã ãããã€ããªã³ãŒãã§ã¯å€ãã®æ å ±ã倱ãããããšãç解ããå¿ èŠããããŸãã ããšãã°ãã³ãŒããã³ã³ãã€ã«ããããšãçã®æ¡ä»¶ã¯åžžã«åçŽã«åé€ããããã®æ¡ä»¶ã«åé¡ãããããšãèŠã€ããæ¹æ³ã¯ãããŸããã
QïŒçµ±åãªãã·ã§ã³ãšã¯äœã§ããïŒ IDEã®ãã©ã°ã€ã³ã¯ãããŸããïŒ
AïŒçŸåšãPVS-Studioã¯ãã©ã°ã€ã³ãšããŠVisual Studio 2010-2017ã«çµ±åãããŠããŸãã IntelliJ IDEAçšã®Javaãã©ã°ã€ã³ããããŸãã ãŸããç¹æ®ãªã¢ãžã¥ãŒã«ã®ãããã§ãQt CreatorãšCLionã§CMakeãããžã§ã¯ãã管çã§ããŸãã
ã¢ãã©ã€ã¶ãŒã¯çµ¶ããé²åããŠããããã åœç€Ÿã®Webãµã€ãã«ã¢ã¯ã»ã¹ããŠã補åã®æ©èœã«é¢ããææ°æ å ±ã確èªã§ããŸãã
QïŒ SonarQubeã䜿çšããŠããŸãã
AïŒãã°ãããéžæã SonarQubeã®PVS-Studioãã©ã°ã€ã³ã䜿çšãããšãåæçµæãSonarQubeã«ã€ã³ããŒãããéåžžã®æ¹æ³ã§ããããæäœã§ããŸãã
QïŒã©ãããããããåæããã«ãã·ã¹ãã ã«çµ±åããå¿ èŠããããŸãã
AïŒ PVS-Studioã¯ã³ãã³ãã©ã€ã³ãã䜿çšã§ããŸãã ã¢ãã©ã€ã¶ãŒã«ã¯ãåºç¯ãªã¿ã¹ã¯ã解決ããããã®å€æ°ã®èšå®ãå«ãŸããŠããŸãã ãŸãã䜿çšã·ããªãªã«é¢ä¿ãªããã¢ãã©ã€ã¶ãŒã®å®è£ ãã§ãŒãºäžã«ã¯ã©ã€ã¢ã³ãã«ãµããŒããæäŸããã©ã€ã»ã³ã¹æéå šäœãéããŠæè¡ãµããŒããæäŸããŸãã
QïŒã¢ãã©ã€ã¶ãŒãè©Šãæ¹æ³ã¯ïŒ
AïŒ ããŠã³ããŒãããŒãžã䜿çšã㊠ãå¿ èŠãªé åžããããããŠã³ããŒãããPVS-Studioãè©Šçšã¢ãŒãã§æäœããŸãã 補åã®è©äŸ¡ã«ããã«æéãå¿ èŠãªå ŽåããŸãã¯ãã¢çã®å¶éã«æºè¶³ã§ããªãå Žåã¯ããåãåãããã ãã ã
ãŸããå±ç€ºäŒã§ã¯ã蚪åè ã¯ãšã³ã¿ãŒãã©ã€ãºããŒãååŸã§ããŸãããã®æå¹æéã¯1ãæã§ãã ãããè¡ãã«ã¯ããŠãã³ãŒã³ãæã£ãŠããŒã¹ã«æ¥ãŠãã ããã ããã«ãå®ããã®ã¡ã³ããŒã«ãªããPVS-Studioããè³åãåãåãããšãã§ããŸãã
QïŒç§ã¯åŠçã§ãããPVS-Studioãç¡æã§äœ¿çšã§ããŸããïŒ
AïŒããã¯ããœãŒã¹ã³ãŒãã«ç¹å¥ãªçš®é¡ã®ã³ã¡ã³ããè¿œå ããå Žåã«å¯èœã§ãã ãã®æ¹æ³ã§ããŒã¯ããããã¡ã€ã«ã¯ãå¶éãªãã§ãšã©ãŒããã§ãã¯ãããŸãã ãã®åäœã¢ãŒãã®è©³çŽ°ã«ã€ããŠã¯ãã PVS-Studioãç¡æã§äœ¿çšããæ¹æ³ ãã®èšäºãã芧ãã ããã
QïŒé¡§å®¢ã¯èª°ã§ããïŒ
AïŒçŸåšãäžçäžã®200瀟以äžã®äŒæ¥ã顧客ã«ãªã£ãŠããŸãã 圌ãã®æŽ»åç¯å²ã¯éåžžã«å€æ§ã§ãã æ¢åã®é¡§å®¢ã®ãªã¹ãã¯ã åœç€Ÿã®ãŠã§ããµã€ãã§èŠã€ããããšãã§ããŸãã
QïŒããã§ãããŒã«ã«æäœã¢ãŒãããããŸããïŒ
AïŒ PVS-Studioã¢ãã©ã€ã¶ãŒã¯å°çšã³ã³ãã¥ãŒã¿ãŒã«ããŒã«ã«ã«ã€ã³ã¹ããŒã«ãããå®å šã«ç¬ç«ããŠåäœããŸãã ãã©ã°ã€ã³ããããã¥ã¡ã³ãïŒèšºæã®èª¬æãªã©ïŒãžã®ã¯ã€ãã¯ãªã³ã¯ã ãã§ãªããæŽæ°ãåä¿¡ããã«ã¯ã€ã³ã¿ãŒãããæ¥ç¶ãå¿ èŠã§ãã çŸåšããã¯ã©ãŠãããä»ããŠäœæ¥ããããã®ãªãã·ã§ã³ãæ€èšããŠããŸãããããã¯æšæºæäœã¢ãŒãã«è¿œå ããããã®ã§ãã
QïŒãããŠãããšãã°ãCoverityã¢ãã©ã€ã¶ãŒã§åŸæãªããšã¯äœã§ããïŒ
AïŒãã®è³ªåã«ç°¡åã§å æ¬çãªçããåºãããšã¯äžå¯èœã§ãã ä»ã®ã¢ãã©ã€ã¶ãŒãšæ¯èŒããè©Šã¿ã¯ãã¹ãŠå€±æããŸããã ç§ãã¡ã¯ãç¹å¥ã«æºåããããã¹ãããŒã¹ãšä»ã®èŽåœçãªçœªã䜿çšããŠãçµæããå·»ãäžããããã€ã¢ã¹ã§åçºãããŸããã ããã«ãã¢ãã©ã€ã¶ãŒãåã«ãæ£é¢ãããæ¯èŒããããšã¯ã§ããŸããã åããŒã«ã¯äžæã§ãããç¬èªã®é·æãšçæããããŸãã äžéšã®ããŒã«ã¯ããã©ãŒãã³ã¹ã«éç¹ã眮ããŠãããä»ã®ããŒã«ã¯ã³ãŒãã®ãã«ããããèŠã€ããŠã¹ã¿ã€ã«ãæ¹åããããšã«çŠç¹ãåœãŠãŠããŸãã ãã°ãšæœåšçãªè匱æ§ãæ¢ããŸãã
åžæãšé©åãªæ¹æ³è«ãããã°ã調æ»ãå®æœããåœç€Ÿã®ã¢ãã©ã€ã¶ãŒãä»ã®ã¢ãã©ã€ã¶ãŒãšæ¯èŒããŠãããã«ã€ããŠã®èšäºãæžãããšãã§ããŸãã ãããè¡ãã«ã¯ãå¶éãªãã§äžæã©ã€ã»ã³ã¹ããŒãçºè¡ããŸãã ããããæ¹å€ã«åããŠãã ããã
QïŒããããªãã®ã§ãã³ã³ãã€ã«ãããŠããªãã³ãŒãã§ã®ã¿ãšã©ãŒãæ¢ããŠããŸããïŒ ã€ãŸããããã°ã©ã ã¯ã³ã³ãã€ã©ãŒãã§ãã¯ãããã¹ããŸããã§ãããïŒ
AïŒããã§ã¯ãããŸããã PVS-Studioã¯ãã³ã³ãã€ã«ãããããã°ã©ã ã§ã®ã¿ãšã©ãŒãæ€çŽ¢ããã³æ€åºããŸãã å®éã®ã¢ããªã±ãŒã·ã§ã³ã§ã ãããã®ããã°ã©ã ã¯ãšã©ãŒãªãã§ã³ã³ãã€ã«ãããã ãã§ãªããä»ã®ã¢ãã©ã€ã¶ãŒã«ãã£ãŠãã§ãã¯ããããã®ããããŸãã ããã§ãããšã©ãŒãæ¢ããŸãã ããã«ã€ããŠã¯ããªãŒãã³ãœãŒã¹ãããžã§ã¯ãããã§ãã¯ããŠãããã°ã«èšäºãæžãããšããããããŸãã
QïŒ PVS-Studioã¯ãããžã§ã¯ãã§ã©ã®ãããªãšã©ãŒãæ€åºã§ããŸããïŒ ã¿ã€ããã¹ïŒ
AïŒãã¡ãããã¿ã€ããã¹ã¯éç解æã«ãã£ãŠæ€åºãããå€å žçãªãšã©ãŒã®ã¯ã©ã¹ã«å±ããŸãã ããããããã«å ããŠãPVS-Studioã¯æœåšçã«æ°çŸã®ãšã©ãŒãã¿ãŒã³ãæ€åºã§ããŸãã äŸïŒãã«ãã€ã³ã¿ãŒã®éåç §ããŒãé€ç®ãæ¡ä»¶ã¯åžžã«falseãŸãã¯trueãäžæ£ãªã€ã³ããã¯ã¹æäœãé åã®å¢çå€ãžã®ç§»åãªã©ã ãšã©ãŒã®å®å šãªãªã¹ãã¯ã ããã¥ã¡ã³ãããŒãžã«èšèŒãããŠããŸãã
QïŒã¢ãã©ã€ã¶ãŒã§ç¢ºèªããåŸãããã°ã©ã ã«ãšã©ãŒãå«ãŸããŠããªãããšã確èªã§ããŸããïŒ
AïŒãããã PVS-Studioã¯ãããã°ã©ã ã®æ£ç¢ºæ§ã蚌æããããã®ããŒã«ã§ã¯ãããŸããã ããã¯å¥ã®ã¯ã©ã¹ã®ããŒã«ã§ãã ã¢ãã©ã€ã¶ãŒã®ã¿ã¹ã¯ã¯ãã³ãŒãå ã®æœåšçãªãšã©ãŒãè¿ éãã€ç¢ºå®ã«ç€ºãããšã§ãã ç¹å®ã®èšèšã®èª€ibilityæ§ã«é¢ãã決å®ã¯ãéçºè ãåžžã«ãšã©ãŒã®çºçã®ã³ã³ããã¹ããšãããžã§ã¯ãã«é¢ããç¥èã䜿çšããŠè¡ããŸãã ãŸããã¢ãã©ã€ã¶ãŒã¯éçºè ãæ¯æŽãã誀æ€ç¥ã®æ°ãæå°éã«æããåãåã£ãèŠåã®ãªã¹ããåŠçããããã®è¿œå æ©èœãæäŸããŸãã
QïŒ PVS-Studioã¯ã©ã®ããã«æ©èœããŸããïŒ ã©ã®ãããªçš®é¡ã®ãšã©ãŒæ€çŽ¢ã¡ã«ããºã ã§ããïŒ ããããæ£èŠè¡šçŸã䜿çšããŠããŸãã
AïŒæ£èŠè¡šçŸã®äœ¿çšã¯éåžžã«éå¹ççã§ãã ããšãã°ãæ¡ä»¶å ã§æãåå§çãªãšã©ãŒã®ã¿ãæ€åºã§ããŸãïŒ2ã€ã®åäžã®éšååŒãæ¯èŒããŸãïŒã
if ((a+b+) == (a+b+)) {....}
åæã«ãïŒäœæ¥ã®ããžãã¯ãå€æŽããã«ïŒã³ãŒããå°ãå€æŽãããšããã®ãããªã¢ãã©ã€ã¶ãŒã¯è¡ãæ¢ãŸãã«ãªããŸãã
if ((a+b+) == (b+a+)) {....}
PVS-Studioã¢ãã©ã€ã¶ãŒã¯ã¯ããã«ã€ã³ããªãžã§ã³ãã§ããã次ã®ã¡ã«ããºã ã䜿çšããŸãã
- æœè±¡æ§ææšã«åºã¥ããã¿ãŒã³ãããã³ã°ã
- åæšè«ãç¶ãã»ãã³ãã£ãã¯ã¢ãã«ã®æ§ç¯ã
- ã·ã³ããªãã¯å®è¡ããšã©ãŒã«ã€ãªããå¯èœæ§ã®ããå€æ°ã®å€ãèšç®ããããå€ã®ç¯å²ããã§ãã¯ãããã§ããŸãïŒç¯å²ãã§ãã¯ïŒã
- ããŒã¿ãããŒã®åæïŒããŒã¿ãããŒåæïŒã
- ã¡ãœããã®æ³šé
ããã¯ãã¹ãŠãç§ã®ååã®Andrei Karpovãæè¿ã®èšäºã ãšã©ãŒããã³æœåšçãªè匱æ§ãèŠã€ããããã«PVS-Studioã³ãŒãã¢ãã©ã€ã¶ãŒã§äœ¿çšãããæè¡ ãã§è©³ãã説æããŸããã
QïŒãŸããC / C ++ãããžã§ã¯ãã15幎ã®éçºã500äžè¡ã®ã³ãŒãããããŸãã ä»ããPVS-Studioã®äœ¿çšãéå§ã§ããŸããïŒ
AïŒã¯ãã å®è£ 段éã§ã¯ããããžã§ã¯ãã®å®å šãªãã§ãã¯ãäžåºŠè¡ãå¿ èŠããããŸãã ãã®åŸãåä¿¡ãããã¹ãŠã®èŠåïŒããããå€ãã®èŠåã衚瀺ãããŸãïŒã¯ãåŸã§ãã®æè¡çè² åµã«æ»ãããã«ãé¢çœããªãïŒäžæçã«çµè«ãæå¶ããŠããïŒããšã«æ³šæããããšãã§ããŸãã ãã®åŸãPVS-Studioã䜿çšããŠå®æçã«æ°ããã³ãŒãã®ã¿ããã§ãã¯ã§ããŸãã ãã®ããŒãžããã³ã¢ãã©ã€ã¶ã®ãã®ä»ã®æ©èœã®è©³çŽ°ã«ã€ããŠã¯ãããã¥ã¡ã³ãã®ããŒãžãã芧ãã ãã ã
QïŒã©ã®ãããã®é »åºŠã§ãã¹ããå®è¡ããå¿ èŠããããŸããïŒ ãããŠãæ¯åã³ãŒãããŒã¹å šäœããã§ãã¯ããŸããïŒ
AïŒéç解æãæãå¹ççã«äœ¿çšããã«ã¯ãã§ããã ãé »ç¹ã«æ°ããã³ãŒãããã§ãã¯ããå¿ èŠããããŸãã ãã®ãããPVS-Studioã¯ã€ã³ã¯ãªã¡ã³ã¿ã«åæã¢ãŒããå®è£ ããŠããŸãã ãããžã§ã¯ãã®æåŸã®ãã«ã以éã«å€æŽããããã¡ã€ã«ã¯ãæ€èšŒã®ããã«éä¿¡ãããŸãã ä»ã®æäœã¢ãŒãããããŸãã ããã«ãããéçºæ®µéã§ãã§ã«ãšã©ãŒãèå¥ã§ããããããªãªãŒã¹ã«ãšã©ãŒãæ··å ¥ãããªã¹ã¯ã軜æžãããŸãã
QïŒ PVS-Studioã䜿çšããŠããŸãã ã¢ãã©ã€ã¶ãŒã¯ãšã©ãŒãæ€åºããŸããããã®å€ãã¯æªäœ¿çšã®ã³ãŒããŸãã¯ãã¹ãã«ãããŸãã ããã§ããã§ããïŒ
AïŒããã¯éåžžã«æ£åžžã§ãã åçåæãšã¯å¯Ÿç §çã«ãéçåæã®æ©èœã®1ã€ã¯ãã³ãŒãã®å®è¡æã«å®è¡ãããã³ãŒãã ãã§ãªããã³ãŒãããŒã¹å šäœã®æ€èšŒã§ãã ããã°ã©ã ã³ãŒãã®ãããã°ã«å€ãã®æéãšåŽåãè²»ããããã¹ãŠãå®å®ããŠåäœãããšããŸãã ãããããã£ãã«äœ¿çšãããªããããŸã 䜿çšãããŠããªãé¢æ°ããããŸãã ãã®ãããªé¢æ°ã§ãšã©ãŒãèŠã€ããå¯èœæ§ã¯é«ãã§ãã ãããŠãããæç¹ã§é¢æ°ã®äœ¿çšãéå§ãããšãäœãããããããªããŸãã éç解æã䜿çšãããšããã®ãããªç¶æ³ã®ãªã¹ã¯ãæå°éã«æããããšãã§ããŸãã
ãŸããã³ãŒãã«ã¯æããã«èª€ã£ãæ§é ãå«ãŸããŠããå¯èœæ§ããããŸãïŒããã¯éåžžãã¹ãã§çºçããŸãïŒããããã£ãŠãPVS-Studioèšå®ãä»ããŠïŒãããžã§ã¯ããŸãã¯ãã¹ãæå®ããŠïŒã¹ãã£ã³ããé€å€ããã®ãçã«ããªã£ãŠããŸãã ãã ãããã¹ãèªäœã«ãšã©ãŒãå«ãŸããããšããããŸãã ãã®ãããªç¶æ³ãç¹å®ããããšã¯éåžžã«å°é£ã§ããããã®å Žåãéçºè ã決å®ãäžãå¿ èŠããããŸãã
QïŒè匱æ§ã®æ€çŽ¢ã¯ã©ãã§ããïŒ
AïŒ PVS-Studioã¢ãã©ã€ã¶ãŒã¯SASTïŒéçã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ãã¹ãïŒããŒã«ã§ããã CWE ïŒCommon Weakness EnumerationïŒã«åŸã£ãŠåé¡ãããæœåšçãªè匱æ§ãèå¥ããããšãã§ããŸãã CWEã¢ã©ãŒãã¯ãåŸæ¥ã®PVS-Studioã¢ã©ãŒããšã»ãŒéè€ããŠããŸãã SASTã®è©³çŽ°ã«ã€ããŠã¯ã ããã¥ã¡ã³ããã芧ãã ããã æœåšçãªè匱æ§ãå¿ ãããããã«ãŒã«ãã£ãŠæªçšãããå¯èœæ§ã®ããå®éã®è匱æ§ã«ã€ãªãããšã¯éããªãããšãç解ããããšãéèŠã§ãã èå¥ãããè匱æ§ã¯ã CVE ïŒCommon Vulnerabilities and ExposuresïŒã«ãã£ãŠåé¡ãããŸãã ããã§ãã æœåšçãªè匱æ§ãæé€ããããšã¯ãããã°ã©ã ã®ã»ãã¥ãªãã£ã®åäžã«æããã«è²¢ç®ããå°æ¥ã®å®éã®è匱æ§ãç¹å®ãããªã¹ã¯ãæå°éã«æããŸãã
QïŒéçºããŒã ãçããŠããŸãã PVS-Studioã¯ã©ã®çšåºŠåœ¹ç«ã¡ãŸããïŒ
AïŒã³ãŒãã®å質ãšä¿¡é Œæ§ã®åäžã«å ããŠãPVS-Studioã®å®è£ ã«ãããããšãã°è²¬ä»»ã®åå²ã«é¢é£ããçŽç²ã«ç®¡ççãªã¿ã¹ã¯ã解決ã§ããŸãã ã¢ãã©ã€ã¶ãŒããã±ãŒãžã«ã¯BlameNotifierãŠãŒãã£ãªãã£ãå«ãŸããŠãããããŒãžã§ã³ç®¡çã·ã¹ãã ã«èª€ã£ãã³ãŒããéä¿¡ããåŸæ¥å¡ãèªåçã«èå¥ããããšãã§ããŸãã åæã«ãã¡ãŒã«éç¥ã¯è«è² æ¥è ãšãã®ãããŒãžã£ãŒã®äž¡æ¹ã«éä¿¡ãããŸãã
ãŸãããšã©ãŒã¬ããŒããããããã䜿çšããã®ã«äŸ¿å©ãªè©³çŽ°ãªhtmlã¬ããŒããªã©ããŠãŒã¶ãŒã«ãšã£ãŠäŸ¿å©ãªä»»æã®åœ¢åŒã«å€æããããã«æ§æããããšãã§ããŸãã
æåŸã«ãSonarQubeã䜿çšããå Žåããã®ããŒã«ã®ãã¹ãŠã®å©ç¹ã䜿çšããŠãç¹æ®ãªãã©ã°ã€ã³ã䜿çšããPVS-Studioã¢ãã©ã€ã¶ãŒã䜿çšããŠãããžã§ã¯ãæ€èšŒã®çµæãSonarQubeã«ã¢ããããŒãããããšã«ãããç¶ç¶çãªã³ãŒãå質管çãä¿èšŒã§ããŸãã
QïŒæ©æ¢°åŠç¿ã®äœ¿çšãŸãã¯äœ¿çšãèšç»ããŠããŸããïŒ
AïŒããã¯å€§ãããŠèå³æ·±ããããã¯ã§ãã ããã«ã€ããŠéèŠãªèšäºãæžãäºå®ã§ãã ä»ãç§ã¯ããã€ãã®çãèããè¡šæããã ãã§ãã
æ©æ¢°åŠç¿ã䜿çšããŠèšç®æ©ãäœæããå¿ èŠã¯ãããŸããã äžå®ã®ã«ãŒã«ïŒåŒïŒãããããããã³ãŒãã«é©çšããäœããã®çµè«ãåŒãåºãå¿ èŠããããŸãã ãããã®ãã¿ãŒã³ãæ¢ã«ååšããå Žåãæ°ãããšã©ãŒãã¿ãŒã³ãæ€åºããããã«ãã¥ãŒã©ã«ãããã¯ãŒã¯ãèšå®ããå¿ èŠãããçç±ã¯æããã§ã¯ãªããããããæ£ããé©çšããå¿ èŠããããŸãã ãããŠãæãéèŠãªããšã¯ããã®ãããªãã¬ãŒãã³ã°ã®ããŒã¹ãã©ãã§å ¥æã§ããããæ確ã§ã¯ãªãããšã§ãã ããªããåŠã¶ããšãã§ããæžããããšã©ãŒãããæ°åäžã®ãããžã§ã¯ãã®ãµã³ãã«ã¯ã©ãã«ãããŸããïŒ
ç§ãã¡ã®æèŠã§ã¯ãæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã䜿çšããããšãçã«ããªã£ãŠããå¯äžã®å Žæã¯ã誀æ€ç¥ãé€å€ããããšã§ãã
QïŒ PVS-Studioã§PVS-Studioã³ãŒãããã§ãã¯ããŸããïŒ
AïŒãã¡ããã§ãïŒ ããã«ããšã©ãŒãçºçããå Žåã¯ãç¯äººã®ãªã¹ããå ¬éããããã®åŸã¢ã€ã¹ã¯ãªãŒã ã§å·èµåº«ããç ŽãããŸãã ããããçå£ã«ãç§ãã¡ã¯ããªãèªèº«ã®ããŒã«ã䜿çšããããšãéåžžã«æçšã§ãããšä¿¡ããŠããŸãã ããã«ããããŠãŒã¶ãŒã®èŠ³ç¹ãã補åãèŠãŠãããã€ãã®æ¬ ç¹ã«æ°ä»ãããšãã§ããŸãã
QïŒãã¹ã¯ããããšã€ã€ãŒãã©ããä»ãã®ãã©ã³ããã£ããã®çŽ æŽãããã¹ããŒã¿ã¹ãååŸããã«ã¯ã©ãããã°ããã§ããïŒ
AïŒæå¯ãã®å±ç€ºäŒã§ãŠãã³ãŒã³ãæã£ãŠããŒã¹ã«æ¥ãŠãã ãããããã§ããŒã¹ãåºå±ããŸãã ç§ãã¡ã¯äœããæãã€ããŸã:)
å±ç€ºäŒã§ã®ç§ãã¡ã®ã¹ã¿ã³ããžã®èšªåè ã®æãäžè¬çãªè³ªåã«çããããšãã§ããããšãé¡ã£ãŠããŸãã ãã¡ãããçããã«ã¯å¥ã®èšäºãæžãå¿ èŠããããããããªãããè€éãªè³ªåããããŸãã
蚪åè ãšéä¿¡ãããšããç§ãã¡ã¯äž»ãªã¢ã€ãã¢ãäŒããããšããŸãïŒéçåæã¯ãã¹ãŠã®ç æ°ã®äžèœè¬ã§ã¯ãããŸãããããã®äœ¿çšã¯å¥åº·ïŒããªãã®ããã°ã©ã ïŒã«éåžžã«åœ¹ç«ã¡ãŸãã PVS-Studioã䜿çšããŠãç æ°ã«ãªããªãã§ãã ããïŒ
çµè«ãšããŠãåã³å€ãã®æçšãªãªã³ã¯ãæäŸããŸãã
- PVS-Studio Webãµã€ã
- PVS-Studioããè©Šããã ãã
- PVS-Studioãè³Œå ¥ãã
- PVS-Studioãç¡æã§äœ¿çšããæ¹æ³
- ããã¥ã¡ã³ã
- æœåšçãªè匱æ§ãæ€çŽ¢ãã
- ç§ãã¡ã®ããã°
- ãã£ãŒãããã¯
ãã®èšäºãè±èªåã®èŽè¡ãšå ±æãããå Žåã¯ã翻蚳ãžã®ãªã³ã¯ã䜿çšããŠãã ããïŒSergey Khrenovã PVS-Studioã«ã€ããŠç¥ãããããšããããŠãããŠèããªãããš