Hướng dẫn mysql online test - kiểm tra trực tuyến mysql
Không quan trọng ứng dụng của bạn là một trang web, desktop hay là một phần mềm điện thoại... Database (Cơ sở dữ liệu) là phần không thể thiếu và luôn luôn có ở Back-end. Show
Khi độ phức tạp của ứng dụng tăng lên, nhu cầu về một Database an toàn và mạnh mẽ hơn xuất hiện. Đối với các ứng dụng có tần suất hoặc tỉ lệ giao dịch cao (Ví dụ: ứng dụng Ngân hàng hoặc Tài chính), sự cần thiết của Database testing cần được đưa lên hàng đầu. Ngày nay, dữ liệu của người dùng ngày càng phức lớn và phức tạp, những bộ quản lý Database truyền thống như trước không còn có thể xử lý nổi nữa. Thay vào đó, trên internet ngày càng có nhiều công cụ hỗ trợ quản lý cực kỳ hữu ích như : MS SQL Server, SQL Server, Oracle, Oracle Financial, MySQL, PostgreSQL, DB2, Toad, Admirer... Những công cụ này có chi phí, tính năng, độ bảo mật khác nhau nên tùy vào dự án mà Leader có thể chọn ra một công cụ phù hợp nhất. I. Tại sao chúng ta cần phải thực hiện Database testing?Dựa vào những Test viewpoint bên dưới, chúng ta sẽ nhận thấy được tầm quan trọng của Database testing. 1. Sự kết nối dữ liệuTrong hệ thống phần mềm, dữ liệu thường truyền từ UI (User Interface) tới Back-end và chiều ngược lại. Vì vậy, có một số vấn đề chúng ta cần phải xem xét về việc kết nối dữ liệu như:
2. Kiểm tra các thuộc tính ACID
3. Tính toàn vẹn của dữ liệuĐối với bất kỳ hành động CRUD nào, dữ liệu thay đổi phải được thực thi và hiển thị ở tất cả các màn hình hoặc biểu mẫu dữ liệu. Không thể để xảy ra trường hợp màn hình này thì là dữ liệu mới, màn hình khác thì lại dữ liệu cũ hoặc bất cứ giá trị gì đó khác. Khi ứng dụng đang trong giai đoạn phát triển, những sự kiện từ người dùng cuối sẽ được giả định và kiểm thử trong công cụ Database (query).
Bất kỳ một hành động nào được thực hiện bởi người dùng cuối luôn là một trong bốn câu lệnh trên. Vì vậy, hãy nghĩ ra các trường hợp kiểm tra Database của bạn - bao gồm kiểm tra dữ liệu ở tất cả các vị trí xuất hiện để xem liệu nó có giống nhau không - giữa câu lệnh database và hành động của người dùng cuối trên UI. 4. Sự phù hợp với quy tắc kinh doanhSự phức tạp hơn trong Database có nghĩa là sẽ có các thành phần phức tạp hơn như các ràng buộc quan hệ, điều kiện kích hoạt, thủ tục được lưu trữ, v.v. Vì vậy, người kiểm tra sẽ phải đưa ra các truy vấn SQL thích hợp để xác thực các đối tượng phức tạp này. II. Kiểm tra gì trong Database1. TransactionsKhi kiểm tra các Transactions, điều quan trọng là chúng phải đảm bảo được các thuộc tính ACID ở phần trên. Đây là 2 câu lệnh thường được sử dụng nhiều:
Lệnh ROLLBACK dùng để điều khiển Transaction về trạng thái trước khi có các thay đổi.
Khi một Transaction hoàn chỉnh được hoàn thành thì lệnh COMMIT phải được gọi ra. Đây là lệnh điều khiển Transaction được sử dụng để lưu các thay đổi gọi bởi một Transaction tới cơ sở dữ liệu.
Sau khi các câu lệnh được thực thi, bạn sẽ cần câu lệnh SELECT để chắc chắn rằng các thay đổi đã được lưu đúng vào Database.
2. Database SchemasSchema là một khái niệm mới được đưa vào SQL, nó là tên một nơi làm việc (namespace) dùng để gom nhóm các table có chung một đặc điểm nào đó để dễ dàng quản lý. Nói một cách dễ hiểu Database Schemas là bản lược đồ của cơ sở dữ liệu mô tả tối tượng quan hệ giữa các đối tượng và thông tin trong cơ sở dữ liệu. Để dễ hình dung một lược đồ là như một hộp chứa các bảng, các thủ tục được lưu trữ, các khung nhìn và các tài sản dữ liệu liên quan. Một lược đồ xác định cơ sở hạ tầng của hộp này.
3. TriggersKhi có bất kỳ một sự kiện nào được thực thi từ Database(Insert, Update, Delete...) thì một Trigger được tự động sản sinh từ phía server. Ví dụ: Khi một sinh viên mới vào trường học. Sinh viên này học 2 môn là: Toán học và Hóa học. Sinh viên này sẽ được thêm vào bảng "SinhVien". Một trigger được sinh ra và sẽ thêm sinh viên này vào những môn học một cách chính xác ngay sau khi anh ta được thêm vào bảng "SinhVien"
Test view-point ở đây là: bạn gửi câu lệnh SQL trong Trigger. So sánh kết quả của Trigger so với lúc Update thông thường. Nó sẽ chỉ ra lỗi logic ở mức đơn giản với các Trigger sai. Bạn có thể thực thi cả 2 phương pháp kiểm thử ở đây:
a, Một khi UI và Database đã hoàn thiện, hoặc có thể sử dụng để thực hiện intergration, thì bạn có thể kết hợp giữa front-end và Trigger để xác minh một cách dễ dàng Trigger có hoạt động ổn định hay không. b, Có cách dễ dàng hơn để kiểm tra Trigger là kiểm tra trực tiếp bằng các công cụ của SQL. Đi tới trực tiếp bảng để xác định các liên kết có đúng hay không. Tuy thủ công và mất thời gian nhưng đây cũng là một cách. 4. Stored ProceduresStored Procedure là một tập hợp các câu lệnh SQL dùng để thực thi một nhiệm vụ nhất định. Nó hoạt động giống như một hàm trong các ngôn ngữ lập trình khác. Ví dụ: Bạn tạo một câu lệnh để select dữ liệu từ bảng SinhVien ra và đặt nó vào Stored Procedure:
Từ đó, mỗi khi chạy câu lệnh Stored Procedured này, bạn chỉ việc gọi nó lên:
Từ đó, sau khi xác định được bản chất, điều bạn cần kiểm tra là:
5. Field ConstraintsGiá trị mặc định, giá trị duy nhất, và khóa ngoại:
III. Kết luậnTrên đây chỉ là giới thiệu sơ qua về SQL và những gì bạn cần biết khi thao tác trong Database. Một QA có khả năng gọi lệnh để kiểm tra dữ liệu so với front-end là một QA hoàn hảo, nhất là với những dự án cần tính chính xác cao về dữ liệu người dùng. Bạn nên nhớ, tất cả thao tác ở đây chỉ là trên môi trường developer, môi trường mà khi bạn thao tác sai tới Database thì có thể dễ dàng ROLLBACK và quay lại như ban đầu. Còn khi sản phẩm đã release Production, không được phép có bất kỳ thao tác test nào trên Database của khách hàng/người dùng. Điều này gây rủi ro cao về những vấn đề như: tính bảo mật của dữ liệu, tính an toàn của dữ liệu, cấu trúc hệ thống có thể bị hỏng... Nên hãy đảm bảo rằng bạn đang thực hiện đúng môi trường nhé. Nguồn và tài liệu tham khảo mà bạn có thể quan tâm tìm hiểu:
|