Bug là gì? Tất tần tật về bug

Bug là gì? Tất tần tật về bug ( fix bug, các bug điển hình thường gặp, nguyên nhân xảy ra bug,…) sẽ được PLC Schneider tổng hợp qua bài viết sau đây

1. Bug là gì?

Bug là một lỗi xảy ra trong các chương trình, phần mềm bất kỳ được vận hành trên hệ thống máy tính. Làm cho kết quả không chính xác hoặc không hoạt động được như mong muốn. Trong quá trình viết code cho các phần mềm nhất định, những nhân viên DEV cũng khó có thể tránh khỏi việc mắc sai lầm. Những sai lầm này thường sẽ được thể hiện dưới các đoạn lỗi bug của code. Mặc dù công đoạn viết code khá đơn giản, tuy hiên việc tìm được lỗi trong chương trình thường rất khó.

Qúa trình tìm kiếm và phát hiện lỗi trong phần mềm trước khi launching, đưa sản phẩm đến tay người dùng được gọi là Debug. Chúng diễn ra ngay sau khi những dòng code đầu tiên được viết và tiếp tục được thực hiện cho đến khi kết hợp với những unit khác của lập trình tạo thành một sản phầm phần mềm hoàn chỉnh.

Bug là gì?
Bug là gì?

2. Fix bug là gì? Lợi ích của fix bug là gì?

Fix bug được hiểu đơn giản là sửa lỗi và giải quyết các vấn đề đang gặp phải trong lĩnh vực công nghệ thông tin. Công việc này là bước tiếp theo của debug. Kỹ năng debug và kỹ năng fix bug có tầm quan trọng như nhau. Một người lập trình viên giỏi và tài năng là người có thể debug và fix bug tốt, từ đó tạo ra những sản phẩm chất lượng, có giá trị sử dụng.

Tuy nhiên, công đoạn này cũng rất khó nhằn. Theo như thống kê thì thời gian mà các lập trình viên dùng để fix bug nhiều hơn thời gian viết code cho chương trình mới. Đây là công việc quan trọng và cần sự tỉ mỉ.

Fix bug là gì?
Fix bug là gì?

3. Các loại bug điển hình thường gặp

Các loại bug điển hình thường gặp

Bug chức năng (Functional Bug)

Nói một cách dễ hiểu thì bất kỳ thành phần nào trong ứng dụng, trang web không hoạt động được giống như dự kiến ban đầu đưa ra đều được gọi là bug chức năng. Các lỗi chức năng này được liên kết với chức năng của một phần mềm, ứng dụng cụ thể.

Ví dụ: Tính năng đăng nhập trên một trang web, ứng dụng lại không cho phép người dùng có thể đăng nhập. Hay khi mua sắp online bạn lại không thể thêm sản phẩm vào giỏ hàng của mình,…

Bug logic (Logical Bug)

Thường các lỗi logic sẽ làm gián đoạn quy trình làm việc dự kiến của phần mềm và khiến các ứng dụng không hoạt động được chính xác. Dẫn đến hành vi phần mềm không mong muốn và thậm chí là xảy ra sự cố đột ngột.

Ví dụ: các lỗi logic thường xảy ra do các developer diễn giải sai logic của ứng dụng bao gồm gán giá trị cho biến sai, chia hai số thay vì cộng chúng với nhau dẫn đến kết quả không mong muốn.

Bug quy trình làm việc (Workflow Bug)

Lỗi quy trình là những lỗi mà chúng ảnh hưởng trực tiếp đến hành trình của người dùng (điều hướng) của một phần mềm hay một ứng dụng.

Một ví dụ đơn giản hơn giúp bạn có thể dễ hiểu: Một trang biểu mẫu về lịch sử y tế, sau khi điền đầy đủ thông tin người dùng cho 3 tùy chọn để chọn lựa:

  • Lưu
  • Lưu và thoát
  • Trang trước

Tuy nhiên khi bạn chọn “ Lưu và thoát” có nghĩa là bạn muốn lưu lại thông tin đã nhập và thoát ra khỏi biểu mẫu đó. Nhưng hệ thống vẫn đáp ứng nhu cầu “ thoát” nhưng không lưu thông tin cho bạn, thì đó chính là bug liên quan đến quy trình làm việc.

Bug cấp đơn vị (Unit Level Bug)

Bug cấp đơn vị là một loại bug phổ thông nhất vì thường được cũng sẽ dàng sửa lỗi. Khi các module ban đầu của các thành phần được phát triển, developer sẽ thực hiện unit testing để đảm bảo các đoạn code nhỏ có thể hoạt động như dự kiến. Đây là giai đoạn mà các developer gặp phải nhiều bug khác nhau không được phát hiện trong các giai đoạn viết mã.

Ví dụ: Nếu bạn cần tạo biểu mẫu một trang, unit test sẽ xác minh xem tất cả các trường đầu vào có chấp nhận đầu vào thích hợp hay không và các nút hoạt động đúng chức năng hay không. Trong trường hợp một trường không chấp nhận các ký tự hoặc số thích hợp, các nhà phát triển sẽ gặp phải bug cấp đơn vị.

Bug tích hợp cấp hệ thống (System-Level Integration Bug)

Loại bug này chủ yếu xuất hiện khi hai hoặc nhiều đơn vị code do các developer khác nhau viết không tương tác với nhau. Xảy ra do sự mâu thuẫn hoặc không tương thích giữa hai hoặc nhiều thành phần.

Thông thường, những lỗi như vậy rất khó theo dõi và fix vì các nhà phát triển cần kiểm tra một đoạn code lớn hơn. Chúng cũng tốn nhiều thời gian để tái tạo.

Bug ngoài giới hạn (Out of Bound Bug)

Lỗi này thường xuất hiện hiện khi người dùng hệ thống tương tác với giao diện người dùng theo cách không chủ ý. Xảy ra khi người dùng cuối nhập một giá trị hoặc một tham số nằm ngoài giới hạn sử dụng ngoài ý muốn.

Ví dụ: Những bug này thường xuất hiện dưới dạng xác thực trong quá trình kiểm tra chức năng của ứng dụng web hoặc mobile app.

4. Nguyên nhân xảy ra bug là gì?

Tại sao lại xảy ra bug?

Các sản phẩm có yêu cầu càng phức tạp lại có khả năng tồn tại nhiều bug càng cao, có rất nhiều lý do gây ra các bug ấy. Mà lý do phổ biến nhất chính là do con người tạo ra trong quá trình design và coding.

Yếu tố con người: con người là yếu tố tạo thành nên sản phẩm cho nên sự thiếu xót cũng là phần không tránh khỏi.

Thất bại trong việc trao đổi thông tin: hiểu sai, thiếu giao tiếp,… sẽ ảnh hưởng đến nhiều phases trong quá trình phát triển phần mềm. Các yêu cầu không rõ ràng, developer không hiểu rõ hết yêu cầu. Hoặc là 1 developer cố gắng sửa một đoạn code của người khác nên thiếu đi sự trao đổi.

Khung thời gian phát triển không thực tế: thời gian hoàn thành quá ngắn đối với tình hình thực tế, khiến lịch trình gấp gáp, dồn dập, với nguồn lực hạn chế.

Logic design kém: đòi hỏi rất nhiều sự nghiên cứu, phát triển và động não để đạt được một giải pháp đáng tin cậy, sự thiếu kiên nhẫn có thể dẫn đến sai sót. Áp dụng sai công nghệ (linh kiện, sản phẩm, kỹ thuật), mong muốn/khao khát sử dụng cách dễ nhất để thực hiện giải pháp, thiếu hiểu biết đúng đắn về tính khả thi của kỹ thuật trước khi thiết kế kiến trúc đều có thể gây ra lỗi.

Thực hiện code kém hiệu quả: code yếu kém thể hiện qua việc quên xử lý lỗi/ exception hoặc xử lý không hiệu quả, thiếu validate dữ liệu ( kiểu dữ liệu, phạm vi, điều kiện biên,…).

Thiếu xót về kĩ năng kiểm thử: quy trình kiểm thử thường bị xem nhẹ hoặc không xảy ra sẽ dẫn đến việc bỏ sót bug trong sản phẩm. Nếu tester không cẩn thận sản phẩm sẽ mang chất lượng yếu kém và tồn tại nhiều bug nghiêm trọng.

Sử dụng tool của bên thứ ba: các tool này có thể là công cụ hố trợ lập trình (class libraries, shared DLLs, compilers, HTML editors, debuggers etc.) Nhưng lỗi trong tool này sẽ dẫn đến lỗi trong phần mềm đang được phát triển.

>>> Tham khảo: Lập trình PLC cơ bản 

Trả lời

Email của bạn sẽ không được hiển thị công khai.

plc schneider sử dụng cookie để cung cấp cho bạn trải nghiệm duyệt web tốt hơn. Bằng cách duyệt trang web này, bạn đồng ý với việc sử dụng cookie của chúng tôi.