Nguồn: Turso Blog

Tóm tắt

Turso là một bản viết lại hoàn toàn của SQLite bằng Rust, có khả năng chạy như cơ sở dữ liệu cục bộ hoặc truy cập qua mạng. Một trong những thách thức lớn mà đội ngũ phát triển đối mặt là đảm bảo hai package khác nhau — @tursodatabase/database (native binary) và @tursodatabase/serverless (pure-JS) — phải có API hoàn toàn giống nhau và trả về kết quả nhất quán.

Tại hội nghị BugBash 2026 của Antithesis, Carl Sverre giới thiệu thư viện mới có tên Hegel — một framework cho phép định nghĩa các “properties” về hệ thống, từ đó tự động sinh ra các test case để kiểm chứng property đó. Khi tác giả bài viết (CEO của Turso) nghe đến điều này, anh nhận ra ngay: “hai driver phải có cùng API và luôn trả về kết quán kết quả” chính là một property có thể encode được.

Trong vòng chưa đầy một buổi chiều, chỉ bằng cách prompt Claude để thiết lập Hegel, đội ngũ đã tìm ra 5 lỗi trong các edge case phức tạp — bao gồm cả các vấn đề về serialization với câu lệnh RETURN trong SQL. Những lỗi này đã tồn tại ẩn trong codebase mà không có test nào phát hiện được trước đó.

Câu chuyện cho thấy sức mạnh của property-based testing khi kết hợp với automated test generation: thay vì viết từng test case thủ công, developer chỉ cần mô tả bất biến của hệ thống, và công cụ sẽ tự khám phá các trường hợp vi phạm. Điều này đặc biệt hữu ích trong việc kiểm tra tính tương thích API giữa các implementation khác nhau.

👉 Đọc bài gốc