Với các nhà lập trình những khái niệm liên quan đến về Front-end và Back-end không còn quá xa lạ. Nhắc đến Front-end Testing và Back-end Testing họ có thể hình dung ra ngay công việc mà họ phải làm. Tuy nhiên để có thể tách biệt được Front-end Testing và Back-end Testing thì không hẳn là một điều dễ dàng. Hãy cùng theo dõi bài viết dưới đây để có cái nhìn tổng quan và chi tiết hơn về hai khái niệm này.
I. Front-end Testing và Back-end Testing là gì?
1. Front-end Testing là gì?
Về cơ bản Front-end Testing là một loại kiểm tra tầng UI, tầng giao diện người dùng trong mô hình 3 lớp (3-tier).
Mọi thứ hiển thị trên màn hình như video, hình ảnh, nội dung mà người dùng nhìn thấy đều được kiểm thử bởi Front-end Testing. Đối với một ứng dụng web, kiểm tra phần Front-end sẽ bao gồm kiểm tra các chức năng như sau: biểu mẫu, menu, báo cáo,… cũng như JavaScript có liên quan. Front-end Testing là một thuật ngữ kiểm thử mà ở đó có nhiều cấp độ kiểm thử khác nhau. Một nhà kiểm thử cần phải có những kiến thức về các nghiệp vụ có trong web. Có như vậy công việc kiểm thử mới trở nên có ý nghĩa.
2. Back-end Testing là gì?
Back-end Testing tương tự phần Front-end Testing. Tuy nhiên phần này là kiểm thử tầng ứng dụng của một web (application) và cơ sở dữ liệu của mô hình 3 lớp (3-tier).
Trong ứng dụng phần mềm ERP, Back-end Testing đòi hỏi phải kiểm tra tính logic nghiệp vụ trong tầng ứng dụng. Với các ứng dụng đơn giản việc kiểm thử phía server hoặc phía cơ sở dữ liệu có nghĩa là dữ liệu được kiểm thử sẽ nằm ở đằng sau dữ liệu hiển thị đến người dùng. Về định dạng cơ sở dữ liệu có thể đó là SQL Server, Oracle, DB2, MySQL. Tất cả các dữ liệu sẽ được sắp xếp trong các bảng dưới hình thức bảng ghi.
Cơ sở dữ liệu được kiểm tra những thuộc tính liên quan đến ACID, hoạt động CRUD. Lược đồ của chúng tuân theo quy tắc nghiệp vụ nói chung. Cơ sở dữ liệu được kiểm tra về Bảo mật cũng như là Hiệu suất.
Đối với kiểm thử Back-end các bạn không cần sử dụng đến GUI. Các bạn có thể làm trực tiếp bằng cách truyền dữ liệu bằng trình duyệt với những tham số cần thiết cho chức năng để nhận phản hồi ở một số định dạng được mặc định. Giả sử như: XML hoặc JSON. Hay bạn có thể kết nối trực tiếp với cơ sở dữ liệu và xác minh dữ liệu bằng cách truy vấn SQL.
II. So sánh sự khác nhau giữa Front-end Testing và Back-end Testing
Back-end Testing bao gồm hai nhiệm vụ đó là kiểm thử nghiệp vụ và phần database. Trong khi đó Front – end Testing luôn hiện diện một cách cụ thể rõ ràng trên chính giao diện của người dùng (GUI).
Đối với Back-end Testing người kiểm thử phải có kiến thức về cơ sở dữ liệu, SQL sâu sắc. Có như vậy mới hoàn thành tốt được nhiệm vụ kiểm thử ứng dụng. Đối với phần Front-end Testing người kiểm thử lại cần hiểu rõ ràng về yêu cầu của nghiệp vụ, cũng như là việc sử dụng thành thạo các tool tự động.
Đối với phần Front-end giao diện người dùng là nơi để thực hiện kiểm thử. Tuy nhiên đối với phần Back-end nhiệm vụ kiểm thử có thể được thực hiện ngay trên giao diện người dùng hoặc có thể không cần thực hiện ở đó đều được.
Về phần lưu trữ thông tin. Với Front-end thông tin không nhất thiết phải được lưu trữ trong database. Ngược lại với Back-end các bạn nhất định phải lưu trữ thông tin trong database.
Đối với Front-end Testing nhà kiểm thử phải kiểm tra chức năng tổng thể của ứng dụng. Còn đối với Back-end Testing nhà kiểm thử phải đề cao sự quan trọng để kiểm tra sự bế tắc, hỏng cũng như là mất dữ liệu.
Các loại kiểm thử được dùng với phần Front-end có thể là Unit Tests, Regression Testing, Acceptance Testing,v.v. Back-end các bạn có thể sử dụng kiểm thử SQL testing hoặc API testing.
III. Một số công cụ kiểm thử Front-end Testing và Back-end Testing
1. Kiểm thử cho phần Back-end
Các bạn có thể sử dụng Data factory, hay Data generator hoặc Turbo data để kiểm thử cho phần Back-end.
2. Kiểm thử cho phần Front-end
Đối với phần Front-end các bạn có thể sử dụng một số công cụ như Grunt, Live reload, hoặc công cụ Karma.
Grunt là một công cụ kiểm thử được các nhà kiểm thử phần Front-end tin dùng. Đặc biệt khi nói đến automation test frontend Grunt là một công cụ hữu hiệu. Grunt là một trình chạy tác vụ JavaScript, công cụ cung cấp nhiều plugin được đóng gói cho các tác vụ thông thường.
LiveReload là giao thức web đơn giản. Công cụ này kích hoạt các sự kiện cho khách hàng trong bất cứ khi nào tập tin được sửa đổi. Đồng thời khách hàng có thể xử lý sự kiện này theo cách của họ ngay cả trong trường hợp file không còn nguyên gốc.
Karma là công cụ hữu ích đối với phần Front-end. Karma chạy JavaScript giúp thực hiện test từ work station đến Cl.
IV. Kết luận
Trên đây là những điểm khác nhau giữa Front-end Testing và Back-end Testing. Hy vọng với những chia sẻ của bài viết các bạn sẽ có thêm thông tin, kiến thức để dễ dàng hơn trong quá trình làm việc.