Tester vẫn có thể làm việc rất ổn, khi không biết SQL là gì và nó hoạt động thế nào. Tuy nhiên, nếu tester không biết SQL hoặc không quan tâm đến cách chương trình xử lý thông tin bên trong nó, thì có thể bị sót bug (lỗi) trong quá trình kiểm thử phần mềm.
Trên thực tế, không phải dự án nào tester cũng được phép truy cập vào mã nguồn (source code) và database (cơ sở dữ liệu). Khi tham gia các dự án đó, dù có biết hay không biết về SQL cũng không giúp ích gì nhiều cho tester. Và khi ai đó nói “biết SQL” thường là họ đang muốn đề cập đến kiến thức về cơ sở dữ liệu (DB – database) hay các hệ quản trị cơ sở dữ liệu (DBMS) như MS SQL Server, Oracle, hay Postgres. Đây gọi là relational database (cơ sở dữ liệu có quan hệ), ngoài ra còn có NOSQL và nhiều dạng lưu trữ khác mà không cần cơ sở dữ liệu.
Theo nhận định cá nhân, mình chắc chắn một điều rằng, nếu tester “biết về SQL” thì sẽ biết cách dữ liệu được lưu trữ, xử lý như thế nào bên trong một ứng dụng phần mềm. Điều này giúp nhóm mình tìm ra lỗi sớm hơn và hiệu quả hơn. Thậm chí là trong các buổi thảo luận về yêu cầu hay thiết kế của chương trình.
Khi kiểm thử một ứng dụng phần mềm, nếu chỉ thao tác trên UI (User Interface – giao diện người dùng), tester có thể bỏ qua một số trường hợp. Hoặc các bạn sẽ nghĩ rằng một chức năng đã được lập trình đúng, tuy nhiên thực tế thì ngược lại – Xem thêm khái niệm false negative.
Ví dụ, khi bạn xóa một đơn hàng (gọi là Order) trên màn hình một ứng dụng web. Làm thế nào để bạn chắc chắn rằng, “chức năng xoá đơn hàng” đã thực hiện đúng đắn?
Có bạn sẽ trả lời, thì sau khi xóa xong, đơn hàng biến mất khỏi danh sách các đơn hàng, và khi tìm kiếm đơn hàng đó (dựa vào mã đơn hàng – OrderID chẳng hạn), chương trình báo kết quả “Không tìm thấy” thì đồng nghĩa là “chức năng xoá đơn hàng” đã được thực hiện đúng.
Có thể nhóm bạn đã bỏ sót một “con bug” (lỗi) mà khách hàng và người dùng không bao giờ phát hiện ra. Vì “may mắn” là trên UI không có màn hình nào để liệt kê các chi tiết đơn hàng (gọi là OrderDetails) của mọi đơn hàng.
Như vậy, nếu như bạn tìm không thấy đơn hàng sau khi xóa nó, KHÔNG có nghĩa là chức năng xóa đơn hàng đã được lập trình đúng! Tại sao?
Nếu như chức năng xoá đơn hàng, chỉ thực hiện việc “xóa đơn hàng” ra khỏi bảng Orders. Ví dụ OrderID 10248 bị xoá khỏi bảng Orders bên dưới, thì còn OrderDetails là những sản phẩm được chọn trong đơn hàng đó thì sao?
Ví dụ bảng OrderDetails
Điều tương tự có thể xảy ra khi cập nhật dữ liệu. Một test case có thể ghi nhớ ở đây là khi cập nhật hoặc xoá dữ liệu (ví dụ 1 đơn hàng), chúng ta phải đặt câu hỏi “what if” (chuyện gì sẽ xảy ra) cho những thông tin liên quan đến dữ liệu đó.
Nguồn: https://www.testing.vn/sql-for-tester
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE