Tìm việc làm nhanh & Tuyển dụng hiệu quả
0Chat
Quay lại

Bug là gì? Giải đáp đầy đủ nhất về vấn đề liên quan đến Bug

Tác giả: Hồ Thùy Trang

Ngày cập nhật: 02/08/2021

Nếu như bạn là dân lập trình viên, thì có lẽ bạn đã quá quen với Bug là gì. Và với những người lập trình viên thì Bug là một điều khá là tất yếu. Nhưng đối với một người bình thường thì Bug là một điều gì đó mà làm họ khá mơ hồ. Hầu hết, đối với tất cả những người đã từng kiếm thử phần mềm sẽ có một câu trong tâm trí của họ rằng: Tại sao sao phần mềm đó lại có quá nhiều bug đến như vậy? Các bug như vậy thì sẽ xảy ra như thế nào đây? Và hơn hết thì bug là gì... Vậy chúng ta hãy cùng nhau tìm hiểu qua bài viết dưới đây nhé!

1. Bug là gì

Hiểu một cách đơn giản thì bug sẽ là một lỗi trong một chương trình nào đó trên máy tính, trên phần mềm. Xuyên suốt trong cả một quá trình viết source code, cho dù bạn là một lập trình viên progmmer hay là nhà phát triển phần mềm developer thì cũng khó tránh khỏi việc mắc sai lầm. Và dường như những sai lầm như thế này thường sẽ được thể hiện ở dưới dạng dưới dạng của bug trong code. Viết code là một phần khá là dễ dàng, nhưng bước khó khăn tiếp theo là debug, tức là tìm error hoặc bug trong chương trình. Tất cả các quá trình được diễn ra như thế này sẽ khiến cho các dev điện đầu vì chúng sẽ phải tạo thêm ra một n bug khác để mà thay thế và sửa cho bug hiện tại. Có đến 5 loại bug và được coi là khá điển hình mà bất cứ 1 dev nào cũng chắc chắn sẽ phải gặp qua nó.

1.1. Bug tí hon

Cũng có thể coi, bug này là một loại bọ, vì sao lại gọi là một loại bọ, vì hầu hết chúng có kích thước vô cùng nhỏ, nhỏ hơn so với đồng loại của chúng. Nhưng mà để có thể đối phó và tiêu diệt được loại bug như thế này không phải là điều dễ dàng gì. Như vậy khi tiêu diệt bug tí hơn này, bạn chắc chắn nhận được các loại compile error, không dừng lại ở đó, tiếp sau đó bạn sẽ phải tốn rất rất nhiều thời gian, thậm chí là nguyên một ngày chỉ để tìm ra cho bằng được đoạn code có vấn đề. Tất cả các lỗi như vậy hầu hết sẽ đến từ việc bạn quên dấu chấm phẩy, hoặc có thể là dấu 2 ngoặc,... Ở trong một vài ngôn ngữ kiểu lập trình như là Python, Java, PHP, Nodejs hay Node red, thì chắc hẳn bạn có thể sẽ gặp các vấn đề mà bạn không ngờ tới như khi bạn thụt lề sai... Có một may mắn đó chính là, hầu hết các lỗi nhỏ mắc phải sẽ được phát hiện ra khi mà có sử dụng đến các IDE phù hợp. Đây được liệt kê vào danh sách là một trong những loại bug gây ra khó chịu nhất trong các loại khác cùng giống loài với chúng. Vì như dân công nghệ thông tin chuyên nghiệp có thể biết được rằng bug tí hơn chúng có thể dễ dàng sửa chữa nhưng có lẽ phải dành ra “cả thanh xuân” chỉ để xác định được vị trí của chúng.

Bug là gì
Bug là gì

1.2. Bug không tồn tại

Theo như đúng cái tên gọi của chúng thì loại bug như thế này thật sự hay thậm chí chúng còn không tồn tại. Nhưng vấn đề mắc phải ở đây đó là compile error chúng cứ nhảy lung tung, nhảy ra liên tục, mặc kệ và cho dù bạn đã review code thế nào đi nữa. Những việc tương tự như vậy hoàn toàn có thể xảy ra khi mà lập trình biên dịch bị lỗi hoặc do bạn dùng sai. Bực mình mình ở chỗ, bạn sẽ bị báo lỗi, trong khi đó bạn hoàn toàn không có bất cứ một lỗi nào xảy ra. Lúc này, các trình biên dịch cũ ở đây sẽ rất có thể không hỗ trợ các tính năng mới mang tính hiện thành. Bạn cũng nên cho mình cập nhật một trình biên biên dich càng thường xuyên thì lại càng tốt. Có một lời khuyên dành cho bạn ở đây đó là: Về phần trình biên dịch, bạn phải chọn nó sao cho thật phù hợp và cẩn thận hơn cả chọn vợ, chọn chồng để cưới. Nhưng thỉnh thoảng, đến một lúc nào đó thì code của bạn sẽ có thể chạy cực kỳ chơn tru nhưng rồi lại bị báo lỗi sau khi đã cập nhật trình biên dịch. Điều như thế này thì nó có nghĩa là trình viên dịch đó chỉ đơn giản là đang hiển thị lên cho bạn thấy các lỗi đang tồn tại mà trước đó không thể nào phát hiện được ra.

1.3. Bug khủng

Về phần bug khủng thì khi mà bạn gặp các bung như thế này khi các dòng chữ code bạn đánh mắc các lỗi về cú pháp hoặc là gõ sai các lỗi chính tả. Và tất nhiên, những bug như vậy thường nó sẽ được bắt nguồn từ các lỗi đến từ thuật toán, logic hoặc sẽ là lỗi tài nguyên... Trong cái lỗi tài nguyên ấy sẽ bao gồm cả việc mà bạn sử dụng sai cách các laoij dữ liệu của nó, cùng với đó là sai luôn cả phạm vi truy cập. Một cú pháp riêng biệt sẽ được dành riêng cho các ngôn ngữ lập trình khác nhau, không ngôn ngữ lập trình nào sẽ được giống cái nào, và hơn hết là phải cần theo dõi nó thật tỉ mỉ. Chỉ cần có dấu hiệu sai lệch nhẹ đi  một chút thôi sẽ chắc chắn làm hỏng đi mọi thứ còn lại. Nhưng có một điều may mắn ở đây đó chính là một trình biên dịch mà tốt thì có thể có khả năng phát hiện được ra lỗi như vậy và cho phép bạn được sửa chữa lại chúng.

1.4. Bug ẩn thân

Ở trong bug ẩn thân này thì đối với việc mắc những lỗi tương tự như vậy sé không bao giờ được hiển thị lên trong quá trình đang biên dịch. Nó chỉ làm được sau khi mà phần mềm đã được cài đặt hoàn tất và đang trong quá trình sử dụng, và tất nhiên khi đang trong quá trình sử dụng bạn sẽ chắc tháy được các biểu hiện của chúng ra sao, như thế nào? Cùng đó chúng sẽ xảy ra các sự cố và một số các hoạt động ngoài mong muốn. Và dường như, trong hầu hết các trường hợp như vậy thì các bug ẩn danh nằm trên dạng là một lỗ hổng khiến cho các phần mềm tương tự như vậy sẽ trở nên không an toàn và dẽ dàng bị hack.

Bug là gì
 Bug ẩn thân

1.5. Bug bất ngờ

Lại một lần nữa đúng với tên gọi của nó, chính là khi bug xuất hiện một cách thật bất ngờ từ hư không. Code của bạn sẽ có thể đang chạy một cách cực kì hoàn hỏa trong ngày hôm nay. Nhưng rồi bằng một cách nào đó, nó sẽ tự dưng trở nên không hoàn hảo nữa chỉ trong ngày hôm sau. Chỉ vì nó mà bạn sẽ phải tự đặt ra cho mình hàng tá câu hỏi như là: liệu đã có ai đó nghịch được dòng code của mình trong khi mình vắng mặt? Số lượng code càng nhiều thì bạn lại càng dễ dàng hơn trong việc debug. Có một số lỗi mà bạn chỉ cần mất khoảng 5 giây, nhưng ngược lại cũng sẽ xuất hiện ra một sỗ lỗi khiến cho bạn mất đến 5 ngày chứ không phải 5 giây sđể điều chỉnh, sửa chữa lại nó. Thậm chí có cả trường hợp, có những bug mà đến cả cuộc đời thanh xuân của bạn cũng không thể điều chỉnh và sửa chữa lại nó. Hãy luôn nhớ một điều như thế này, trong quá trình sửa lỗi của bạn, bạn cũng có thể sẽ lại thêm 5 lỗi nữa khi mà bạn đang cố sửa 2 bug. Và nếu như mà các dòng code bạn gõ đang hoạt động tốt, thì đừng để bị lừa, điều bạn cần làm là đừng nên đụng gì tới nó nữa thì hơn.

2. Có nên chày cối fix bug ngay không

Vậy fix bug là: Các bạn có thể hiểu đơn giản fix bug mình đang nói ở đây là sửa lỗi, giải quyết vấn đề đang vướng mắc trong lĩnh vực chuyên ngành công nghệ thông tin như lỗi trong khi lập trình, lỗi khi sử dụng phần mềm mà không được như ý muốn của các bạn.

Câu trả lời là không. Các bạn không nên nhất thiết phải xử lý vấn đề ngay. Vì bug còn đến nhiều và đến hằng ngày. Mình cũng liên tục phải gặp những vấn đề trong khi lập trình, trong khi sử dụng những phần mềm kiểm thử bảo mật. Qua nhiều lần thức đêm sấp mặt để fix bug mình thấy không có chút hiệu quả nào. Có những lỗi mình mất hàng tuần liền mà không giải quyết được. Một ngày đẹp trời, mình lôi máy tính ra, chạy mấy dòng lệnh, fix nhẹ và làm theo hướng dẫn (tiếng anh nha), như một bất ngờ và không báo trước, chương trình, phần mềm hết bug. (Hehe cũng chỉ là may mắn thôi nha). Ý mình muốn nói tới ở đây là các bạn nên có thói quen giờ giấc kỉ luật, ăn ngủ chơi hợp lý. Nếu chỉ vì fix bug mà phá vỡ kĩ luật đó thì đó là bug lớn nhất mà bạn không bao giờ fix được.

 Bug là gì
 Có nên chày cối fix bug ngay không

- Fix bug như thế nào để hiệu quả: Code nhiều fix bug nhiều sẽ giỏi. Để trở thành lập trình viên giỏi thì việc tất nhiên là các bạn sẽ phải code nhiều, bạn không thể cứ xem mãi mớ lí thuyết suông và không thực hành, nó sẽ mãi là lí thuyết và để thực hành thuần thục còn là quá trình dài hơn rất nhiều.

Phi công không thể giỏi được khi chưa đủ số giờ bay và bạn không thể giỏi được nếu không đạt đủ số giờ code.

Cần gì Google lấy. Kĩ năng google thì quan trọng không phải bàn đối với mỗi lập trình viên rồi. Đây là một số kĩ năng giúp bạn tìm kiếm tốt. 17 cú pháp tìm kiếm trên google

Một số trang hỏi fix bung trong lập trình

StackOverFlow

Daynhauhoc

Bí mật fix bug. Chả có gì bí mật lắm, các bạn chỉ cần giỏi tiếng anh. Tiếng anh rất quan trọng với lập trình viên (nói câu hơi thừa). Khi gặp lỗi, các bạn nên search bằng tiếng anh, kể cả khi tìm kiếm tài liệu học lập trình. Nếu bạn không giỏi tiếng anh, bạn đã bỏ lỡ đi khối lượng kiến thức gấp trăm lần bạn đang có chỉ với tiếng việt.

3. Một số quy tắc dùng để xác định bug

Một trong số những lỗi phần mềm mà xuất hiện khi 1 hoặc sẽ có thể là nhiều hơn trong 4 quy tắc dưới đây là đúng: Nó không được thực hiện giống như mô tả trong bản đặc tả phần mềm Áp dụng quy tắc này, qa tester kiểm thử chỉ cần luôn nắm được yêu cầu phần mềm thì việc xác định bug cũng sẽ đơn giản hơn.

VD 1: Thử áp dụng quy tắc trên để phân tích lỗi trong phần mềm Calculator, với yêu cầu nói rõ rằng: 'nó phải thực thi phép cộng, phép trừ, phép nhân, phép chia đúng'.

Bạn hãy thử tự mình để kiểm tra, nếu như bạn ấn vào nút dấu cộng “+” trên bàn phím mà lúc ấy nó không hề có chuyện gì cảy ra, thì lúc đó là do bug này đã theo đúng quy tắc, và do là nó không thực hiện giống như ở mô tả. Tưng tự như trường hợp vậy, nếu như câu trả lời mà bạn nhận được là sai, thì nên nhớ cũng đừng có vội nghĩ rằng đó là một bug.

VD2: Kiểm tra chức năng của nút Back ở trang kết quả tìm kiếm của một website: VD1_Image1_noback.jpg Ở VD này nút 'Back' không được làm việc theo thiết kế (Not Working as Designed). Vì nó không làm đúng chức năng yêu cầu nên nó rõ ràng là một bug.

- Khi nào thì không phải là một bug: Một bug có thể đúng với 1 hoặc nhiều hơn trong 4 quy tắc trên. Vậy ngược lại khi nó không đúng với bất kỳ nguyên tắc nào trên đó nhưng vẫn chưa xác định được chính xác và rõ ràng là bug hay không? Hãy cùng thử trả lời mỗi câu hỏi dưới đây cho mỗi vấn đề đang gặp, có thể bạn sẽ biết được có nên đưa nó vào danh sách bugs không hay là feedback nó:

Nó có khó hiểu, khó sử dụng hay cản trở khả năng của người dùng sử dụng ứng dụng không? Bạn có thể làm nó xảy ra từ hai lần trở lên không? Nếu chỉ xảy ra 1 lần, nó có tạo ra kết quả tiêu cực đáng kể không? Nó có làm mất hứng thú của người dùng sử dụng không? Nó có gì trái ngược hay mâu thuẫn không? Nó có phải là cách tối ưu nhất không? Bạn có mong đợi nó xảy ra theo một cách khác?

Bug là gì
Một số quy tắc dùng để xác định bug

Hãy thử áp dụng với một số tình huống lỗi sau:

VD1: Trong ứng dụng Calculator có những nút có kích thước quá nhỏ. Hoặc trong một trường hợp khác cũng có thể đây là một sự sắp xếp của các nút đã làm cho nó trở nên khó sử dụng. Hoặc là một sự bố trí về màu sắc để làm cho nó trở nên khó nhìn hơn... Tất cả những điều này sẽ đều được có câu trả lời là có cho câu hỏi số 1. Nên nó được xác định là bug.

VD2: Đối với những lỗi mà nó không thể được tái hiện ở lần thứ hai (và không chỉ ra được kết quả ảnh hưởng) thì nó sẽ bị ưu tiên thấp và có khả năng sẽ bị từ chối. Lỗi này được gọi tên là 'Once Upon a Time Bug'. VD4_Image7_header.jpg VD4_Image8_badcache.jpg Có thể ban đầu chúng ta bắt gặp nó là lỗi nhưng thật ra lại chỉ bị với trình duyệt của bạn, đó có thể là những lỗi như: hình ảnh bị hỏng, các nút không click được, lỗi đồng bộ video, ... Cách thông minh nhất để bug đó không bị từ chối là xóa bộ nhớ cache, khởi động lại trình duyệt và re-test lại để xác nhận lỗi.

VD3: Không nhập gì vào ô tìm kiếm, khi nhấn Search thì load lại một trang trắng. VD3_Image3_Search.jpg Bản đặc tả đã không yêu cầu về tính năng reload lại trang trong trường hợp này, nó có thể không ảnh hưởng đến việc sử dụng phần mềm của người dùng. Tuy nhiên người dùng không mong đợi như thế, nó được coi là một lỗi UX.

Dựa theo các quy tắc, bạn hãy áp dụng linh hoạt với phần mềm mà mình sử dụng hàng ngày. Khi bám chặt theo quy tắc trên, bạn sẽ dễ dàng tìm ra được cho mình câu trả lời cho mỗi vấn đề mình gặp phải. Do đó số bugs được chấp nhận sẽ nhiều hơn, giảm số bugs phải reject. Và hơn hết, khi một vấn đề không rõ ràng hoặc bạn không chắc về nó, bạn cho là không phải bug và cần feedback, thì tốt nhất nên tạo Q&A cho BA, PM hay khách hàng. Trong trường hợp bị từ chối, chỉ cần nhớ rằng khách hàng không phải nói bạn sai! Chỉ là phát hiện của bạn không đáp ứng được yêu cầu trong ứng dụng của họ trong giai đoạn này mà thôi.

Bài viết trên của timviec365.vn hi vọng đã giải đáp phần nào thắc mắc của các bạn về các vấn đề có liên quan đến Bug là gì. Từ đó giúp các bạn trẻ xác định được rõ hơn về những công việc hay gặp trong tương lai khi ứng tuyển it việc tại công ty công nghệ nào đó. Ngoài ra, website timviec365.vn còn là một trang web hàng đầu chuyên về đăng tin tuyển dụng, giúp các bạn dễ dàng hơn trong việc tìm được công việc ưng ý cho mình. Chúc các bạn thành công với timviec365.vn.

Từ khóa liên quan

Chuyên mục

Bí quyết viết CV-Tâm sự Nghề nghiệp-Cẩm Nang Tìm Việc-Kỹ Năng Tuyển Dụng-Cẩm nang khởi nghiệp-Kinh nghiệm ứng tuyển việc làm-Kỹ năng ứng xử văn phòng-Quyền lợi người lao động-Bí quyết đào tạo nhân lực-Bí quyết lãnh đạo-Bí quyết làm việc hiệu quả-Bí quyết viết đơn xin nghỉ phép-Bí quyết viết thư xin thôi việc-Cách viết đơn xin việc-Bí quyết thành công trong công việc-Bí quyết tăng lương-Bí quyết tìm việc dành cho sinh viên-Kỹ năng đàm phán lương-Kỹ năng phỏng vấn-Kỹ năng quản trị doanh nghiệp-Kinh nghiệm tìm việc làm tại Hà Nội-Kinh nghiệm tìm việc làm tại Đà Nẵng-Mẹo viết hồ sơ xin việc-Mẹo viết thư xin việc-Chia sẻ kinh nghiệm ngành Kinh doanh - Bán hàng-Định hướng nghề nghiệp-Top việc làm hấp dẫn-Tư vấn nghề nghiệp lao động phổ thông-Tư vấn việc làm Hành chính văn phòng-Tư vấn việc làm ngành Báo chí-Tư vấn tìm việc làm thêm-Tư vấn việc làm ngành Bất động sản-Tư vấn việc làm ngành Công nghệ thông tin-Tư vấn việc làm ngành Du lịch-Tư vấn việc làm ngành Kế toán-Tư vấn việc làm ngành Kỹ thuật-Tư vấn việc làm ngành Sư phạm-Tư vấn việc làm ngành Luật-Tư vấn việc làm thẩm định-Tư vấn việc làm vị trí Content-Tư vấn việc làm ngành Nhà hàng - Khách sạn-Tư vấn việc làm quản lý-Kỹ năng văn phòng-Nghề truyền thống-Các vấn đề về lương-Tư vấn tìm việc làm thời vụ-Cách viết Sơ yếu lý lịch-Cách gửi hồ sơ xin việc-Biểu mẫu phục vụ công việc-Tin tức tổng hợp-Ý tưởng kinh doanh-Chia sẻ kinh nghiệm ngành Marketing-Kinh nghiệm tìm việc làm tại Bình Dương-Kinh nghiệm tìm việc làm tại Hồ Chí Minh-Mẹo viết Thư cảm ơn-Góc Công Sở-Câu chuyện nghề nghiệp-Hoạt động đoàn thể-Tư vấn việc làm Biên - Phiên dịch-Tư vấn việc làm Ngành Nhân Sự-Tư vấn việc làm Ngành Xuất Nhập Khẩu - Logistics-Tư vấn việc làm Ngành Tài Chính - Ngân Hàng-Tư vấn việc làm Ngành Xây Dựng-Tư vấn việc làm Ngành Thiết kế - Mỹ thuật-Tư vấn việc làm Ngành Vận tải - Lái xe-Quản trị nhân lực -Quản trị sản xuất-Cẩm nang kinh doanh-Tư vấn việc làm Ngành Thiết kế - Nội thất-Mô tả công việc ngành Kinh doanh-Mô tả công việc ngành Bán hàng-Mô tả công việc Tư vấn - Chăm sóc khách hàng-Mô tả công việc ngành Tài chính - Ngân hàng-Mô tả công việc ngành Kế toán - Kiểm toán-Mô tả công việc ngành Marketing - PR-Mô tả công việc ngành Nhân sự-Mô tả công việc ngành IT - Công nghệ thông tin-Mô tả công việc ngành Sản xuất-Mô tả công việc ngành Giao nhận - Vận tải-Mô tả công việc Kho vận - Vật tư-Mô tả công việc ngành Xuất nhập khẩu – Logistics-Mô tả công việc ngành Du lịch - Nhà hàng - Khách sạn-Mô tả công việc ngành Hàng không-Mô tả công việc ngành Xây dựng-Mô tả công việc ngành Y tế - Dược-Mô tả công việc Lao động phổ thông-Mô tả công việc ngành Kỹ thuật-Mô tả công việc Nhà nghiên cứu-Mô tả công việc ngành Cơ khí - Chế tạo-Mô tả công việc bộ phận Quản lý hành chính-Mô tả công việc Biên - Phiên dịch-Mô tả công việc ngành Thiết kế-Mô tả công việc ngành Báo chí - Truyền hình-Mô tả công việc ngành Nghệ thuật - Điện ảnh-Mô tả công việc ngành Spa – Làm đẹp – Thể lực-Mô tả công việc ngành Giáo dục - Đào tạo-Mô tả công việc Thực tập sinh - Intern-Mô tả công việc ngành Freelancer-Mô tả công việc Công chức - Viên chức-Mô tả công việc ngành Luật - Pháp lý-Tư vấn việc làm Chăm Sóc Khách Hàng -Tư vấn việc làm Vật Tư - Kho Vận-Hồ sơ doanh nhân-Việc làm theo phường-Danh sách các hoàng đế nổi tiếng-Tài liệu gia sư-Vĩ Nhân Thời Xưa-Chấm Công-Danh mục văn thư lưu trữ-Tài Sản Doanh Nghiệp-KPI Năng Lực-Nội Bộ Công Ty - Văn Hóa Doanh Nghiệp-Quản Lý Quan Hệ Khách Hàng-Quản Lý Công Việc Nhân Viên-Chuyển văn bản thành giọng nói-Giới Thiệu App Phiên Dịch-Quản Lý Kênh Phân Phối-Đánh giá nhân viên-Quản lý ngành xây dựng-Hóa đơn doanh nghiệp-Quản Lý Vận Tải-Kinh nghiệm Quản lý mua hàng-Danh thiếp cá nhân-Quản Lý Trường Học-Quản Lý Đầu Tư Xây Dựng-Kinh Nghiệm Quản Lý Tài Chính-Kinh nghiệm Quản lý kho hàng-Quản Lý Gara Ô Tô-Xem thêm gợi ý