Bug là gì? Khi nào một bug không phải là bug ?

Nếu muốn trở thành một lập trình viên xuất sắc sau này thì chắc hẳn bạn là một người rất am hiểu về máy tính . Nhưng vẫn còn nhiều bạn vẫn còn loay hoay giữa các rắc rối liên quan đến lĩnh vực phần mềm. Đặc biệt một số lỗi máy tình chúng ta thường hay gặp phải đó chính là lỗi bug. Vậy Bug là gì? Khi nào một bug không phải là bug ?

Bug là gì? Khi nào một bug không phải là bug ?

Bug là gì? Khi nào một bug không phải là bug ? Làm thế nào để tránh được những rủi ro không đáng tiếc này thì hãy cùng nhau thảo luận vấn đề này dưới bài sau đây:

Bug nghĩa là gì ?

Trước hết, chúng ta cần hiểu được “ Bug là gì ? ”. Bug là một thuật ngữ không quá xa lạ với các bạn dân Công Nghệ nhưng để biết được sức phá hoại và tầm ảnh hưởng của nó thì đa số mọi người vẫn coi nhẹ vấn đề này. Bug được định nghĩa đơn giản là những lỗi hay sai sót trong chương trình máy tính ngăn không cho nó chạy đúng như dự định hoặc gây ra kết quả không chính xác dẫn đến phát sinh ra Bugs.

Bug nghĩa là gì ?

Một số quy tắc để xác định có phải là Bug hay không ?

  • Nó không được thực hiện giống như mô tả trong bản đặc tả phần mềm.
  • Bản đặc tả yêu cầu nó không được thực hiện nhưng nó vẫn xảy ra.
  • Nó là chức năng mà bản đặc tả không đề cập tới.
  • Nó là chức năng không được thực hiện mà bản đặc tả cũng không được đề cập tới nhưng là những việc nên làm.

Vậy khi nào một bug không phải là bug thì hãy cùng nhau trả lời một số vấn đề dưới đây bạn sẽ có cái nhìn chính xác và đầy đủ để có nên đưa nó vào danh sách bugs hay không ?

  • Nó có khó hiểu, khó sử dụng hay cản trở 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 kết quả tiêu cực đáng kể không?
  • Nó có làm mất hứng thú của người 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 không?
  • Bạn có mong đợi nó xảy ra theo một cách khác không?

Trên đây là những ly do mà deverloper hay tester hay mắc phải và cũng có thể bạn cũng có thể mắc phải những sai lầm không đáng có này.

Fix Bug là gì ?

Nếu đã sinh ra bug thì chắc hẳn sẽ có phương pháp để loại trừ được nó. Vì vậy khi nhận được bug từ team lead, developer sẽ là người có trách nhiệm để thực hiện fix bug cho đúng với yêu cầu và chuyển lại cho tester một lần nữa kiểm tra lại lỗi đó.

Fix Bug là gì ?

Bed Bug là gì ?

Bed bug hay còn được biết đến với cái tên “ rệp ” . Nó cũng là một trong những mối nguy hại nghiêm trọng đến từ Bug. Loại rệp này có mức độ nguy hiểm, phức tạp và thậm chí gây rối loạn khi chạy chương trình. Một khi nó đã tiếp cận được máy chủ thì sẽ tấn công hết sức nhanh chóng mà ta khó thể kiểm soát được.

Log Bug là gì ?

Log bug là công việc cơ bản và thường xuyên của một Tester/ QA engineer, cơ bản và thường xuyên đến nỗi mà nó lại là việc ít được giành sự quan tâm nhất. Các khoá học về Testing/ Quality Assurance hầu như chỉ đề cập tới hành động và tần suất của việc log bug chứ không nêu ra những yêu cầu khắt khe về quy trình và chất lượng của bug được log.

Bug phần mềm là gì ?

Bug phần mềm được gọi dễ hiểu hơn lỗi phần mềm là do một lỗi, lỗ hổng, thất bại hoặc có lỗi trong chương trình máy tính hay hệ thống nào đó đẫn đến nguyên nhân nó tạo ra kết quả không chính xác và vận hành không được theo như mong muốn. 

Bug phần mềm là gì ?

Lỗi Bug là gì ?

Từ định nghĩa về Bug, chúng ta cũng đã biết được một phần của lỗi bug. Lỗi bug được hiểu đơn giản là một thứ gì đó không hoạt động đúng như thiết kế.
Vì vậy, sau đây có thể đưa ra một vài kết luận :

  • Lỗi là kết quả khác nhau của kết quả thực tế và kết quả mong đợi.
  • Lỗi bug là một loại của lỗi phần mềm.
  • Lỗi bug được coi là kết quả của việc không hoàn thành, hoặc sai yêu cầu hoặc do vấn đề nhập dữ liệu của con người.

Qua đây, điểm mấu chốt của đảm báo chất lượng phần mềm là thiết lập và giám sát các quy trình kiểm tra ở từng giai đoạn của chu trình phát triển vòng đời phần mềm. Múc đích là để phát hiện lỗi càng sớm càng tốt. Điều này góp công sức đáng kể để tiết kiệm được các chi phí, thời gian, công sức hay trên hết là để đánh giá đúng tiến độ cũng như chất lượng của sản phẩm. Do đó việc xác định lỗi sớm là điều cần thiết của một QA/tester.

Làm việc hay học tập trong lĩnh vực liên quan đến công nghệ thông tin, máy tính, phần mềm hay lập trình chắc hẳn bạn đã nắm rõ bug là gì. Tuy nhiên từ ngữ này vẫn còn xa lạ với những người còn chưa nắm rõ các thuật ngữ chuyên ngành của công nghệ, máy tính, phần mềm. Vậy với bài viết này, bạn sẽ có thêm cho mình những kiến thức và thông tin bổ ích để hiểu hơn “bug là gì?”.

Bug là gì?

Bug là những error, flaw, failure, hay fault tạo ra một kết quả sai, hoặc không lường đến được. Ở lĩnh vực công nghệ thông tin, bug gây ra các lỗi phần mềm trong chương trình hoặc hệ thống máy tính làm cho kết quả không chính xác hoặc không mong muốn.

Bug là gì?

Nguyên nhân gây ra bug.

Nói về nguyên nhân gây ra bug thì rất vô kể vì hệ thống máy tính, chương trình, phần mềm rất phức tạp. Tuy nhiên xét cho cùng thì có một số nguyên nhân cơ bản sau:

  • Bạn có các lệnh if lồng nhau và vô tình lại đặt lệnh else ở sai nhánh.
  • Giả định không chính xác chẳng hạn như truy xuất một thuộc tính không tồn tại, thế là dính Null Pointer Exception.
  • Không bao quát hết các trường hợp, ví dụ bạn phải trả về một giá trị khác đi nếu hàm được gọi với tham số X
  • Khách hàng sử dụng phần mềm sai cách và dẫn đến bug

Nguyên nhân gây ra bug.

Vòng đời của bug.

Vòng đời của bug là từ khi từ khi tìm thấy bug cho đến khi close bug:

- NEW: khi tester tìm ra bug. Sau khi tìm ra bug,tester cần báo cho Teamlead hoặc devoloper bằng cách log bug.
- OPEN: trạng thái bug được log lên bởi tester. Sau khi Teamlead nhận bug thì sẽ xác định xem đó có phải là bug hay không.
- REJECTED: Khi teamlead xác nhận rằng bug đó không hợp lệ thì sẽ được đánh dấu là Rejected. Còn nếu bug đó là hợp lệ thì sẽ xác định xem bug đó đã tồn tại hay chưa.
- DUPLICATE: Nếu bug đã tồn tại thì sẽ đánh dấu nó là DUPLICATE.Nếu bug chưa tồn tại thì sẽ xác định xem bug đó có trong phạm vi xử lý hay không (scope).
- DEFERRED: Nếu bug không trong phạm vi xử lý thì sẽ được chuyển sang trạng thái Deferred
- ASSIGNED: Nếu bug trong phạm vi xử lý thì sẽ được chuyển cho developer để tiến hành fix bug.
- FIX: Khi nhận được bug từ team lead, developer sẽ thực hiện fix bug cho đúng với yêu cầu, và đẩy lại cho tester kiểm tra lại lỗi đó.
- RE-TESTING: Sau khi fix xong bug, bug sẽ được assign lại cho tester, tester sẽ test lại xem nó đã chạy đúng hay chưa.
- CLOSED: Khi bug được xác minh lại là đã chạy đúng như yêu cầu thì tester sẽ đánh dấu nó là CLOSED.
- RE-OPENED: Nếu như tester test lại mà bug đó vẫn xảy ra thì bug đó sẽ được gán là Re-Open và assign lại cho developer để fix lại.

Vòng đời của bug.

Một số dạng thường gặp của bug

- Không thực hiện chức năng được yêu cầu.
- Những yêu cầu đầu vào không được hiểu rõ.
- Một phần hay toàn bộ đặc tính không được hoàn thành.
- Không theo luồng công việc.
- Lỗi giao diện.
- Tốc độ xử lý, lỗi cấu hình, bộ nhớ.
- Lỗi về document.
- Vấn đề với xử lý dữ liệu hoặc luồng dữ liệu vào ra.
- Vấn đề với đặc quyền người dùng hoặc bảo mật.