{"id":12576,"date":"2017-09-25T15:07:07","date_gmt":"2017-09-25T08:07:07","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=12576"},"modified":"2024-10-17T15:05:47","modified_gmt":"2024-10-17T08:05:47","slug":"bug-la-gi","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/bug-la-gi\/","title":{"rendered":"Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c \u201cchi\u1ebfn \u0111\u1ea5u\u201d v\u1edbi bug l\u00e0 g\u00ec?"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/bug-la-gi\/#Bug_la_gi_Debug_la_gi_Fixbug_la_gi\" >Bug l\u00e0 g\u00ec? Debug l\u00e0 g\u00ec? Fixbug l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/bug-la-gi\/#Cac_loai_bug_pho_bien_nhat\" >C\u00e1c lo\u1ea1i bug ph\u1ed5 bi\u1ebfn nh\u1ea5t<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/bug-la-gi\/#Loi_ich_cua_viec_gap_bug_la_gi\" >L\u1ee3i \u00edch c\u1ee7a vi\u1ec7c g\u1eb7p bug l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/bug-la-gi\/#Cach_hieu_qua_nhat_de_ghi_lai_bug_la_gi\" >C\u00e1ch hi\u1ec7u qu\u1ea3 nh\u1ea5t \u0111\u1ec3 ghi l\u1ea1i bug l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/bug-la-gi\/#Ba_bai_hoc_lon_danh_cho_lap_trinh_vien_ve_bug_la_gi\" >Ba b\u00e0i h\u1ecdc l\u1edbn d\u00e0nh cho l\u1eadp tr\u00ecnh vi\u00ean v\u1ec1 bug l\u00e0 g\u00ec?<\/a><\/li><\/ul><\/nav><\/div>\n\r\n<p><strong><em>Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c &#8220;chi\u1ebfn \u0111\u1ea5u&#8221; v\u1edbi bug l\u00e0 g\u00ec? \u0110\u00f3 l\u00e0 m\u1ed9t c\u00e2u h\u1ecfi kh\u00f4ng m\u1ea5y vui v\u1ebb, b\u1edfi c\u00f3 l\u1ebd h\u1ea7u h\u1ebft l\u1eadp tr\u00ecnh vi\u00ean \u0111\u1ec1u mu\u1ed1n l\u00e0m t\u00ednh n\u0103ng m\u1edbi, ch\u1ee9 ch\u1ea3 m\u1ea5y ai th\u00edch ph\u1ea3i b\u1ea3o tr\u00ec s\u1ea3n ph\u1ea9m c\u00f3 s\u1eb5n hay l\u00e0 fix bug.<\/em><\/strong><\/p>\r\n\r\n\r\n\r\n<p>Song, v\u1edbi c\u00e1 nh\u00e2n t\u00f4i, vi\u1ec7c t\u00ecm v\u00e0 fix bug \u0111em l\u1ea1i r\u1ea5t nhi\u1ec1u ni\u1ec1m vui c\u0169ng nh\u01b0 c\u01a1 h\u1ed9i h\u1ecdc h\u1ecfi, ph\u00e1t tri\u1ec3n ngh\u1ec1 nghi\u1ec7p. Sau \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 t\u1ed5ng k\u1ebft c\u1ee7a t\u00f4i v\u1ec1:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Bug l\u00e0 g\u00ec? 4 l\u1ee3i \u00edch c\u1ee7a vi\u1ec7c fix bug<\/li>\r\n<li>C\u00e1ch ghi l\u1ea1i bug hi\u1ec7u qu\u1ea3<\/li>\r\n<li>3 b\u00e0i h\u1ecdc l\u1edbn v\u00e0 18 kinh nghi\u1ec7m x\u01b0\u01a1ng m\u00e1u v\u1ec1 fix bug<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><!--more--><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><strong>Xem <a href=\"https:\/\/itviec.com\/it-jobs\/developer?utm_medium=anchor_text_high&amp;utm_source=blog&amp;utm_campaign=viec_lam_developer&amp;utm_content=bug_la_gi\" target=\"_blank\" rel=\"noopener noreferrer\">vi\u1ec7c l\u00e0m Developer<\/a> ch\u1ea5t t\u1ea1i ITviec<\/strong><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><em>Read the English version <a href=\"https:\/\/henrikwarne.com\/2016\/06\/16\/18-lessons-from-13-years-of-tricky-bugs\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>here<\/strong><\/a>.<\/em><\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bug_la_gi_Debug_la_gi_Fixbug_la_gi\"><\/span><strong>Bug l\u00e0 g\u00ec? Debug l\u00e0 g\u00ec? Fixbug l\u00e0 g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><strong>Bug l\u00e0 g\u00ec?<\/strong> Bug l\u00e0 nh\u1eefng l\u1ed7i ph\u1ea7n m\u1ec1m trong ch\u01b0\u01a1ng tr\u00ecnh ho\u1eb7c h\u1ec7 th\u1ed1ng m\u00e1y t\u00ednh l\u00e0m cho k\u1ebft qu\u1ea3 kh\u00f4ng ch\u00ednh x\u00e1c ho\u1eb7c kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng nh\u01b0 mong mu\u1ed1n. &#8211; Theo Wikipedia<\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p>Sau khi \u0111\u00e3 hi\u1ec3u bug l\u00e0 g\u00ec th\u00ec <strong>Debug<\/strong> l\u00e0 qu\u00e1 tr\u00ecnh t\u00ecm ki\u1ebfm v\u00e0 ph\u00e1t hi\u1ec7n l\u1ed7i trong ph\u1ea7n m\u1ec1m tr\u01b0\u1edbc khi launching, \u0111\u01b0a s\u1ea3n ph\u1ea9m \u0111\u1ebfn tay ng\u01b0\u1eddi d\u00f9ng. Debug di\u1ec5n ra ngay sau khi nh\u1eefng d\u00f2ng code \u0111\u1ea7u ti\u00ean \u0111\u01b0\u1ee3c vi\u1ebft v\u00e0 ti\u1ebfp t\u1ee5c \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n cho \u0111\u1ebfn khi k\u1ebft h\u1ee3p v\u1edbi nh\u1eefng unit kh\u00e1c c\u1ee7a l\u1eadp tr\u00ecnh t\u1ea1o th\u00e0nh m\u1ed9t s\u1ea3n ph\u1ea7m ph\u1ea7n m\u1ec1m ho\u00e0n ch\u1ec9nh.<\/p>\r\n\r\n\r\n\r\n<p><strong>Fixbug<\/strong> (s\u1eeda l\u1ed7i) l\u00e0 qu\u00e1 tr\u00ecnh tri\u1ec3n khai ngay sau debug, nh\u1eb1m duy tr\u00ec ho\u1eb7c n\u00e2ng cao ch\u1ea5t l\u01b0\u1ee3ng s\u1ea3n ph\u1ea9m.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cac_loai_bug_pho_bien_nhat\"><\/span><strong>C\u00e1c lo\u1ea1i bug ph\u1ed5 bi\u1ebfn nh\u1ea5t<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p>\u0110\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n bug l\u00e0 g\u00ec, b\u1ea1n c\u1ea7n nh\u1edb r\u1eb1ng bug kh\u00f4ng ch\u1ec9 c\u00f3 1 lo\u1ea1i. Theo <a href=\"https:\/\/www.browserstack.com\/guide\/types-of-software-bugs\" target=\"_blank\" rel=\"noreferrer noopener\">Browserstack<\/a>, c\u00f3 6 lo\u1ea1i bug ph\u1ed5 bi\u1ebfn m\u00e0 c\u00e1c developer th\u01b0\u1eddng g\u1eb7p ph\u1ea3i nh\u1ea5t:<\/p>\r\n\r\n\r\n\r\n<p><strong>1. Bug ch\u1ee9c n\u0103ng (Functional Bug)<\/strong><\/p>\r\n\r\n\r\n\r\n<p>C\u00e1c l\u1ed7i ch\u1ee9c n\u0103ng \u0111\u01b0\u1ee3c li\u00ean k\u1ebft v\u1edbi ch\u1ee9c n\u0103ng c\u1ee7a m\u1ed9t th\u00e0nh ph\u1ea7n ph\u1ea7n m\u1ec1m c\u1ee5 th\u1ec3.\u00a0 V\u00ed d\u1ee5: N\u00fat <em>\u0110\u0103ng nh\u1eadp <\/em>kh\u00f4ng cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng \u0111\u0103ng nh\u1eadp, n\u00fat <em>Th\u00eam v\u00e0o gi\u1ecf h\u00e0ng<\/em> kh\u00f4ng c\u1eadp nh\u1eadt gi\u1ecf h\u00e0ng, h\u1ed9p t\u00ecm ki\u1ebfm kh\u00f4ng ph\u1ea3n h\u1ed3i truy v\u1ea5n c\u1ee7a ng\u01b0\u1eddi d\u00f9ng, v.v.<\/p>\r\n\r\n\r\n\r\n<p>N\u00f3i m\u1ed9t c\u00e1ch d\u1ec5 hi\u1ec3u, b\u1ea5t k\u1ef3 th\u00e0nh ph\u1ea7n n\u00e0o trong \u1ee9ng d\u1ee5ng ho\u1eb7c trang web kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng nh\u01b0 d\u1ef1 ki\u1ebfn \u0111\u1ec1u \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 bug ch\u1ee9c n\u0103ng.<\/p>\r\n\r\n\r\n\r\n<p><strong>2. Bug logic (Logical Bug)<\/strong><\/p>\r\n\r\n\r\n\r\n<p>Th\u00f4ng th\u01b0\u1eddng, l\u1ed7i logic s\u1ebd l\u00e0m gi\u00e1n \u0111o\u1ea1n quy tr\u00ecnh l\u00e0m vi\u1ec7c d\u1ef1 ki\u1ebfn c\u1ee7a ph\u1ea7n m\u1ec1m v\u00e0 khi\u1ebfn \u1ee9ng d\u1ee5ng ho\u1ea1t \u0111\u1ed9ng kh\u00f4ng ch\u00ednh x\u00e1c. Nh\u1eefng bug n\u00e0y c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn h\u00e0nh vi ph\u1ea7n m\u1ec1m kh\u00f4ng mong mu\u1ed1n v\u00e0 th\u1eadm ch\u00ed l\u00e0 s\u1ef1 c\u1ed1 \u0111\u1ed9t ng\u1ed9t.<\/p>\r\n\r\n\r\n\r\n<p>L\u1ed7i logic ch\u1ee7 y\u1ebfu x\u1ea3y ra do developer di\u1ec5n gi\u1ea3i sai logic c\u1ee7a \u1ee9ng d\u1ee5ng. V\u00ed d\u1ee5 v\u1ec1 l\u1ed7i logic bao g\u1ed3m:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>G\u00e1n gi\u00e1 tr\u1ecb cho bi\u1ebfn sai<\/li>\r\n<li>Chia hai s\u1ed1 thay v\u00ec c\u1ed9ng ch\u00fang v\u1edbi nhau d\u1eabn \u0111\u1ebfn k\u1ebft qu\u1ea3 kh\u00f4ng mong mu\u1ed1n<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><strong>3. Bug quy tr\u00ecnh l\u00e0m vi\u1ec7c (Workflow Bug)<\/strong><\/p>\r\n\r\n\r\n\r\n<p>L\u1ed7i quy tr\u00ecnh l\u00e0m vi\u1ec7c \u0111\u01b0\u1ee3c li\u00ean k\u1ebft v\u1edbi h\u00e0nh tr\u00ecnh c\u1ee7a ng\u01b0\u1eddi d\u00f9ng (\u0111i\u1ec1u h\u01b0\u1edbng) c\u1ee7a m\u1ed9t \u1ee9ng d\u1ee5ng ph\u1ea7n m\u1ec1m. Ta l\u1ea5y v\u00ed d\u1ee5 v\u1ec1 m\u1ed9t trang web \u0111\u1ec3 ng\u01b0\u1eddi d\u00f9ng \u0111i\u1ec1n bi\u1ec3u m\u1eabu v\u1ec1 l\u1ecbch s\u1eed y t\u1ebf c\u1ee7a h\u1ecd. Sau khi \u0111i\u1ec1n v\u00e0o bi\u1ec3u m\u1eabu, ng\u01b0\u1eddi d\u00f9ng c\u00f3 ba t\u00f9y ch\u1ecdn \u0111\u1ec3 l\u1ef1a ch\u1ecdn:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>L\u01b0u<\/li>\r\n<li>L\u01b0u v\u00e0 tho\u00e1t<\/li>\r\n<li>Trang tr\u01b0\u1edbc<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p>T\u1eeb c\u00e1c t\u00f9y ch\u1ecdn c\u00f3 s\u1eb5n, n\u1ebfu ng\u01b0\u1eddi d\u00f9ng nh\u1ea5p v\u00e0o \u201cL\u01b0u v\u00e0 tho\u00e1t\u201d, ng\u01b0\u1eddi d\u00f9ng c\u00f3 \u00fd \u0111\u1ecbnh l\u01b0u th\u00f4ng tin \u0111\u00e3 nh\u1eadp v\u00e0 sau \u0111\u00f3 tho\u00e1t. Tuy nhi\u00ean, n\u1ebfu nh\u1ea5p v\u00e0o n\u00fat L\u01b0u v\u00e0 Tho\u00e1t d\u1eabn \u0111\u1ebfn vi\u1ec7c tho\u00e1t kh\u1ecfi bi\u1ec3u m\u1eabu m\u00e0 kh\u00f4ng l\u01b0u th\u00f4ng tin, \u0111\u00f3 ch\u00ednh l\u00e0 \u0111\u1ebfn bug li\u00ean quan \u0111\u1ebfn quy tr\u00ecnh l\u00e0m vi\u1ec7c.<\/p>\r\n\r\n\r\n\r\n<p><strong>4. Bug c\u1ea5p \u0111\u01a1n v\u1ecb (Unit Level Bug)<\/strong><\/p>\r\n\r\n\r\n\r\n<p>C\u00e1c bug \u1edf c\u1ea5p \u0111\u1ed9 \u0111\u01a1n v\u1ecb r\u1ea5t ph\u1ed5 bi\u1ebfn v\u00e0 ch\u00fang th\u01b0\u1eddng d\u1ec5 s\u1eeda h\u01a1n. Khi c\u00e1c module ban \u0111\u1ea7u c\u1ee7a c\u00e1c th\u00e0nh ph\u1ea7n \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n, developer s\u1ebd th\u1ef1c hi\u1ec7n unit testing \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c \u0111o\u1ea1n code nh\u1ecf \u0111ang ho\u1ea1t \u0111\u1ed9ng nh\u01b0 mong \u0111\u1ee3i. \u0110\u00e2y l\u00e0 giai \u0111o\u1ea1n m\u00e0 c\u00e1c developer g\u1eb7p ph\u1ea3i nhi\u1ec1u bug kh\u00e1c nhau kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e1t hi\u1ec7n trong c\u00e1c giai \u0111o\u1ea1n vi\u1ebft m\u00e3.<\/p>\r\n\r\n\r\n\r\n<p>V\u00ed d\u1ee5: N\u1ebfu b\u1ea1n c\u1ea7n t\u1ea1o bi\u1ec3u m\u1eabu m\u1ed9t trang, unit test s\u1ebd x\u00e1c minh xem t\u1ea5t c\u1ea3 c\u00e1c tr\u01b0\u1eddng \u0111\u1ea7u v\u00e0o c\u00f3 ch\u1ea5p nh\u1eadn \u0111\u1ea7u v\u00e0o th\u00edch h\u1ee3p hay kh\u00f4ng v\u00e0 c\u00e1c n\u00fat ho\u1ea1t \u0111\u1ed9ng \u0111\u00fang ch\u1ee9c n\u0103ng hay kh\u00f4ng. Trong tr\u01b0\u1eddng h\u1ee3p m\u1ed9t tr\u01b0\u1eddng kh\u00f4ng ch\u1ea5p nh\u1eadn c\u00e1c k\u00fd t\u1ef1 ho\u1eb7c s\u1ed1 th\u00edch h\u1ee3p, c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n s\u1ebd g\u1eb7p ph\u1ea3i bug c\u1ea5p \u0111\u01a1n v\u1ecb.<\/p>\r\n\r\n\r\n\r\n<p>C\u00e1c bug \u1edf c\u1ea5p \u0111\u1ed9 \u0111\u01a1n v\u1ecb d\u1ec5 x\u00e1c \u0111\u1ecbnh h\u01a1n khi developer ch\u1ec9 c\u1ea7n x\u1eed l\u00fd m\u1ed9t l\u01b0\u1ee3ng code t\u01b0\u01a1ng \u0111\u1ed1i nh\u1ecf. Developer c\u00f3 th\u1ec3 theo d\u00f5i l\u1ed7i ch\u00ednh x\u00e1c v\u00e0 fix c\u00e1c bug n\u00e0y ngay l\u1eadp t\u1ee9c.<\/p>\r\n\r\n\r\n\r\n<p><strong>5. Bug t\u00edch h\u1ee3p c\u1ea5p h\u1ec7 th\u1ed1ng (System-Level Integration Bug)<\/strong><\/p>\r\n\r\n\r\n\r\n<p>Bug t\u00edch h\u1ee3p c\u1ea5p h\u1ec7 th\u1ed1ng ch\u1ee7 y\u1ebfu xu\u1ea5t hi\u1ec7n khi hai ho\u1eb7c nhi\u1ec1u \u0111\u01a1n v\u1ecb code do c\u00e1c developer kh\u00e1c nhau vi\u1ebft kh\u00f4ng t\u01b0\u01a1ng t\u00e1c v\u1edbi nhau. Nh\u1eefng bug n\u00e0y ch\u1ee7 y\u1ebfu x\u1ea3y ra do s\u1ef1 m\u00e2u thu\u1eabn ho\u1eb7c kh\u00f4ng t\u01b0\u01a1ng th\u00edch gi\u1eefa hai ho\u1eb7c nhi\u1ec1u th\u00e0nh ph\u1ea7n.<\/p>\r\n\r\n\r\n\r\n<p>Th\u00f4ng th\u01b0\u1eddng, nh\u1eefng l\u1ed7i nh\u01b0 v\u1eady r\u1ea5t kh\u00f3 theo d\u00f5i v\u00e0 fix v\u00ec c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u1ea7n ki\u1ec3m tra m\u1ed9t \u0111o\u1ea1n code l\u1edbn h\u01a1n. Ch\u00fang c\u0169ng t\u1ed1n nhi\u1ec1u th\u1eddi gian \u0111\u1ec3 t\u00e1i t\u1ea1o.<\/p>\r\n\r\n\r\n\r\n<p>S\u1ef1 c\u1ed1 tr\u00e0n b\u1ed9 nh\u1edb v\u00e0 giao di\u1ec7n kh\u00f4ng ph\u00f9 h\u1ee3p gi\u1eefa giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng \u1ee9ng d\u1ee5ng v\u00e0 c\u01a1 s\u1edf d\u1eef li\u1ec7u l\u00e0 nh\u1eefng v\u00ed d\u1ee5 ph\u1ed5 bi\u1ebfn v\u1ec1 l\u1ed7i t\u00edch h\u1ee3p c\u1ea5p h\u1ec7 th\u1ed1ng.<\/p>\r\n\r\n\r\n\r\n<p><strong>6. Bug ngo\u00e0i gi\u1edbi h\u1ea1n (Out of Bound Bug)<\/strong><\/p>\r\n\r\n\r\n\r\n<p>L\u1ed7i ngo\u00e0i gi\u1edbi h\u1ea1n xu\u1ea5t hi\u1ec7n khi ng\u01b0\u1eddi d\u00f9ng h\u1ec7 th\u1ed1ng t\u01b0\u01a1ng t\u00e1c v\u1edbi giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng theo c\u00e1ch kh\u00f4ng ch\u1ee7 \u00fd. Nh\u1eefng l\u1ed7i n\u00e0y x\u1ea3y ra khi ng\u01b0\u1eddi d\u00f9ng cu\u1ed1i nh\u1eadp m\u1ed9t gi\u00e1 tr\u1ecb ho\u1eb7c m\u1ed9t tham s\u1ed1 n\u1eb1m ngo\u00e0i gi\u1edbi h\u1ea1n s\u1eed d\u1ee5ng ngo\u00e0i \u00fd mu\u1ed1n.<\/p>\r\n\r\n\r\n\r\n<p>V\u00ed d\u1ee5: Ng\u01b0\u1eddi d\u00f9ng nh\u1eadp m\u1ed9t s\u1ed1 r\u1ea5t l\u1edbn ho\u1eb7c r\u1ea5t nh\u1ecf ho\u1eb7c nh\u1eadp gi\u00e1 tr\u1ecb \u0111\u1ea7u v\u00e0o c\u1ee7a m\u1ed9t ki\u1ec3u d\u1eef li\u1ec7u kh\u00f4ng x\u00e1c \u0111\u1ecbnh.<\/p>\r\n\r\n\r\n\r\n<p>Nh\u1eefng bug n\u00e0y th\u01b0\u1eddng xu\u1ea5t hi\u1ec7n d\u01b0\u1edbi d\u1ea1ng x\u00e1c th\u1ef1c trong qu\u00e1 tr\u00ecnh ki\u1ec3m tra ch\u1ee9c n\u0103ng c\u1ee7a \u1ee9ng d\u1ee5ng web ho\u1eb7c mobile app.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-l\u1ee3i-ich-c\u1ee7a-vi\u1ec7c-g\u1eb7p-bug-la-gi\"><span class=\"ez-toc-section\" id=\"Loi_ich_cua_viec_gap_bug_la_gi\"><\/span><strong>L\u1ee3i \u00edch c\u1ee7a vi\u1ec7c g\u1eb7p bug l\u00e0 g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p>Sau khi hi\u1ec3u bug l\u00e0 g\u00ec, b\u1ea1n \u1eaft h\u1eb3n s\u1ebd ch\u1eb3ng mu\u1ed1n ph\u1ea3i &#8220;ch\u1ea1m tr\u00e1n&#8221; v\u1edbi ch\u00fang. Tuy nhi\u00ean, trong m\u1ed7i tr\u01b0\u1eddng h\u1ee3p, b\u1ea1n \u0111\u1ec1u c\u00f3 th\u1ec3 h\u1ecdc \u0111\u00f4i \u0111i\u1ec1u v\u1ec1 phong c\u00e1ch l\u1eadp tr\u00ecnh, s\u1ea3n ph\u1ea9m ho\u1eb7c v\u1ec1 l\u0129nh v\u1ef1c m\u00e0 ph\u1ea7n m\u1ec1m \u0111ang ho\u1ea1t \u0111\u1ed9ng.<\/p>\r\n\r\n\r\n\r\n<p>Tr\u00ean h\u1ebft, c\u00f3 4 l\u00ed do ch\u00ednh, c\u0169ng l\u00e0 4 ni\u1ec1m vui quan tr\u1ecdng nh\u1ea5t m\u00e0 vi\u1ec7c fix bug c\u00f3 th\u1ec3 \u0111em l\u1ea1i cho l\u1eadp tr\u00ecnh vi\u00ean nh\u01b0 sau:<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-m\u1ed7i-bug-luon-d\u1ea1y-b\u1ea1n-di\u1ec1u-gi-do\"><strong>B\u00e0i h\u1ecdc c\u1ee7a bug l\u00e0 g\u00ec? M\u1ed7i bug lu\u00f4n d\u1ea1y b\u1ea1n \u0111i\u1ec1u g\u00ec \u0111\u00f3!<\/strong><\/h3>\r\n\r\n\r\n\r\n<p>Feedback lu\u00f4n l\u00e0 ch\u00eca kh\u00f3a c\u1ee7a ph\u00e1t tri\u1ec3n s\u1ea3n ph\u1ea9m v\u00e0 \u0111\u1ed3ng th\u1eddi c\u0169ng l\u00e0 tri\u1ebft l\u00fd c\u1ed1t l\u00f5i c\u1ee7a m\u00f4 h\u00ecnh agile.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em>C\u1ea3 unit testing v\u00e0 iterative development \u0111\u1ec1u nh\u1eb1m \u0111\u01b0a ra feedback nhanh h\u01a1n. V\u1edbi unit testing, b\u1ea1n nh\u1eadn \u0111\u01b0\u1ee3c feedback v\u1ec1 vi\u1ec7c code c\u00f3 ch\u1ea1y hay kh\u00f4ng. V\u1edbi m\u1ed7i release, b\u1ea1n c\u00f3 th\u1ec3 l\u1eafng nghe feedback c\u1ee7a kh\u00e1ch h\u00e0ng v\u1ec1 c\u00e1c t\u00ednh n\u0103ng m\u1edbi.<\/em><\/p>\r\n<p><em>B\u00e1o c\u00e1o bug c\u0169ng l\u00e0 h\u00ecnh th\u1ee9c feedback kh\u00e1c v\u1ec1 code c\u1ee7a b\u1ea1n.<\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 c\u00f3 r\u1ea5t nhi\u1ec1u nguy\u00ean nh\u00e2n g\u00e2y ra m\u1ed9t bug. V\u00ed d\u1ee5:<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><span style=\"font-weight: 400;\">B\u1ea1n c\u00f3 c\u00e1c c\u00e2u l\u1ec7nh if l\u1ed3ng nhau v\u00e0 v\u00f4 t\u00ecnh l\u1ea1i \u0111\u1eb7t l\u1ec7nh else \u1edf sai nh\u00e1nh.<\/span><\/li>\r\n<li>Gi\u1ea3 \u0111\u1ecbnh kh\u00f4ng ch\u00ednh x\u00e1c. Ch\u1eb3ng h\u1ea1n: truy xu\u1ea5t m\u1ed9t thu\u1ed9c t\u00ednh kh\u00f4ng t\u1ed3n t\u1ea1i, th\u1ebf l\u00e0 d\u00ednh NullPointerException<\/li>\r\n<li>Kh\u00f4ng bao qu\u00e1t h\u1ebft c\u00e1c tr\u01b0\u1eddng h\u1ee3p. Ch\u1eb3ng h\u1ea1n, b\u1ea1n ph\u1ea3i tr\u1ea3 v\u1ec1 m\u1ed9t gi\u00e1 tr\u1ecb kh\u00e1c \u0111i n\u1ebfu h\u00e0m \u0111\u01b0\u1ee3c g\u1ecdi v\u1edbi tham s\u1ed1 X<\/li>\r\n<li>Ho\u1eb7c, kh\u00e1ch h\u00e0ng s\u1eed d\u1ee5ng ph\u1ea7n m\u1ec1m theo c\u00e1ch m\u00e0 b\u1ea1n kh\u00f4ng ng\u1edd t\u1edbi (nh\u01b0ng v\u1eabn h\u1ee3p l\u1ec7), v\u00e0 th\u1ebf l\u00e0 b\u00f9m! D\u00ednh bug!<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>\u0110\u00e0o s\u00e2u t\u00ecm hi\u1ec3u nguy\u00ean nh\u00e2n g\u00e2y ra bug, b\u1ea1n s\u1ebd \u0111\u00fac k\u1ebft \u0111\u01b0\u1ee3c nhi\u1ec1u b\u00e0i h\u1ecdc qu\u00fd gi\u00e1.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-code-c\u1ee7a-b\u1ea1n-s\u1ebd-d\u1ec5-debug-h\u01a1n\"><strong>Code c\u1ee7a b\u1ea1n s\u1ebd d\u1ec5 debug h\u01a1n<\/strong><\/h3>\r\n\r\n\r\n\r\n<p>M\u1ed9t khi \u0111\u00e3 ph\u1ea3i b\u1ecf c\u00f4ng s\u1ee9c, th\u1eddi gian ra \u0111\u1ec3 t\u00ecm v\u00e0 fix bug, t\u1ef1 kh\u1eafc b\u1ea1n s\u1ebd mu\u1ed1n vi\u1ebft code c\u00e0ng d\u1ec5 debug c\u00e0ng t\u1ed1t. <span style=\"font-weight: 400;\">B\u1edfi v\u00ec s\u1ebd r\u1ea5t kh\u1ed1n kh\u1ed5 n\u1ebfu kh\u00f4ng c\u00f3 m\u1ecdi d\u1eef li\u1ec7u c\u1ea7n thi\u1ebft.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">M\u1ed9t v\u1ea5n \u0111\u1ec1 c\u1ef1c k\u00ec d\u1ec5 g\u1eb7p l\u00e0 c\u00e1c Exceptions (bi\u1ec7t l\u1ec7) kh\u00f4ng ch\u1ee9a d\u1eef li\u1ec7u h\u1eefu \u00edch. <\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">V\u00ed d\u1ee5 nh\u01b0, c\u00f3 m\u1ed9t \u0111o\u1ea1n code y\u00eau c\u1ea7u gi\u00e1 tr\u1ecb t\u1eeb 0 &#8211; 20. Bao nhi\u00eau l\u1ea7n b\u1ea1n d\u00ednh exception ch\u1ec9 v\u1ecfn v\u1eb9n &#8220;Illegal value&#8221;? N\u00f3 ho\u00e0n to\u00e0n kh\u00f4ng gi\u00fap g\u00ec n\u1ebfu b\u1ea1n ph\u1ea3i s\u1eeda l\u1ed7i. Ch\u1eb3ng h\u1ea1n, n\u1ebfu nh\u01b0 gi\u00e1 tr\u1ecb 21 \u0111\u01b0\u1ee3c nh\u1eadp v\u00e0o, exception n\u00ean n\u00f3i l\u00e0 &#8220;Illegal value: 21, not in range 0 &#8211; 20&#8221;.<\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">Vi\u1ec7c hi\u1ec3n th\u1ecb gi\u00e1 tr\u1ecb \u0111\u01b0\u1ee3c nh\u1eadp v\u00e0o c\u00f9ng v\u1edbi kho\u1ea3ng gi\u00e1 tr\u1ecb mong mu\u1ed1n, r\u00f5 r\u00e0ng v\u00f4 c\u00f9ng h\u1eefu \u00edch. Gi\u00e1 tr\u1ecb hi\u1ec7n t\u1ea1i c\u00f3 th\u1ec3 l\u00e0 21, -128 hay 65535. Ch\u00fang \u0111\u1ec1u gi\u00fap b\u1ea1n c\u00f3 manh m\u1ed1i \u0111\u1ec3 t\u00ecm ra l\u1ed7i, h\u01a1n l\u00e0 d\u00f2ng &#8220;Illegal value&#8221; ng\u1eafn g\u1ecdn.<\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">Ngay c\u1ea3 Steve McConnell thi tho\u1ea3ng c\u0169ng ph\u00e1 lu\u1eadt n\u00e0y trong cu\u1ed1n s\u00e1ch tuy\u1ec7t v\u1eddi <a href=\"https:\/\/www.amazon.com\/Code-Complete-Practical-Handbook-Construction\/dp\/0735619670\" target=\"_blank\" rel=\"noopener noreferrer\">Code Complete<\/a>. Ch\u1eb3ng h\u1ea1n, trong ch\u01b0\u01a1ng 15, McConnell n\u00eau ra t\u00ecnh hu\u1ed1ng <\/span><span style=\"font-weight: 400;\">ph\u00e1t hi\u1ec7n m\u1ed9t ki\u1ec3u k\u00fd t\u1ef1 kh\u00f4ng mong mu\u1ed1n, nh\u01b0ng th\u00f4ng b\u00e1o l\u1ed7i l\u1ea1i kh\u00f4ng hi\u1ec3n th\u1ecb k\u00fd t\u1ef1 \u0111\u00f3.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p>Nh\u01b0 v\u1eady, m\u1ed7i khi t\u00ecm v\u00e0 fix bug, b\u1ea1n c\u1ea7n t\u1ef1 h\u1ecfi: li\u1ec7u c\u00f3 th\u1ec3 thay \u0111\u1ed5i \u0111i\u1ec1u g\u00ec trong code \u0111\u1ec3 sau n\u00e0y kh\u00f4ng g\u1eb7p ph\u1ea3i nh\u1eefng bug d\u1ea1ng n\u00e0y kh\u00f4ng? Li\u1ec7u c\u00f3 c\u00e1ch n\u00e0o ho\u1eb7c \u0111i\u1ec1u g\u00ec m\u00ecnh n\u00ean l\u00e0m, \u0111\u1ec3 sau n\u00e0y t\u00ecm ra nh\u1eefng bug d\u1ea1ng n\u00e0y d\u1ec5 d\u00e0ng h\u01a1n kh\u00f4ng?<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><a href=\"https:\/\/itviec.com\/it-jobs\/developer\/ho-chi-minh-hcm?utm_medium=anchor_text_mid&amp;utm_source=blog&amp;utm_campaign=viec_lam_developer_tphcm&amp;utm_content=bug_la_gi\" target=\"_blank\" rel=\"noopener noreferrer\">Vi\u1ec7c l\u00e0m Developer TP. HCM<\/a><\/em><\/p>\r\n<p><a href=\"https:\/\/itviec.com\/it-jobs\/developer\/ha-noi?utm_medium=anchor_text_mid&amp;utm_source=blog&amp;utm_campaign=viec_lam_developer_ha_noi&amp;utm_content=bug_la_gi\" target=\"_blank\" rel=\"noopener noreferrer\"><em>Vi\u1ec7c l\u00e0m Developer H\u00e0 N\u1ed9i<\/em><\/a><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-fix-bug-dem-l\u1ea1i-ni\u1ec1m-vui-cho-c\u1ea3-b\u1ea1n-va-khach-hang\"><strong>Fix bug \u0111em l\u1ea1i ni\u1ec1m vui cho c\u1ea3 b\u1ea1n v\u00e0 kh\u00e1ch h\u00e0ng<\/strong><\/h3>\r\n\r\n\r\n\r\n<p>M\u1ed9t trong nh\u1eefng ni\u1ec1m vui m\u00e0 c\u00f4ng vi\u1ec7c l\u1eadp tr\u00ecnh mang l\u1ea1i, theo t\u00f4i, \u0111\u00f3 l\u00e0 l\u00e0m \u0111i\u1ec1u c\u00f3 \u00edch cho ng\u01b0\u1eddi kh\u00e1c. Fix bug c\u0169ng \u0111em \u0111\u1ebfn ni\u1ec1m vui t\u01b0\u01a1ng t\u1ef1, v\u00e0 th\u1eadm ch\u00ed c\u00f2n nhanh ch\u00f3ng h\u01a1n.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em>B\u1edfi l\u1ebd, \u0111\u1ec3 t\u1ea1o ra m\u1ed9t t\u00ednh n\u0103ng m\u1edbi c\u1ea7n t\u1ed1n kh\u00e1 nhi\u1ec1u th\u1eddi gian, trong khi vi\u1ec7c fix m\u1ed9t bug c\u00f3 th\u1ec3 ch\u1ec9 c\u1ea7n m\u1ed9t gi\u1edd \u0111\u1ed3ng h\u1ed3. M\u1ed7i bug \u0111\u01b0\u1ee3c fix xong s\u1ebd \u0111em \u0111\u1ebfn kho\u00e1i c\u1ea3m \u0111\u00e3 ho\u00e0n th\u00e0nh\/\u0111\u1ea1t \u0111\u01b0\u1ee3c \u0111i\u1ec1u g\u00ec. V\u00e0 \u0111\u00f3 l\u00e0 m\u1ed9t c\u1ea3m gi\u00e1c tuy\u1ec7t v\u1eddi!<\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p>Fix bug c\u0169ng \u0111em l\u1ea1i ni\u1ec1m vui cho kh\u00e1ch h\u00e0ng (d\u00f9 nghe c\u00f3 v\u1ebb o\u00e1i o\u0103m). N\u1ebfu ngay t\u1eeb \u0111\u1ea7u kh\u00f4ng c\u00f3 bug, kh\u00f4ng ph\u1ea3i fix bug, th\u00ec ch\u1eb3ng ph\u1ea3i kh\u00e1ch h\u00e0ng s\u1ebd vui h\u01a1n sao?. Nh\u01b0ng, t\u1eeb kinh nghi\u1ec7m h\u01a1n 20 n\u0103m l\u1eadp tr\u00ecnh v\u00e0 \u201cchi\u1ebfn \u0111\u1ea5u\u201d v\u1edbi bug, t\u00f4i d\u00e1m kh\u1eb3ng \u0111\u1ecbnh: kh\u00e1ch h\u00e0ng th\u1ef1c s\u1ef1 h\u00e0i l\u00f2ng m\u1ed7i khi nh\u1eadn v\u1ec1 bug \u0111\u00e3 \u0111\u01b0\u1ee3c fix xong nhanh ch\u00f3ng.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em>V\u1ea5n \u0111\u1ec1 l\u00e0 v\u1eady: T\u1ea5t c\u1ea3 m\u1ecdi ng\u01b0\u1eddi \u0111\u1ec1u bi\u1ebft <strong>S\u1ebc LU\u00d4N C\u00d3 BUG<\/strong>! Cho n\u00ean, mi\u1ec5n l\u00e0 c\u00f3 ng\u01b0\u1eddi s\u1eb5n s\u00e0ng fix th\u1eadt nhanh ngay khi bug \u0111\u01b0\u1ee3c khui ra.<\/em><\/p>\r\n<p><em>Th\u01b0 gi\u00e3n v\u1edbi video: <a href=\"https:\/\/www.youtube.com\/watch?v=6BCpSLMy2kg\" target=\"_blank\" rel=\"noopener noreferrer\">Fix bug &#8220;ch\u1ea5t&#8221; nh\u01b0 Vinh R\u00e2u<\/a><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-ni\u1ec1m-vui-c\u1ee7a-vi\u1ec7c-gi\u1ea3i-cau-d\u1ed1\"><strong>Ni\u1ec1m vui c\u1ee7a vi\u1ec7c gi\u1ea3i c\u00e2u \u0111\u1ed1<\/strong><\/h3>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"alignright\"><img loading=\"lazy\" decoding=\"async\" width=\"169\" height=\"300\" class=\"wp-image-17186\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-1-169x300.jpg\" alt=\"Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c \u201cchi\u1ebfn \u0111\u1ea5u\u201d v\u1edbi bug\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-1-169x300.jpg 169w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-1.jpg 360w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-1-113x200.jpg 113w\" sizes=\"auto, (max-width: 169px) 100vw, 169px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>R\u1ea5t nhi\u1ec1u l\u1eadp tr\u00ecnh vi\u00ean th\u00edch gi\u1ea3i c\u00e2u \u0111\u1ed1, nh\u01b0 ch\u01a1i tr\u00f2 Sudoku, gi\u1ea3i \u00f4 ch\u1eef, gi\u1ea3i \u0111\u1ed1 vui to\u00e1n h\u1ecdc, hay tham gia c\u00e1c th\u1eed th\u00e1ch l\u1eadp tr\u00ecnh.<\/p>\r\n\r\n\r\n\r\n<p>Th\u1eadm ch\u00ed, \u0111\u1ecdc truy\u1ec7n trinh th\u00e1m gi\u1ebft ng\u01b0\u1eddi c\u0169ng \u0111em l\u1ea1i r\u1ea5t nhi\u1ec1u h\u1ee9ng kh\u1edfi: b\u1ea1n l\u1ea7n theo c\u00e1c manh m\u1ed1i \u0111\u1ec3 t\u00ecm hi\u1ec3u m\u1ecdi chuy\u1ec7n \u0111\u00e3 di\u1ec5n ra nh\u01b0 th\u1ebf n\u00e0o.<\/p>\r\n\r\n\r\n\r\n<p>Debug v\u00e0 fix bug c\u0169ng v\u1eady. M\u1ed7i bug l\u00e0 m\u1ed9t b\u00ed \u1ea9n c\u1ea7n kh\u00e1m ph\u00e1.<\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em>Th\u00f4ng th\u01b0\u1eddng, ph\u1ea3n \u1ee9ng \u0111\u1ea7u ti\u00ean c\u1ee7a b\u1ea1n khi tr\u00f4ng th\u1ea5y m\u1ed9t b\u00e1o c\u00e1o bug s\u1ebd l\u00e0: Kh\u00f4ng th\u1ec3 n\u00e0o! T\u1ea1i sao c\u00f3 th\u1ec3 x\u1ea3y ra bug n\u00e0y \u0111\u01b0\u1ee3c?!?<\/em><\/p>\r\n<p><em>V\u00e0 c\u0169ng t\u1eeb \u0111\u00f3, b\u1ea1n b\u1eaft \u0111\u1ea7u h\u00e0nh tr\u00ecnh kh\u00e1m ph\u00e1 b\u00ed \u1ea9n. B\u1ea1n l\u1ea7n theo c\u00e1c manh m\u1ed1i. Logs n\u00f3i g\u00ec? C\u00f3 b\u00e1o c\u00e1o l\u1ed7i n\u00e0o t\u1eeb h\u1ec7 th\u1ed1ng kh\u00f4ng? T\u1ea1i th\u1eddi \u0111i\u1ec3m \u0111\u00f3, h\u1ec7 th\u1ed1ng c\u00f3 x\u1ea3y ra v\u1ea5n \u0111\u1ec1 g\u00ec kh\u00e1c hay kh\u00f4ng? G\u1ea7n \u0111\u00e2y c\u00f3 c\u00e1i g\u00ec b\u1ecb thay \u0111\u1ed5i kh\u00f4ng &#8211; <span style=\"font-weight: 400;\">ph\u1ea7n m\u1ec1m m\u1edbi, t<\/span><span style=\"font-weight: 400;\">hay \u0111\u1ed5i c\u1ea5u h\u00ecnh, l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp \u1ea3nh h\u01b0\u1edfng?<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-cach-hi\u1ec7u-qu\u1ea3-nh\u1ea5t-d\u1ec3-ghi-l\u1ea1i-bug-la-gi\"><span class=\"ez-toc-section\" id=\"Cach_hieu_qua_nhat_de_ghi_lai_bug_la_gi\"><\/span><strong>C\u00e1ch hi\u1ec7u qu\u1ea3 nh\u1ea5t \u0111\u1ec3 ghi l\u1ea1i bug l\u00e0 g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n\r\n\r\n\r\n<p>L\u00fd do c\u1ee7a vi\u1ec7c c\u1ea7n ph\u1ea3i ghi l\u1ea1i bug l\u00e0 g\u00ec? \u0110\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc h\u1ecfi hi\u1ec7u qu\u1ea3 nh\u1ea5t t\u1eeb nh\u1eefng bug b\u1ea1n \u0111\u00e3 fix. Ph\u01b0\u01a1ng ph\u00e1p m\u00e0 t\u00f4i d\u00f9ng l\u00e0 lu\u00f4n d\u00e0nh ra v\u00e0i ph\u00fat \u0111\u1ec3 ghi ch\u00fa l\u1ea1i c\u00e1c th\u00f4ng tin: m\u00f4 t\u1ea3 bug, c\u00e1ch fix, b\u00e0i h\u1ecdc kinh nghi\u1ec7m.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-nguyen-t\u1eafc\"><strong>Nguy\u00ean t\u1eafc ghi l\u1ea1i bug l\u00e0 g\u00ec?<br \/><\/strong><\/h3>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Ch\u1ec9 ghi ch\u00fa nh\u1eefng bug kh\u00f3 nh\u1eb1n ho\u1eb7c th\u1ef1c s\u1ef1 th\u00fa v\u1ecb. \u0110\u00e2y kh\u00f4ng ph\u1ea3i l\u00e0 bug tracker.<\/li>\r\n<li>Ghi ch\u00fa nh\u1eefng bug do ch\u00ednh m\u00ecnh g\u00e2y ra. (Tr\u1eeb tr\u01b0\u1eddng h\u1ee3p bug c\u1ee7a ng\u01b0\u1eddi kh\u00e1c nh\u01b0ng \u0111\u1ee7 th\u00fa v\u1ecb).<\/li>\r\n<li>Ghi l\u1ea1i bug ngay sau khi fix xong. Tr\u00e1nh nh\u1edb nh\u1ea7m, nh\u1edb kh\u00f4ng chi ti\u1ebft.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-cach-ghi-l\u1ea1i-bug\"><strong>C\u00e1ch hi\u1ec7u qu\u1ea3 nh\u1ea5t \u0111\u1ec3 ghi l\u1ea1i bug l\u00e0 g\u00ec?<br \/><\/strong><\/h3>\r\n\r\n\r\n\r\n<p>T\u00f4i th\u01b0\u1eddng d\u00f9ng form d\u01b0\u1edbi \u0111\u00e2y \u0111\u1ec3 ghi l\u1ea1i bug d\u01b0\u1edbi d\u1ea1ng file text (bugs.txt). B\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o th\u00f4ng qua v\u00ed d\u1ee5 sau:<\/p>\r\n\r\n\r\n\r\n<p><strong>Th\u00f4ng tin n\u1ec1n:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Ng\u00e0y:<\/strong> 2004-08-17<\/li>\r\n<li><span style=\"font-weight: 400;\"><strong>Tri\u1ec7u ch\u1ee9ng:<\/strong>\u00a0<\/span>V\u00f2ng l\u1eb7p v\u00f4 t\u1eadn khi gi\u1ea3i m\u00e3 t\u00edn hi\u1ec7u Q.931.<\/li>\r\n<li><strong>Nguy\u00ean nh\u00e2n:<\/strong> Khi t\u00ecm th\u1ea5y id c\u1ee7a m\u1ed9t th\u00e0nh ph\u1ea7n ch\u01b0a bi\u1ebft trong t\u00edn hi\u1ec7u Q.931, ta t\u00ecm c\u00e1ch b\u1ecf qua n\u00f3 b\u1eb1ng c\u00e1ch l\u1ea5y chi\u1ec1u d\u00e0i, v\u00e0 di chuy\u1ec3n con tr\u1ecf pos t\u01b0\u01a1ng \u1ee9ng v\u1edbi \u0111\u1ed9 d\u00e0i t\u00ecm \u0111\u01b0\u1ee3c. Tuy nhi\u00ean, v\u1edbi tr\u01b0\u1eddng h\u1ee3p \u0111\u1ed9 d\u00e0i b\u1eb1ng 0 l\u00e0m ta li\u00ean t\u1ee5c b\u1ecf qua c\u00f9ng 1 id.<\/li>\r\n<li><strong>C\u00e1ch t\u00ecm ra:<\/strong> Nh\u1edd v\u00e0o ph\u00e2n t\u00edch t\u00edn hi\u1ec7u SETUP l\u1ea5y t\u1eeb trace c\u1ee7a Ethereal \u1edf Nortel. T\u00edn hi\u1ec7u c\u1ee7a h\u1ecd c\u00f3 \u0111\u1ed9 d\u00e0i 1016 bytes, nh\u01b0ng MSX_MAX_LEN ch\u1ec9 c\u00f3 1000. B\u00ecnh th\u01b0\u1eddng ta s\u1ebd nh\u1eadn m\u1ed9t t\u00edn hi\u1ec7u b\u1ecb c\u1eaft t\u1eeb common\/Communication.cxx, nh\u01b0ng \u1edf \u0111\u00e2y khi cung c\u1ea5p d\u1eef li\u1ec7u tr\u1ef1c ti\u1ebfp \u0111\u1ec3 ph\u00e2n t\u00edch, kho\u1ea3ng b\u1ed9 nh\u1edb v\u01b0\u1ee3t qu\u00e1 array b\u1ecb truy c\u1eadp, v\u00e0 v\u00f4 t\u00ecnh n\u00f3 b\u1eb1ng 0, l\u00e0m xu\u1ea5t hi\u1ec7n l\u1ed7i. \u0110\u1ec3 s\u1eeda l\u1ed7i, t\u00f4i \u0111\u00e3 th\u00eam v\u00e0o v\u00e0i l\u1ec7nh print trong ph\u1ea7n code ph\u00e2n t\u00edch Q.931. Nh\u01b0ng may m\u1eafn l\u00e0 d\u1eef li\u1ec7u l\u1ea1i b\u1eb1ng 0.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><strong>C\u00e1ch s\u1eeda &#8211; Qu\u00e1 tr\u00ecnh s\u1eeda:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><span style=\"font-weight: 400;\"><strong>S\u1eeda:<\/strong> N\u1ebfu chi\u1ec1u d\u00e0i t\u00ecm th\u1ea5y b\u1eb1ng 0, \u0111\u1eb7t n\u00f3 l\u1ea1i b\u1eb1ng 1. Nh\u01b0 v\u1eady ch\u00fang ta s\u1ebd lu\u00f4n \u0111i ti\u1ebfp \u0111\u01b0\u1ee3c.<\/span><\/li>\r\n<li><strong>S\u1eeda trong file(s):<\/strong> callh\/q931_msg.cxx<\/li>\r\n<li><strong>Th\u1ee7 ph\u1ea1m l\u00e0 t\u00f4i:<\/strong> \u0110\u00fang v\u1eady.<\/li>\r\n<li><strong>Th\u1eddi gian s\u1eeda bug:<\/strong> 1 gi\u1edd.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><strong>B\u00e0i h\u1ecdc r\u00fat ra \u0111\u01b0\u1ee3c:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>B\u00e0i h\u1ecdc:<\/strong>\u00a0\u0110\u1eb7t &#8220;ni\u1ec1m tin l\u1ea7m ch\u1ed7&#8221; v\u00e0o d\u1eef li\u1ec7u c\u1ee7a t\u00edn hi\u1ec7u g\u1eedi t\u1edbi. Gi\u00e1 tr\u1ecb d\u1eef li\u1ec7u c\u00f3 th\u1ec3 qu\u00e1 l\u1edbn l\u00e0m ch\u01b0\u01a1ng tr\u00ecnh ch\u1ea1y sai. Ngo\u00e0i ra khi chi\u1ec1u d\u00e0i b\u1eb1ng 0 c\u0169ng c\u00f3 th\u1ec3 l\u00e0 m\u1ed9t d\u1ea5u hi\u1ec7u x\u1ea5u.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"h-ba-bai-h\u1ecdc-l\u1edbn-danh-cho-l\u1eadp-trinh-vien\"><span class=\"ez-toc-section\" id=\"Ba_bai_hoc_lon_danh_cho_lap_trinh_vien_ve_bug_la_gi\"><\/span><strong>Ba b\u00e0i h\u1ecdc l\u1edbn d\u00e0nh cho l\u1eadp tr\u00ecnh vi\u00ean v\u1ec1 bug l\u00e0 g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<h3><strong>V\u1ec1 coding<\/strong><\/h3>\r\n\r\n\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-17187\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-2.jpg\" alt=\"Kinh nghi\u1ec7m x\u1eed l\u00fd bug d\u00e0nh cho coding\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-2.jpg 500w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-2-300x225.jpg 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-2-200x150.jpg 200w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Nh\u1eefng l\u1ed7i ph\u1ea1m ph\u1ea3i trong code t\u1ea1o ra bug l\u00e0 g\u00ec? C\u00f3 ph\u1ea3i \u0111\u00e3 qu\u00ean m\u1ed9t else-part? C\u00f3 ph\u1ea3i m\u1ed9t l\u1ec7nh g\u1ecdi h\u1ec7 th\u1ed1ng b\u1ecb th\u1ea5t b\u1ea1i, nh\u01b0ng h\u1ed3i \u0111\u00e1p ch\u01b0a \u0111\u01b0\u1ee3c check? L\u00e0m sao ch\u1ec9nh s\u1eeda code \u0111\u1ec3 tr\u00e1nh nh\u1eefng v\u1ea5n \u0111\u1ec1 n\u00e0y trong t\u01b0\u01a1ng lai?<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><b>Tr\u00ecnh t\u1ef1 s\u1ef1 ki\u1ec7n<\/b><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Khi <\/span><span style=\"font-weight: 400;\">x\u1eed l\u00fd s\u1ef1 ki\u1ec7n<\/span><span style=\"font-weight: 400;\">, nh\u1eefng c\u00e2u h\u1ecfi sau s\u1ebd r\u1ea5t c\u00f3 \u00edch:<\/span><\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li><em><span style=\"font-weight: 400;\">Li\u1ec7u s\u1ef1 ki\u1ec7n c\u00f3 th\u1ec3 \u0111\u1ebfn theo tr\u1eadt t\u1ef1 kh\u00e1c \u0111\u01b0\u1ee3c kh\u00f4ng?<\/span><\/em><\/li>\r\n<li><em><span style=\"font-weight: 400;\">S\u1ebd th\u1ebf n\u00e0o n\u1ebfu kh\u00f4ng nh\u1eadn \u0111\u01b0\u1ee3c s\u1ef1 ki\u1ec7n n\u00e0y? S\u1ebd th\u1ebf n\u00e0o n\u1ebfu s\u1ef1 ki\u1ec7n n\u00e0y di\u1ec5n ra hai l\u1ea7n li\u00ean ti\u1ebfp?<\/span><\/em><\/li>\r\n<li><em><span style=\"font-weight: 400;\">Th\u1eadm ch\u00ed, n\u1ebfu n\u00f3 kh\u00f4ng bao gi\u1edd x\u1ea3y ra, bugs \u1edf nh\u1eefng ph\u1ea7n kh\u00e1c c\u1ee7a h\u1ec7 th\u1ed1ng (ho\u1eb7c c\u1ee7a nh\u1eefng h\u1ec7 th\u1ed1ng kh\u00e1c c\u00f3 t\u01b0\u01a1ng t\u00e1c) v\u1eabn c\u00f3 th\u1ec3 khi\u1ebfn n\u00f3 x\u1ea3y ra.<\/span><\/em><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><b>Qu\u00e1 s\u1edbm<\/b><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">C\u00e1i n\u00e0y l\u00e0 m\u1ed9t tr\u01b0\u1eddng h\u1ee3p \u0111\u1eb7c bi\u1ec7t c\u1ee7a ph\u1ea7n &#8220;Tr\u00ecnh t\u1ef1 s\u1ef1 ki\u1ec7n&#8221; \u1edf tr\u00ean. Nh\u01b0ng b\u1edfi v\u00ec n\u00f3 g\u00e2y ra m\u1ed9t s\u1ed1 l\u1ed7i r\u1ea5t kh\u00f3 t\u00ecm n\u00ean n\u00f3 \u0111\u01b0\u1ee3c \u0111\u1eb7t ra ri\u00eang.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">Ch\u1eb3ng h\u1ea1n, n\u1ebfu t\u00edn hi\u1ec7u nh\u1eadn \u0111\u01b0\u1ee3c qu\u00e1 s\u1edbm, tr\u01b0\u1edbc khi c\u00e1c ti\u1ebfn tr\u00ecnh thi\u1ebft l\u1eadp v\u00e0 kh\u1edfi \u0111\u1ed9ng ho\u00e0n t\u1ea5t, kh\u1ea3 n\u0103ng ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd c\u00f3 nh\u1eefng bi\u1ec3u hi\u1ec7n k\u1ef3 l\u1ea1.<\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">M\u1ed9t v\u00ed d\u1ee5 kh\u00e1c: Khi m\u1ed9t k\u1ebft n\u1ed1i \u0111\u01b0\u1ee3c \u0111\u00e1nh d\u1ea5u l\u00e0 down ngay c\u1ea3 tr\u01b0\u1edbc khi n\u00f3 \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o danh s\u00e1ch idle. Khi ph\u1ea3i t\u00ecm l\u1ed7i n\u00e0y, ch\u00fang ta lu\u00f4n m\u1eb7c \u0111\u1ecbnh r\u1eb1ng n\u00f3 b\u1ecb \u0111\u00e1nh d\u1ea5u down trong khi \u0111ang \u1edf trong danh s\u00e1ch idle (nh\u01b0ng l\u00fac \u0111\u00f3 t\u1ea1i sao n\u00f3 kh\u00f4ng \u0111\u01b0\u1ee3c l\u1ea5y ra kh\u1ecfi danh s\u00e1ch?).<\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">\u0110\u00f3 l\u00e0 m\u1ed9t sai l\u1ea7m trong nh\u1eadn th\u1ee9c c\u1ee7a ch\u00fang ta khi kh\u00f4ng x\u00e9t \u0111\u1ebfn tr\u01b0\u1eddng h\u1ee3p c\u00f3 nh\u1eefng th\u1ee9 x\u1ea3y ra qu\u00e1 s\u1edbm.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><b>&#8220;C\u00e1i ch\u1ebft \u00eam \u0111\u1ec1m&#8221;<\/b><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">M\u1ed9t trong s\u1ed1 nh\u1eefng l\u1ed7i kh\u00f3 ph\u00e1t hi\u1ec7n nh\u1ea5t l\u00e0 khi ch\u00fang l\u1eb7ng l\u1ebd ra \u0111i v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh ti\u1ebfp t\u1ee5c \u0111\u01b0\u1ee3c th\u1ef1c thi m\u00e0 kh\u00f4ng qu\u0103ng ra exception n\u00e0o.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">Ch\u1eb3ng h\u1ea1n nh\u01b0 c\u00e1c l\u1ec7nh g\u1ecdi h\u1ec7 th\u1ed1ng (bind ch\u1eb3ng h\u1ea1n) tr\u1ea3 v\u1ec1 m\u00e3 l\u1ed7i nh\u01b0ng kh\u00f4ng \u0111\u01b0\u1ee3c ki\u1ec3m tra.<\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">Ho\u1eb7c nh\u01b0, ph\u1ea7n code \u0111\u1ec3 ph\u00e2n t\u00edch t\u00edn hi\u1ec7u ch\u1ec9 \u0111\u01a1n gi\u1ea3n return khi b\u1eaft g\u1eb7p m\u1ed9t th\u00e0nh ph\u1ea7n kh\u00f4ng h\u1ee3p l\u1ec7, trong khi \u0111\u00e1ng l\u1ebd ph\u1ea3i qu\u0103ng l\u1ed7i.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Ch\u01b0\u01a1ng tr\u00ecnh ti\u1ebfp t\u1ee5c ch\u1ea1y trong tr\u1ea1ng th\u00e1i sai, l\u00e0m cho debug c\u00e0ng kh\u00f3 h\u01a1n. N\u00f3i chung t\u1ed1t nh\u1ea5t l\u00e0 m\u1ed9t l\u1ed7i n\u00ean \u0111\u01b0\u1ee3c qu\u0103ng ra c\u00e0ng s\u1edbm c\u00e0ng t\u1ed1t.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>If<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">L\u1ec7nh if v\u1edbi nhi\u1ec1u \u0111i\u1ec1u ki\u1ec7n, if (a or b), \u0111\u1eb7c bi\u1ec7t l\u00e0 khi \u0111\u01b0\u1ee3c n\u1ed1i l\u1ea1i v\u1edbi nhau, if (x) else if (y), g\u00e2y ra qu\u00e1 tr\u1eddi l\u1ed7i cho t\u00f4i.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">D\u00f9 cho c\u00e2u l\u1ec7nh if v\u1ec1 m\u1eb7t kh\u00e1i ni\u1ec7m qu\u00e1 \u0111\u01a1n gi\u1ea3n \u0111i, ch\u00fang v\u1eabn d\u1ec5 b\u1ecb sai khi c\u00f3 nhi\u1ec1u \u0111i\u1ec1u ki\u1ec7n \u0111i k\u00e8m.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">B\u00e2y gi\u1edd t\u00f4i c\u1ed1 g\u1eafng vi\u1ebft code \u0111\u01a1n gi\u1ea3n h\u01a1n \u0111\u1ec3 tr\u00e1nh ph\u1ea3i x\u1eed l\u00fd nh\u1eefng c\u00e2u if ph\u1ee9c t\u1ea1p.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Else<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">C\u0169ng c\u00f3 qu\u00e1 tr\u1eddi l\u1ed7i l\u00e0 do kh\u00f4ng x\u00e9t \u0111\u1ebfn tr\u01b0\u1eddng h\u1ee3p b\u1ecf qua l\u1ec7nh else. G\u1ea7n nh\u01b0 t\u1ea5t c\u1ea3 tr\u01b0\u1eddng h\u1ee3p, lu\u00f4n ph\u1ea3i c\u00f3 m\u1ed9t l\u1ec7nh else cho m\u1ed7i c\u00e2u if. H\u01a1n n\u1eefa, n\u1ebfu b\u1ea1n \u0111\u1eb7t m\u1ed9t bi\u1ebfn b\u00ean trong l\u1ec7nh if, kh\u1ea3 n\u0103ng cao l\u00e0 b\u1ea1n ph\u1ea3i \u0111\u1eb7t n\u00f3 \u1edf nh\u1eefng ch\u1ed7 kh\u00e1c n\u1eefa.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">M\u1ed9t v\u00ed d\u1ee5 r\u1ea5t li\u00ean quan l\u00e0 c\u00e1c \u0111o\u1ea1n l\u1ec7nh ki\u1ec3m tra c\u1edd (flag). Qu\u00e1 d\u1ec5 d\u00e0ng khi \u0111\u1eb7t \u0111i\u1ec1u ki\u1ec7n \u0111\u1ec3 b\u1eadt c\u1edd, nh\u01b0ng l\u1ea1i r\u1ea5t hay qu\u00ean \u0111\u1eb7t \u0111i\u1ec1u ki\u1ec7n \u0111\u1ec3 \u0111\u1eb7t l\u1ea1i c\u1edd. \u0110\u1ec3 l\u00e1 c\u1edd b\u1eadt li\u00ean t\u1ee5c c\u00f3 kh\u1ea3 n\u0103ng cao l\u00e0 s\u1ebd c\u00f3 l\u1ed7i v\u1ec1 sau.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Thay \u0111\u1ed5i c\u00e1c gi\u1ea3 \u0111\u1ecbnh<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Nh\u1eefng l\u1ed7i kh\u00f3 ph\u00f2ng tr\u00e1nh nh\u1ea5t trong giai \u0111o\u1ea1n \u0111\u1ea7u th\u01b0\u1eddng l\u00e0 do thay \u0111\u1ed5i gi\u1ea3 \u0111\u1ecbnh.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">Ch\u1eb3ng h\u1ea1n, ban \u0111\u1ea7u c\u00f3 th\u1ec3 ch\u1ec9 c\u00f3 m\u1ed9t s\u1ef1 ki\u1ec7n customer m\u1ed7i ng\u00e0y. Th\u1ebf l\u00e0 r\u1ea5t nhi\u1ec1u code \u0111\u01b0\u1ee3c vi\u1ebft v\u1edbi gi\u1ea3 \u0111\u1ecbnh n\u00e0y. M\u1ed9t th\u1eddi gian sau, thi\u1ebft k\u1ebf thay \u0111\u1ed5i cho ph\u00e9p nhi\u1ec1u s\u1ef1 ki\u1ec7n customer di\u1ec5n ra trong ng\u00e0y. Khi chuy\u1ec7n n\u00e0y x\u1ea3y ra, c\u00f3 th\u1ec3 r\u1ea5t kh\u00f3 \u0111\u1ec3 thay \u0111\u1ed5i h\u1ebft t\u1ea5t c\u1ea3 tr\u01b0\u1eddng h\u1ee3p b\u1ecb \u1ea3nh h\u01b0\u1edfng b\u1edfi thi\u1ebft k\u1ebf m\u1edbi.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">N\u00f3i chung kh\u00f4ng kh\u00f3 \u0111\u1ec3 t\u00ecm t\u1ea5t c\u1ea3 c\u00e1c ph\u1ea7n ph\u1ee5 thu\u1ed9c hi\u1ec3n nhi\u00ean. C\u00e1i kh\u00f3 l\u00e0 t\u00ecm ra nh\u1eefng ph\u1ea7n ph\u1ee5 thu\u1ed9c ti\u1ec1m \u1ea9n b\u00ean trong thi\u1ebft k\u1ebf c\u0169.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">Ch\u1eb3ng h\u1ea1n c\u00f3 th\u1ec3 c\u00f3 ph\u1ea7n code thu th\u1eadp t\u1ea5t c\u1ea3 s\u1ef1 ki\u1ec7n c\u1ee7a customers trong m\u1ed9t ng\u00e0y nh\u1ea5t \u0111\u1ecbnh. M\u1ed9t gi\u1ea3 \u0111\u1ecbnh hi\u1ec3n nhi\u00ean c\u00f3 th\u1ec3 l\u00e0 k\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1 kh\u00f4ng bao gi\u1edd l\u1edbn h\u01a1n s\u1ed1 l\u01b0\u1ee3ng customers.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">T\u00f4i kh\u00f4ng bi\u1ebft c\u00e1ch n\u00e0o t\u1ed1t \u0111\u1ec3 \u0111\u1ec1 ph\u00f2ng nh\u1eefng tr\u01b0\u1eddng h\u1ee3p n\u00e0y, n\u1ebfu b\u1ea1n n\u00e0o bi\u1ebft th\u00ec g\u1ee3i \u00fd gi\u00fap t\u00f4i v\u1edbi nh\u00e9.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Logging<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">\u0110i\u1ec1u t\u1ed1i quan tr\u1ecdng l\u00e0 c\u00f3 nh\u1eadn th\u1ee9c v\u1ec1 nh\u1eefng g\u00ec ch\u01b0\u01a1ng tr\u00ecnh ho\u1ea1t \u0111\u1ed9ng, \u0111\u1eb7c bi\u1ec7t trong nh\u1eefng ch\u01b0\u01a1ng tr\u00ecnh c\u00f3 logic ph\u1ee9c t\u1ea1p.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">C\u1ea7n ch\u1eafc ch\u1eafn logging \u0111\u01b0\u1ee3c \u0111\u1eb7t v\u1eeba \u0111\u1ee7 v\u00e0 \u0111\u00fang ch\u1ed7, \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 l\u00fd lu\u1eadn t\u1ea1i sao ch\u01b0\u01a1ng tr\u00ecnh l\u1ea1i ch\u1ea1y nh\u01b0 v\u1eady.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Khi m\u1ecdi th\u1ee9 ho\u1ea1t \u0111\u1ed9ng tr\u01a1n tru th\u00ec kh\u00f4ng sao, nh\u01b0ng ngay khi ch\u01b0\u01a1ng tr\u00ecnh x\u1ea3y ra l\u1ed7i (chuy\u1ec7n kh\u00f4ng th\u1ec3 tr\u00e1nh kh\u1ecfi), \u00edt ra b\u1ea1n s\u1ebd th\u1ea5y h\u1ea1nh ph\u00fac v\u00ec \u0111\u00e3 logging \u0111\u00fang ch\u1ed7.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em>Xem th\u00eam <a href=\"https:\/\/itviec.com\/blog\/lap-trinh-vien\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ngh\u1ec1 l\u1eadp tr\u00ecnh vi\u00ean qu\u00e1 trau chu\u1ed1t code l\u00e0 t\u1ef1 h\u1ea1i m\u00ecnh?<\/a><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-v\u1ec1-testing\"><strong>V\u1ec1 Testing<\/strong><\/h3>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"375\" class=\"wp-image-17188\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-3.jpg\" alt=\"Kinh nghi\u1ec7m x\u1eed l\u00fd bug d\u00e0nh cho testing\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-3.jpg 500w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-3-300x225.jpg 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-3-200x150.jpg 200w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">C\u00f3 nh\u1eefng bug r\u00f5 r\u00e0ng n\u00ean \u0111\u01b0\u1ee3c \u201ckhui\u201d ra ngay trong qu\u00e1 tr\u00ecnh test. N\u1ebfu v\u1eady, ph\u1ea7n test n\u00e0o \u0111\u00e3 thi\u1ebfu s\u00f3t \u2013 unit, functional, hay system? Test case n\u00e0o \u0111\u00e3 b\u1ecb thi\u1ebfu? <\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>0 v\u00e0 null<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Lu\u00f4n ch\u1eafc ch\u1eafn ki\u1ec3m tra v\u1edbi gi\u00e1 tr\u1ecb 0 v\u00e0 null (n\u1ebfu c\u00f3 th\u1ec3). \u0110\u1ed1i v\u1edbi chu\u1ed7i, c\u1ea7n l\u01b0u \u00fd chu\u1ed7i r\u1ed7ng, v\u00e0 chu\u1ed7i l\u00e0 null.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">M\u1ed9t v\u00ed d\u1ee5 kh\u00e1c: ki\u1ec3m tra tr\u01b0\u1eddng h\u1ee3p \u0111\u1ee9t k\u1ebft n\u1ed1i TCP tr\u01b0\u1edbc khi b\u1ea5t c\u1ee9 d\u1eef li\u1ec7u (zero bytes) n\u00e0o \u0111\u01b0\u1ee3c g\u1eedi.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">B\u1ecf qua vi\u1ec7c ki\u1ec3m tra c\u00e1c tr\u01b0\u1eddng h\u1ee3p tr\u00ean l\u00e0 l\u00fd do s\u1ed1 m\u1ed9t l\u00e0m cho bug l\u1ecdt kh\u1ecfi ph\u1ea7n test c\u1ee7a t\u00f4i.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><b>Th\u00eam v\u00e0o v\u00e0 x\u00f3a \u0111i<\/b><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Th\u01b0\u1eddng c\u00e1c t\u00ednh n\u0103ng m\u1edbi s\u1ebd d\u00ednh t\u1edbi chuy\u1ec7n th\u00eam c\u00e1c thi\u1ebft l\u1eadp m\u1edbi v\u00e0o h\u1ec7 th\u1ed1ng, ch\u1eb3ng h\u1ea1n nh\u01b0 m\u1ed9t ki\u1ec3u \u0111\u1ecbnh d\u1ea1ng m\u1edbi s\u1ed1 \u0111i\u1ec7n tho\u1ea1i.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Th\u01b0\u1eddng th\u00ec b\u1ea1n s\u1ebd ki\u1ec3m tra xem c\u00f3 th\u1ec3 th\u00eam \u0111\u1ecbnh d\u1ea1ng m\u1edbi hay kh\u00f4ng, nh\u01b0ng t\u00f4i th\u1ea5y l\u00e0 r\u1ea5t d\u1ec5 qu\u00ean ki\u1ec3m tra tr\u01b0\u1eddng h\u1ee3p x\u00f3a \u0111\u1ecbnh d\u1ea1ng c\u0169.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>X\u1eed l\u00fd l\u1ed7i<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Ph\u1ea7n code d\u00f9ng \u0111\u1ec3 x\u1eed l\u00fd l\u1ed7i th\u01b0\u1eddng r\u1ea5t kh\u00f3 ki\u1ec3m tra. T\u1ed1t nh\u1ea5t l\u00e0 n\u00ean c\u00f3 c\u00e1c test t\u1ef1 \u0111\u1ed9ng \u0111\u1ec3 ki\u1ec3m tra ph\u1ea7n n\u00e0y, nh\u01b0ng \u0111\u00f4i khi vi\u1ec7c n\u00e0y tr\u1edf n\u00ean b\u1ea5t kh\u1ea3.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">M\u1ed9t m\u1eb9o t\u00f4i hay d\u00f9ng l\u00e0 s\u1eeda code t\u1ea1m th\u1eddi \u0111\u1ec3 k\u00edch ho\u1ea1t ph\u1ea7n x\u1eed l\u00fd l\u1ed7i. D\u1ec5 nh\u1ea5t l\u00e0 l\u1eadt ng\u01b0\u1ee3c \u0111i\u1ec1u ki\u1ec7n if l\u1ea1i, ch\u1eb3ng h\u1ea1n nh\u01b0 chuy\u1ec3n if error_count &gt; 0 th\u00e0nh if error_count == 0.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">M\u1ed9t v\u00ed d\u1ee5 kh\u00e1c l\u00e0 gi\u1ea3 v\u1edd vi\u1ebft sai t\u00ean m\u1ed9t column trong database \u0111\u1ec3 k\u00edch ho\u1ea1t l\u1ed7i.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>S\u1eed d\u1ee5ng d\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o ng\u1eabu nhi\u00ean<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">M\u1ed9t c\u00e1ch ki\u1ec3m tra kh\u00e1c c\u00f3 th\u1ec3 d\u00f9ng \u0111\u1ec3 ph\u00e1t hi\u1ec7n bug l\u00e0 s\u1eed d\u1ee5ng d\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o ng\u1eabu nhi\u00ean.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Ch\u1eb3ng h\u1ea1n nh\u01b0, ph\u1ea7n gi\u1ea3i m\u00e3 ASN.1 c\u1ee7a giao th\u1ee9c H.323 ho\u1ea1t \u0111\u1ed9ng tr\u00ean d\u1eef li\u1ec7u nh\u1ecb ph\u00e2n. B\u1eb1ng c\u00e1ch g\u1eedi c\u00e1c bytes ng\u1eabu nhi\u00ean \u0111\u1ec3 gi\u1ea3i m\u00e3, ch\u00fang t\u00f4i \u0111\u00e3 t\u00ecm ra r\u1ea5t nhi\u1ec1u l\u1ed7i trong ph\u1ea7n n\u00e0y.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">M\u1ed9t v\u00ed d\u1ee5 kh\u00e1c l\u00e0 t\u1ea1o ra nh\u1eefng cu\u1ed9c g\u1ecdi th\u1eed nghi\u1ec7m, v\u1edbi th\u1eddi gian g\u1ecdi, \u0111\u1ed9 tr\u1ec5 khi tr\u1ea3 l\u1eddi, b\u00ean n\u00e0o ng\u1eaft m\u00e1y tr\u01b0\u1edbc, v.v.. \u0111\u01b0\u1ee3c t\u1ea1o ra ng\u1eabu nhi\u00ean. Nh\u1eefng cu\u1ed9c g\u1ecdi n\u00e0y l\u00e0m l\u1ed9 ra m\u1ed9t \u0111\u1ed1ng bug, \u0111\u1eb7t bi\u1ec7t l\u00e0 khi ch\u00fang xen v\u00e0o nh\u1eefng s\u1ef1 ki\u1ec7n x\u1ea3y ra g\u1ea7n nh\u01b0 c\u00f9ng l\u00fac.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Ki\u1ec3m tra h\u00e0nh \u0111\u1ed9ng kh\u00f4ng mong mu\u1ed1n c\u00f3 th\u1eadt s\u1ef1 KH\u00d4NG di\u1ec5n ra<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Th\u01b0\u1eddng testing li\u00ean quan \u0111\u1ebfn xem th\u1eed h\u00e0nh \u0111\u1ed9ng mong mu\u1ed1n c\u00f3 x\u1ea3y ra kh\u00f4ng. Nh\u01b0ng l\u1ea1i r\u1ea5t d\u1ec5 b\u1ecf qua tr\u01b0\u1eddng h\u1ee3p ng\u01b0\u1ee3c l\u1ea1i &#8211; ki\u1ec3m tra h\u00e0nh \u0111\u1ed9ng kh\u00f4ng mong mu\u1ed1n th\u1eadt s\u1ef1 kh\u00f4ng di\u1ec5n ra.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><b>T\u1ef1 l\u00e0m tool<\/b><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">T\u00f4i th\u01b0\u1eddng t\u1ef1 l\u00e0m c\u00e1c tool nh\u1ecf \u0111\u1ec3 test d\u1ec5 h\u01a1n.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">V\u00ed d\u1ee5, khi <\/span><span style=\"font-weight: 400;\">khi t\u00f4i l\u00e0m vi\u1ec7c v\u1edbi giao th\u1ee9c SIP cho VoIP, t\u00f4i vi\u1ebft m\u1ed9t \u0111o\u1ea1n m\u00e3 nh\u1ecf c\u00f3 th\u1ec3 tr\u1ea3 l\u1eddi v\u1edbi headers v\u00e0 gi\u00e1 tr\u1ecb t\u00f4i mong mu\u1ed1n. \u0110o\u1ea1n m\u00e3 n\u00e0y gi\u00fap t\u00f4i ki\u1ec3m tra nh\u1eefng tr\u01b0\u1eddng h\u1ee3p \u0111\u1eb7c bi\u1ec7t d\u1ec5 d\u00e0ng h\u01a1n.<\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">M\u1ed9t v\u00ed d\u1ee5 kh\u00e1c l\u00e0 m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh d\u00f2ng l\u1ec7nh chuy\u00ean d\u00f9ng \u0111\u1ec3 g\u1ecdi API.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">B\u1eb1ng c\u00e1ch b\u1eaft \u0111\u1ea7u nh\u1ecf, v\u00e0 d\u1ea7n d\u1ea7n ph\u00e1t tri\u1ec3n th\u00eam t\u00ednh n\u0103ng cho n\u00f3, cu\u1ed1i c\u00f9ng t\u00f4i c\u00f3 trong nay nh\u1eefng c\u00f4ng c\u1ee5 r\u1ea5t h\u1eefu d\u1ee5ng. L\u1ee3i \u00edch c\u1ee7a vi\u1ec7c n\u00e0y l\u00e0 t\u00f4i c\u00f3 nh\u1eefng c\u00f4ng c\u1ee5 \u0111\u00fang nh\u01b0 t\u00f4i mong mu\u1ed1n.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em>Xem th\u00eam: <a href=\"https:\/\/itviec.com\/blog\/nhan-vien-qa\/\" target=\"_blank\" rel=\"noopener\"><strong>Nh\u1eefng sai l\u1ea7m th\u01b0\u1eddng g\u1eb7p c\u1ee7a QA\/Tester<\/strong><\/a><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id=\"h-v\u1ec1-debugging\"><strong>V\u1ec1 Debugging<\/strong><\/h3>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-17189\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-4.jpg\" alt=\"V\u1ec1 Debugging - bug l\u00e0 g\u00ec\" width=\"500\" height=\"375\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-4.jpg 500w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-4-300x225.jpg 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-4-200x150.jpg 200w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">C\u00e1ch nhanh h\u01a1n \u0111\u1ec3 &#8220;khui&#8221; bug l\u00e0 g\u00ec? T\u00f4i \u0111\u00e3 d\u00f9ng \u0111\u00fang tool ch\u01b0a? C\u00f3 ph\u1ea3i t\u00f4i \u0111\u00e3 ph\u1ecfng \u0111o\u00e1n qu\u00e1 nhi\u1ec1u? T\u00f4i c\u00f3 c\u1ea7n logging t\u1ed1t h\u01a1n kh\u00f4ng?<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Th\u1ea3o lu\u1eadn<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">N\u1ebfu b\u1ea1n h\u1ecfi t\u00f4i c\u00e1ch hi\u1ec7u qu\u1ea3 nh\u1ea5t \u0111\u1ec3 x\u1eed l\u00fd bug l\u00e0 g\u00ec? T\u00f4i s\u1ebd tr\u1ea3 l\u1eddi l\u00e0 th\u1ea3o lu\u1eadn v\u1edbi \u0111\u1ed3ng nghi\u1ec7p. Trong l\u00fac t\u00ecm c\u00e1ch gi\u1ea3i th\u00edch cho h\u1ecd hi\u1ec3u v\u1ea5n \u0111\u1ec1 g\u1eb7p ph\u1ea3i l\u00e0 g\u00ec, t\u00f4i c\u0169ng \u0111\u1ed3ng th\u1eddi hi\u1ec3u s\u00e2u v\u00e0 r\u00f5 h\u01a1n v\u1ec1 n\u00f3.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Th\u00eam n\u1eefa, d\u00f9 kh\u00f4ng quen thu\u1ed9c v\u1edbi code trong c\u00e2u h\u1ecfi, th\u01b0\u1eddng h\u1ecd s\u1ebd c\u00f3 c\u00e1i nh\u00ecn kh\u00e1ch quan \u0111\u1ec3 ch\u1ec9 ra v\u1ea5n \u0111\u1ec1 c\u00f3 th\u1ec3 n\u1ea3y sinh t\u1eeb \u0111\u00e2u.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">\u0110\u00e2y l\u00e0 c\u00e1ch c\u1ef1c k\u00ec hi\u1ec7u qu\u1ea3 gi\u00fap t\u00f4i gi\u1ea3i quy\u1ebft nh\u1eefng bug kh\u00f3 nh\u1eb1n nh\u1ea5t. <\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>C\u1ea9n th\u1eadn \u0111\u1ebfn t\u1eebng ti\u1ec3u ti\u1ebft<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Khi vi\u1ec7c debug ng\u1ed1n qu\u00e1 nhi\u1ec1u th\u1eddi gian, th\u00ec th\u01b0\u1eddng l\u00e0 do t\u00f4i \u0111\u00e3 suy \u0111o\u00e1n sai.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">V\u00ed d\u1ee5, t\u00f4i ngh\u0129 v\u1ea5n \u0111\u1ec1 x\u1ea3y ra \u1edf m\u1ed9t method n\u00e0o \u0111\u00f3, trong khi th\u1ef1c t\u1ebf kh\u00f4ng \u0111\u1eddi n\u00e0o chuy\u1ec7n \u0111\u00f3 x\u1ea3y ra.<\/span><\/em><\/p>\r\n<p><em><span style=\"font-weight: 400;\">Ho\u1eb7c, m\u1ed9t ngo\u1ea1i l\u1ec7 x\u1ea3y ra tr\u00e1i v\u1edbi ngo\u1ea1i l\u1ec7 t\u00f4i suy \u0111o\u00e1n. Ho\u1eb7c, t\u00f4i ngh\u0129 ph\u1ea7n m\u1ec1m ch\u1ea1y version m\u1edbi nh\u1ea5t, trong khi th\u1ef1c ra n\u00f3 l\u1ea1i ch\u1ea1y m\u1ed9t version c\u0169 h\u01a1n.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Cho n\u00ean, h\u00e3y <\/span><span style=\"font-weight: 400;\">ch\u1eafc ch\u1eafn b\u1ea1n \u0111\u00e3 ki\u1ec3m tra l\u1ea1i t\u1ea5t c\u1ea3 chi ti\u1ebft thay v\u00ec m\u1eb7c \u0111\u1ecbnh m\u1ecdi th\u1ee9. Th\u1eadt d\u1ec5 \u0111\u1ec3 th\u1ea5y nh\u1eefng g\u00ec b\u1ea1n mong mu\u1ed1n th\u1ea5y, h\u01a1n l\u00e0 nh\u1eefng g\u00ec th\u1eadt s\u1ef1 \u1edf \u0111\u00f3.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong><b>Thay \u0111\u1ed5i m\u1edbi nh\u1ea5t<\/b><\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Khi nh\u1eefng th\u1ee9 t\u1eebng ho\u1ea1t \u0111\u1ed9ng t\u1ef1 d\u01b0ng tr\u1ee5c tr\u1eb7c, th\u01b0\u1eddng l\u00e0 do nh\u1eefng thay \u0111\u1ed5i m\u1edbi nh\u1ea5t g\u00e2y n\u00ean.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">C\u00f3 tr\u01b0\u1eddng h\u1ee3p, b\u1ea1n ch\u1ec9 thay \u0111\u1ed5i logging, song m\u1ed9t l\u1ed7i trong logging \u0111\u00e3 g\u00e2y n\u00ean s\u1ef1 c\u1ed1 l\u1edbn h\u01a1n nhi\u1ec1u.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 d\u1ec5 truy t\u00ecm nh\u1eefng s\u1ef1 c\u1ed1 ki\u1ec3u n\u00e0y, b\u1ea1n n\u00ean commit nh\u1eefng thay \u0111\u1ed5i kh\u00e1c nhau trong nh\u1eefng commit kh\u00e1c nhau, v\u00e0 ghi ch\u00fa r\u00f5 r\u00e0ng v\u1ec1 vi\u1ec7c thay \u0111\u1ed5i. <\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong><b>Tin \u1edf ng\u01b0\u1eddi d\u00f9ng<\/b><\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">\u0110\u00f4i khi ng\u01b0\u1eddi d\u00f9ng report m\u1ed9t v\u1ea5n \u0111\u1ec1 n\u00e0o \u0111\u00f3, \u00fd ngh\u0129 \u0111\u1ea7u ti\u00ean c\u1ee7a t\u00f4i l\u00e0: <em>Kh\u00f4ng th\u1ec3 n\u00e0o! Ch\u1eafc h\u1ecd nh\u1ea7m l\u1eabn ch\u1ee9 chuy\u1ec7n \u0111\u00f3 sao x\u1ea3y ra \u0111\u01b0\u1ee3c!<\/em> Nh\u01b0ng r\u1ed3i, h\u00f3a ra h\u1ecd \u0111\u00e3 report \u0111\u00fang.<\/span><\/p>\r\n\r\n\r\n\r\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p><em><span style=\"font-weight: 400;\">Nh\u1eefng kinh nghi\u1ec7m th\u01b0\u01a1ng \u0111au \u0111\u00e3 d\u1ea1y t\u00f4i r\u1eb1ng: H\u00e3y tin \u1edf ng\u01b0\u1eddi d\u00f9ng.<\/span><\/em><\/p>\r\n<\/blockquote>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">D\u0129 nhi\u00ean t\u00f4i v\u1eabn ph\u1ea3i ki\u1ec3m tra l\u1ea1i \u0111\u1ec3 xem m\u1ecdi th\u1ee9 \u0111\u00e3 \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp \u0111\u00fang ch\u01b0a. Nh\u01b0ng t\u00f4i \u0111\u00e3 g\u1eb7p r\u1ea5t nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p k\u00ec qu\u1eb7c x\u1ea3y ra b\u1edfi v\u00ec m\u1ed9t thi\u1ebft l\u1eadp kh\u00f4ng th\u01b0\u1eddng g\u1eb7p, m\u1ed9t c\u00e1ch d\u00f9ng kh\u00f4ng \u0111\u01b0\u1ee3c d\u1ef1 \u0111o\u00e1n tr\u01b0\u1edbc, hay gi\u1ea3 \u0111\u1ecbnh ban \u0111\u1ea7u c\u1ee7a t\u00f4i r\u1eb1ng ch\u00fang ph\u1ea3i nh\u01b0 v\u1eady. V\u00e0 th\u1ebf l\u00e0 ch\u01b0\u01a1ng tr\u00ecnh ch\u1ea1y sai.<\/span><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Test ph\u1ea7n \u0111\u00e3 s\u1eeda<\/strong><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Sau khi \u0111\u00e3 s\u1eeda xong, b\u01b0\u1edbc ti\u1ebfp theo b\u1ea1n c\u1ea7n l\u00e0m v\u1edbi bug l\u00e0 g\u00ec? Khi bug \u0111\u00e3 s\u1eeda xong th\u00ec b\u1ea1n bu\u1ed9c ph\u1ea3i test l\u1ea1i. Tr\u01b0\u1edbc ti\u00ean, h\u00e3y ch\u1ea1y code m\u00e0 kh\u00f4ng d\u00f9ng ph\u1ea7n \u0111\u00e3 s\u1eeda v\u00e0 theo d\u00f5i bug. Sau \u0111\u00f3, s\u1eed d\u1ee5ng ph\u1ea7n \u0111\u00e3 s\u1eeda v\u00e0 ch\u1ea1y l\u1ea1i test case.<\/span><\/p>\r\n\r\n\r\n\r\n<p><span style=\"font-weight: 400;\">Tu\u00e2n theo nh\u1eefng b\u01b0\u1edbc tr\u00ean s\u1ebd gi\u00fap b\u1ea1n ch\u1eafc ch\u1eafn bug \u0111\u00f3 th\u1ef1c s\u1ef1 l\u00e0 bug, v\u00e0 ph\u1ea7n \u0111\u00e3 s\u1eeda th\u1ef1c s\u1ef1 hi\u1ec7u qu\u1ea3. \u0110\u01a1n gi\u1ea3n nh\u01b0ng c\u1ea7n thi\u1ebft.<\/span><\/p>\r\n\r\n\r\n\r\n<p><strong>Xem th\u00eam m\u1ed9t s\u1ed1 b\u00e0i vi\u1ebft hay v\u1ec1 Testing:<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><a href=\"https:\/\/itviec.com\/blog\/qc-la-gi-qa-la-gi\/\" target=\"_blank\" rel=\"noopener noreferrer\">QA l\u00e0 g\u00ec? QC l\u00e0 g\u00ec?<\/a><\/li>\r\n<li><a href=\"https:\/\/itviec.com\/blog\/automation-test\/\" target=\"_blank\" rel=\"noopener noreferrer\">Automation Tester l\u00e0 g\u00ec?<\/a><\/li>\r\n<li><a href=\"https:\/\/itviec.com\/blog\/qa-la-gi\/\" target=\"_blank\" rel=\"noopener\">Y\u1ebfu t\u1ed1 c\u1ea7n c\u00f3 \u0111\u1ec3 tr\u1edf th\u00e0nh QA gi\u1ecfi<\/a><\/li>\r\n<li><a href=\"https:\/\/itviec.com\/blog\/tester-thanh-cong\/\" target=\"_blank\" rel=\"noopener noreferrer\">Nh\u1eefng k\u1ef9 n\u0103ng c\u1ea7n thi\u1ebft \u0111\u1ec3 tr\u1edf th\u00e0nh Tester gi\u1ecfi.<\/a><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"200\" class=\"wp-image-5668 aligncenter\" src=\"\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2-200x200.png\" alt=\"Robby2\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2-200x200.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2-60x60.png 60w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2.png 300w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p style=\"text-align: center;\"><strong>N\u1ebfu b\u1ea1n ngh\u0129 nh\u1eefng chia s\u1ebb n\u00e0y c\u00f3 th\u1ec3 gi\u00fap \u00edch cho b\u1ea1n b\u00e8 ho\u1eb7c \u0111\u1ed3ng nghi\u1ec7p th\u00ec \u0111\u1eebng ng\u1ea1i nh\u1ea5n n\u00fat Share b\u00ean d\u01b0\u1edbi nh\u00e9!<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-center\" style=\"text-align: center;\"><strong>V\u00e0 \u0111\u1eebng qu\u00ean tham kh\u1ea3o h\u00e0ng tr\u0103m <a href=\"https:\/\/itviec.com\/it-jobs\/developer?utm_medium=anchor_text_low&amp;utm_source=blog&amp;utm_campaign=viec_lam_developer&amp;utm_content=bug_la_gi\" target=\"_blank\" rel=\"noopener noreferrer\">vi\u1ec7c l\u00e0m Developer<\/a> ch\u1ea5t tr\u00ean <a href=\"http:\/\/itviec.com\/?utm_medium=anchor_text_low&amp;utm_source=blog&amp;utm_campaign=itviec&amp;utm_content=bug_la_gi\" target=\"_blank\" rel=\"noopener noreferrer\">ITviec<\/a>!<\/strong><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c &#8220;chi\u1ebfn \u0111\u1ea5u&#8221; v\u1edbi bug l\u00e0 g\u00ec? \u0110\u00f3 l\u00e0 m\u1ed9t c\u00e2u h\u1ecfi kh\u00f4ng m\u1ea5y vui v\u1ebb, b\u1edfi c\u00f3 l\u1ebd h\u1ea7u h\u1ebft l\u1eadp tr\u00ecnh vi\u00ean \u0111\u1ec1u mu\u1ed1n l\u00e0m t\u00ednh n\u0103ng m\u1edbi, ch\u1ee9 ch\u1ea3 m\u1ea5y ai th\u00edch ph\u1ea3i b\u1ea3o tr\u00ec s\u1ea3n ph\u1ea9m c\u00f3 s\u1eb5n hay l\u00e0 fix bug. Song, [&hellip;]<\/p>\n","protected":false},"author":66,"featured_media":17162,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[99,94],"tags":[10114],"class_list":["post-12576","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developer","category-su-nghiep-it","tag-developer"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Bug l\u00e0 g\u00ec? C\u00e1ch fix bug hi\u1ec7u qu\u1ea3 ch\u1ec9 s\u1ed1 \u00edt developer m\u1edbi bi\u1ebft!<\/title>\n<meta name=\"description\" content=\"Bug l\u00e0 g\u00ec? \u0110\u1eebng \u0111\u1ec3 bug l\u00e0m b\u1ea1n stress nh\u1edd v\u00e0o 3 b\u00e0i h\u1ecdc l\u1edbn \u0111\u1eaft gi\u00e1 v\u1ec1 coding, testing v\u00e0 debugging m\u00e0 ch\u1ec9 Developer kinh nghi\u1ec7m m\u1edbi nh\u1eadn ra!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/bug-la-gi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c \u201cchi\u1ebfn \u0111\u1ea5u\u201d v\u1edbi bug l\u00e0 g\u00ec?\" \/>\n<meta property=\"og:description\" content=\"B\u1ea1n l\u00e0 l\u1eadp tr\u00ecnh vi\u00ean v\u00e0 gh\u00e9t bug? \u0110\u1ecdc ngay b\u00e0i vi\u1ebft n\u00e0y \u0111\u1ec3 bi\u1ebft c\u00e1ch bi\u1ebfn fix bug t\u1eeb &quot;n\u1ed7i \u0111au th\u01b0\u01a1ng&quot; th\u00e0nh ni\u1ec1m vui!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/bug-la-gi\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-25T08:07:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-17T08:05:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-featured.png\" \/>\n\t<meta property=\"og:image:width\" content=\"669\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Henrik Warne\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c &quot;chi\u1ebfn \u0111\u1ea5u&quot; v\u1edbi bug l\u00e0 g\u00ec? \u0110\u00f3 l\u00e0 m\u1ed9t c\u00e2u h\u1ecfi kh\u00f4ng m\u1ea5y vui v\u1ebb, b\u1edfi c\u00f3 l\u1ebd h\u1ea7u h\u1ebft l\u1eadp tr\u00ecnh vi\u00ean \u0111\u1ec1u mu\u1ed1n l\u00e0m t\u00ednh\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Henrik Warne\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Bug l\u00e0 g\u00ec? C\u00e1ch fix bug hi\u1ec7u qu\u1ea3 ch\u1ec9 s\u1ed1 \u00edt developer m\u1edbi bi\u1ebft!","description":"Bug l\u00e0 g\u00ec? \u0110\u1eebng \u0111\u1ec3 bug l\u00e0m b\u1ea1n stress nh\u1edd v\u00e0o 3 b\u00e0i h\u1ecdc l\u1edbn \u0111\u1eaft gi\u00e1 v\u1ec1 coding, testing v\u00e0 debugging m\u00e0 ch\u1ec9 Developer kinh nghi\u1ec7m m\u1edbi nh\u1eadn ra!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/bug-la-gi\/","og_locale":"vi_VN","og_type":"article","og_title":"Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c \u201cchi\u1ebfn \u0111\u1ea5u\u201d v\u1edbi bug l\u00e0 g\u00ec?","og_description":"B\u1ea1n l\u00e0 l\u1eadp tr\u00ecnh vi\u00ean v\u00e0 gh\u00e9t bug? \u0110\u1ecdc ngay b\u00e0i vi\u1ebft n\u00e0y \u0111\u1ec3 bi\u1ebft c\u00e1ch bi\u1ebfn fix bug t\u1eeb \"n\u1ed7i \u0111au th\u01b0\u01a1ng\" th\u00e0nh ni\u1ec1m vui!","og_url":"https:\/\/itviec.com\/blog\/bug-la-gi\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2017-09-25T08:07:07+00:00","article_modified_time":"2024-10-17T08:05:47+00:00","og_image":[{"width":669,"height":350,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-featured.png","type":"image\/png"}],"author":"Henrik Warne","twitter_card":"summary_large_image","twitter_description":"Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c \"chi\u1ebfn \u0111\u1ea5u\" v\u1edbi bug l\u00e0 g\u00ec? \u0110\u00f3 l\u00e0 m\u1ed9t c\u00e2u h\u1ecfi kh\u00f4ng m\u1ea5y vui v\u1ebb, b\u1edfi c\u00f3 l\u1ebd h\u1ea7u h\u1ebft l\u1eadp tr\u00ecnh vi\u00ean \u0111\u1ec1u mu\u1ed1n l\u00e0m t\u00ednh","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Henrik Warne","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"21 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/"},"author":{"name":"Henrik Warne","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/71f4c44f0bde36b7bb7ae1cf763ba420"},"headline":"Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c \u201cchi\u1ebfn \u0111\u1ea5u\u201d v\u1edbi bug l\u00e0 g\u00ec?","datePublished":"2017-09-25T08:07:07+00:00","dateModified":"2024-10-17T08:05:47+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/"},"wordCount":6791,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-featured.png","keywords":["developer"],"articleSection":["Developer","S\u1ef1 nghi\u1ec7p IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/","url":"https:\/\/itviec.com\/blog\/bug-la-gi\/","name":"Bug l\u00e0 g\u00ec? C\u00e1ch fix bug hi\u1ec7u qu\u1ea3 ch\u1ec9 s\u1ed1 \u00edt developer m\u1edbi bi\u1ebft!","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-featured.png","datePublished":"2017-09-25T08:07:07+00:00","dateModified":"2024-10-17T08:05:47+00:00","description":"Bug l\u00e0 g\u00ec? \u0110\u1eebng \u0111\u1ec3 bug l\u00e0m b\u1ea1n stress nh\u1edd v\u00e0o 3 b\u00e0i h\u1ecdc l\u1edbn \u0111\u1eaft gi\u00e1 v\u1ec1 coding, testing v\u00e0 debugging m\u00e0 ch\u1ec9 Developer kinh nghi\u1ec7m m\u1edbi nh\u1eadn ra!","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/bug-la-gi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-featured.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2017\/09\/bug-la-gi-featured.png","width":669,"height":350,"caption":"Bug l\u00e0 g\u00ec?"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/bug-la-gi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"S\u1ef1 nghi\u1ec7p IT","item":"https:\/\/itviec.com\/blog\/su-nghiep-it\/"},{"@type":"ListItem","position":2,"name":"Bug l\u00e0 g\u00ec? Nh\u1eefng l\u1ee3i \u00edch \u0111\u1ebfn t\u1eeb vi\u1ec7c \u201cchi\u1ebfn \u0111\u1ea5u\u201d v\u1edbi bug l\u00e0 g\u00ec?"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/71f4c44f0bde36b7bb7ae1cf763ba420","name":"Henrik Warne","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/secure.gravatar.com\/avatar\/c2db5a42ecb31f210fdcc13590652ad51ddb7629cc1cd344d51a7aa269f29a0b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c2db5a42ecb31f210fdcc13590652ad51ddb7629cc1cd344d51a7aa269f29a0b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c2db5a42ecb31f210fdcc13590652ad51ddb7629cc1cd344d51a7aa269f29a0b?s=96&d=mm&r=g","caption":"Henrik Warne"},"description":"Henrik Warne is a software developer in Stockholm, Sweden. He has been programming professionally for more than 20 years, both in corporate and start-up level companies. Henrik loves to work with all parts of software development, from specification and design, to implementation, test and support (and he even enjoys bug-fixing). He also loves reading and writing. You can contact Henrik by emailing him at henrik dot warne at gmail dot com, or by posting a comment on his blog https:\/\/henrikwarne.com.","sameAs":["https:\/\/henrikwarne.com"],"url":"https:\/\/itviec.com\/blog\/author\/henrik-warne\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/12576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=12576"}],"version-history":[{"count":0,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/12576\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/17162"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=12576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=12576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=12576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}