Kiến thức chung, Thủ thuật

Cách sử dụng DevTools để xác định lỗi front-end hay back-end

🐛 Khi một lỗi xuất hiện trên ứng dụng web, câu hỏi của tester thường là: Đây là lỗi thuộc về front-end hay back-end?

Thực tế, tester không nên vội kết luận một lỗi là thuộc về front-end (FE) hay back-end (BE). Mục tiêu của tester là cung cấp đầy đủ thông tin và bằng chứng để giúp đội phát triển nhanh chóng xác định nguyên nhân lỗi và sửa nó (hay gọi là fix lỗi).

Ngoài ra, cần lưu ý rằng khái niệm front-end và back-end chỉ tồn tại khi hệ thống được thiết kế theo kiến trúc tách biệt giữa client và server. Không phải hệ thống phần mềm hay mọi ứng dụng web nào cũng đều được xây dựng theo mô hình client và server này.

Bài viết này so sánh một số thông tin liên quan giúp bạn có cái nhìn tổng quan hơn về lỗi FE và lỗi BE. Và cách sử dụng DevTools trên trình duyệt Chrome để xác định một lỗi front-end hay back-end.

So sánh lỗi front-end và back-end

Nếu hệ thống được xây dựng theo kiến trúc FE/BE, có thể hiểu đơn giản:

Front-endBack-end
Xử lý giao diện và tương tác với người dùngXử lý nghiệp vụ, dữ liệu và API
HTML, CSS, JavaScript, React, Angular, Vue…Java, .NET, Node.js, Python, PHP…
Hiển thị dữ liệuTính toán và lưu trữ dữ liệu

Ví dụ: Các vấn đề liên quan đến front-end.

  • Button không bấm được
  • Giao diện hiển thị sai
  • Sai màu sắc hoặc layout

Và các vấn đề ở back-end:

  • API trả sai dữ liệu.
  • Tính toán sai.
  • Lưu dữ liệu sai.
  • Xử lý nghiệp vụ không đúng.

Tuy nhiên, biểu hiện bên ngoài không đủ để kết luận nguyên nhân. Ví dụ màn hình hiển thị sai số dư có thể do front-end hiển thị sai, nhưng cũng có thể do back-end trả về dữ liệu sai. Vì thế, tester cần phải điều tra kỹ hơn để giúp xác định lỗi thuộc về FE hay BE.

Sử dụng Chrome DevTools để khoanh vùng nguyên nhân

DevTools trong các trình duyệt (ví dụ Chrome) là công cụ rất hữu ích để kiểm tra luồng giao tiếp giữa front-end và back-end.

Bước 1. Mở DevTools

  • Nhấn F12 hoặc Ctrl + Shift + I (hay Cmd + Option + I trên macbook)
  • Chọn tab Network
  • Bật Preserve log nếu cần theo dõi nhiều request
  • Bật Disable cache khi kiểm thử

Sau đó thực hiện lại các bước để tái hiện bug.

Loi-front-end-hay-back-end-Hinh-1

Bước 2. Kiểm tra request

Trong tab Network, chọn nhóm Fetch/XHR và tìm request tương ứng với thao tác vừa thực hiện.

Nếu không có request nào được gửi, trong khi theo thiết kế hành động này phải gọi API, thì nhiều khả năng vấn đề nằm ở front-end.

Ví dụ:

  • Button không hoạt động
  • JavaScript không được thực thi
  • Validation phía client chặn không đúng
Loi front-end hay back-end - Hinh 2

Bước 3. Kiểm tra dữ liệu request

Mở request và kiểm tra:

  • URL
  • HTTP Method
  • Header
  • Query Parameter
  • Request Payload

Nếu Front-end gửi dữ liệu không đúng định dạng hoặc thiếu thông tin bắt buộc, rất có thể nguyên nhân nằm ở Front-end.

Ví dụ:

Expected

{

    “age”: 20

}

Actual

{

    “age”: null

}

Bước 4. Kiểm tra response

Mở tab Response hoặc Preview để xem dữ liệu Back-end trả về.

Ví dụ:

{

    “name”: “John”,

    “age”: 30

}

Nếu API trả đúng dữ liệu nhưng giao diện lại hiển thị: Age = 0

👉 Khả năng cao Front-end đã xử lý hoặc hiển thị sai.

Loi front-end hay back-end - Hinh 3

Bước 5. Kiểm tra Status Code

Một số status code thường gặp:

  • 200 OK
  • 201 Created
  • 400 Bad Request
  • 401 Unauthorized
  • 404 Not Found
  • 500 Internal Server Error

Thông thường:

  • 200 + dữ liệu đúng → nếu UI sai thì nghi ngờ front-end.
  • 500 → thường là lỗi back-end.
  • 400 → chưa thể kết luận. Cần kiểm tra xem front-end có gửi request đúng hay không.

Nhiều trường hợp lỗi 400 xuất phát từ việc front-end gửi sai dữ liệu.

Bước 6. Kiểm tra Console

Mở tab Console.

Nếu xuất hiện các lỗi như:

  • TypeError
  • ReferenceError
  • Cannot read property…
  • Cannot read properties of undefined

thì gần như chắc chắn front-end đang gặp lỗi JavaScript.

Loi front-end hay back-end - Hinh 4

Bước 7. So sánh API với giao diện

Đây là bước quan trọng nhất.

Ví dụ 1

API trả về:

{

    “balance”: 1000000

}

Nhưng giao diện hiển thị: 100, thì khả năng cao front-end đang xử lý hoặc format dữ liệu sai.

Ví dụ 2

API trả về:

{

    “balance”: 100

}

Trong khi theo nghiệp vụ phải là 1.000.

Khả năng cao vấn đề nằm ở back-end hoặc tầng xử lý nghiệp vụ.

Tóm tắt cách khoanh vùng lỗi

Quan sát trên Chrome DevToolsKhả năng
Không gửi requestfront-end
Request gửi sai dữ liệufront-end
Console có lỗi JavaScriptfront-end
API trả dữ liệu đúng nhưng UI hiển thị saifront-end
API trả dữ liệu saiback-end
API trả lỗi 500Thường là back-end
API trả 400Cần kiểm tra request trước khi kết luận

Đừng vội kết luận “đây là bug FE” hay “đây là bug BE”

Chrome DevTools giúp tester khoanh vùng nguyên nhân, nhưng không thể xác định tuyệt đối bug thuộc về front-end hay back-end.

Trong nhiều trường hợp cần kết hợp thêm:

  • Log của server
  • API Contract hoặc Swagger
  • Database
  • Trao đổi với front-end developer và back-end developer

Một bug report tốt nên tập trung vào bằng chứng thay vì phán đoán.

Ví dụ: “API/customer trả về dữ liệu đúng (response đính kèm), tuy nhiên giao diện hiển thị sai giá trị của trường balance. Nghi ngờ vấn đề nằm ở phía front-end.”

Cách mô tả này khách quan hơn, giúp đội phát triển xác định nguyên nhân nhanh hơn và giảm thời gian trao đổi qua lại.

Kết luận

Việc phân biệt front-end bug và back-end bug không nhằm “đổ lỗi” cho một nhóm phát triển, mà nhằm rút ngắn thời gian điều tra nguyên nhân và tìm đúng người (developer) cần giúp khi cần xử lý gấp.

Đối với tester, kỹ năng sử dụng Chrome DevTools để đọc request, response, status code và console log là một kỹ năng quan trọng. Chỉ với vài phút kiểm tra trên DevTools, bạn có thể cung cấp thêm thông tin và bằng chứng giá trị, giúp lập trình viên nhanh chóng xác định vị trí phát sinh lỗi và rút ngắn đáng kể thời gian xử lý bug.

You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *