Backend Testing

Backend Testing

BE testing là gì?

Backend Testing là kiểm thử tầng ứng dụng của một web/ứng dụng và cơ sở dữ liệu của chúng. Để thực hiện kiểm thử Backend tốt yêu cầu Tester phải kiểm tra tính logic nghiệp vụ trong tầng ứng dụng, tập trung vào việc kiểm tra các hành vi của hệ thống ở cấp cơ sở dữ liệu để đảm bảo rằng ứng dụng hoặc phần mềm web không có lỗi cơ sở dữ liệu như xung đột giữa các câu lệnh (Deadlock), sai dữ liệu hoặc mất dữ liệu.

Kiểm thử Backend không cần sử dụng đến giao diện như Frontend mà sẽ kiểm tra trực tiếp bằng cách truyền dữ liệu bằng trình duyệt để nhận được những phản hồi ở một số định dạng được mặc định. Ngoài ra, nhân viên kiểm thử có thể kết nối trực tiếp với cơ sở dữ liệu và các minh bằng cách truy vấn SQL.

FE testting và BE testing

FE testing

BE testing

Luôn được thực hiện trên GUI

Liên quan đến cơ sở dữ liệu và kiểm tra logic nghiệp vụ

Tester phải có kiến thức về các yêu cầu nghiệp vụ cũng như việc sử dụng các công cụ frameworks tự động hóa

Tester phải có một nền tảng vững chắc về cơ sở dữ liệu và các khái niệm Ngôn ngữ truy vấn có cấu trúc (SQL)

Không cần bất kỳ thông tin nào được lưu trữ trong cơ sở dữ liệu

Cần thông tin được lưu trữ trong cơ sở dữ liệu

kiểm tra chức năng tổng thể của ứng dụng

kiểm tra sự xung đột giữa các câu lệnh, hỏng dữ liệu, mất dữ liệu, v.v.

Những kiểu test được thực hiện là test đơn vị, test chấp nhận, test khả năng truy cập, test hồi quy, v.v

Hai kiểu test cơ sở dữ liệu được sử dụng rộng rãi là test SQL, test API

Vì sao nên kiểm thử Backend?

  • Cơ sở dữ liệu là một thành phần thiết yếu và cốt lõi của ứng dụng phần mềm.
  • Có thể kiểm tra chi tiết về hệ thống và phát hiện lỗi khi chi phí sửa chữa ở mức thấp nhất.
  • Giúp hệ thống luôn hoạt động đúng như yêu cầu, ổn định, lâu dài, mạnh mẽ.

Phạm vi kiểm thử Backend

  • Cơ sở dữ liệu (Database)
  • API (API)
  • Máy chủ (Servers)
  • Tùy thuộc vào tính chất của ứng dụng, back-end có thể bao gồm các cấu hình mạng khác nhau, các giao thức truyền thông, v.v

Kiểm thử Backend được thực hiện như thế nào?

1.       Kiểm tra CSDL (Database testing)

Tính chất ACID (atomicity, consistency, isolation, và durability)

  • Tính nhất quán (Consistency). Một giao dịch hoặc là sẽ tạo ra một trạng thái mới và hợp lệ cho dữ liệu, hoặc trong trường hợp có lỗi sẽ chuyển toàn bộ dữ liệu về trạng thái trước khi thực thi giao dịch.'
  • Tính độc lập (Isolation). Một giao dịch đang thực thi và chưa được xác nhận phải bảo đảm tách biệt khỏi các giao dịch khác.
  • Tính bền vững (Durability). Dữ liệu được xác nhận sẽ được hệ thống lưu lại sao cho ngay cả trong trường hợp hỏng hóc hoặc có lỗi hệ thống, dữ liệu vẫn đảm bảo trong trạng thái chuẩn xác.

Hoạt động CRUD (Create, Read, Update, Delete)

  • Hoạt động Tạo mới (Create): Có thể thêm mới
  • Hoạt động Đọc (Read): Đọc được dễ dàng
  • Hoạt động Sửa đổi (Update): Có thể sửa đổi cấu trúc, nội dung
  • Hoạt động Xoá (Delete): Có thể xoá

Giản đồ (Schema): Việc này dễ dàng cho việc quản lý các Cơ sở dữ liệu

Tính Di chú (Migration): DB có có thể chạy trên các máy khác nhau hay các hệ điều hành khác nhau.

Tính Phù hợp với quy tắc nghiệp vụ

Tính Bảo mật

Hiệu suất sử dụng. Việc nâng cao việc trích xuất, chuyển tiếp, tải ETL ( Extract, Transform, Load) và bảo trì hệ thống kho dữ liệu sẽ cần kiểm tra song song. Có nhiều công cụ thường được sử dụng trong các thử nghiệm để tương tác và xác nhận hành vi DB thông qua các truy vấn.

2.       Kiểm tra API (API testing)

Một số phương pháp kiểm thử API phổ biến:

  • Functionality testing - Xác nhận API hoạt động chính xác theo đúng chức năng mà nó được tạo ra.
  • Usability testing - Xác nhận API có thể sử dụng một cách dễ dàng
  • Reliability testing - Xác nhận việc gọi API và trả kết quả hoạt động ổn định và nhất quán

3.       Kiểm tra máy chủ server

Máy chủ (Server) được kết nối với một mạng máy tính hoặc internet, có IP tĩnh, có năng lực xử lý cao và trên đó lưu trữ cơ sở dữ liệu, phầm mềm của dự án.... để phục vụ cho các máy tính khác truy cập để yêu cầu cung cấp các dịch vụ và tài nguyên. Do đó vấn đề hiệu suất và bảo mật của Server là vấn đề rất quan trọng. Cũng giống như bất kỳ phần nào khác của phần mềm:

  • Máy chủ phải luôn được an toàn
  • Luôn có tính tương thích với nhiều hệ điều hành Có rất nhiều công cụ có sẵn để kiểm tra điều này. Tôi sẽ giới thiệu trong các bài viết sau.

Tạm kết

Trên đây là tin về backend testing mà tôi muốn chia sẻ cho những bạn muốn theo đuổi con đường kiểm thử. Hãy trau dồi cho mình thêm những kiến thức và kỹ năng quan trọng khi làm việc.