Nhóm của chúng tôi sẵn sàng kiểm tra đơn vị một mã mới được viết theo một dự án đang chạy mở rộng một hệ thống Oracle hiện có rất lớn.Làm thế nào để (đơn vị) kiểm tra dữ liệu chuyên sâu PL/SQL ứng dụng
Hệ thống được viết hoàn toàn bằng PL/SQL, bao gồm hàng nghìn bảng, hàng trăm gói thủ tục lưu trữ, chủ yếu nhận dữ liệu từ bảng và/hoặc chèn/cập nhật dữ liệu khác.
Tiện ích mở rộng của chúng tôi không phải là ngoại lệ. Hầu hết các hàm trả về dữ liệu từ một câu lệnh SELECT phức tạp trên nhiều bảng bị ràng buộc lẫn nhau (với một logic được thêm vào trước khi trả về) hoặc chuyển đổi từ một cấu trúc dữ liệu phức tạp sang cấu trúc dữ liệu phức tạp khác (phức tạp theo cách khác).
Cách tiếp cận tốt nhất để kiểm tra đơn vị mã như vậy là gì?
Không có kiểm tra đơn vị nào cho cơ sở mã hiện có. Để làm cho mọi việc tồi tệ hơn, chỉ các gói, trình kích hoạt và khung nhìn được kiểm soát nguồn, cấu trúc bảng (bao gồm cả công cụ "thay đổi bảng" và các biến đổi dữ liệu cần thiết được triển khai thông qua kênh ngoài điều khiển phiên bản). Không có cách nào để thay đổi điều này trong phạm vi dự án của chúng tôi.
Việc duy trì bộ dữ liệu thử nghiệm dường như là không thể vì có mã mới được triển khai cho môi trường sản xuất hàng tuần, thường không có thông báo trước, thường thay đổi cấu trúc dữ liệu (thêm cột ở đây, xóa cột ở đó).
Tôi rất vui vì bất kỳ đề xuất hoặc tham chiếu nào để giúp chúng tôi. Một số thành viên trong nhóm có xu hướng mệt mỏi bằng cách tìm ra cách để bắt đầu trải nghiệm của chúng tôi với thử nghiệm đơn vị không bao gồm các hệ thống kế thừa dữ liệu PL/SQL chuyên sâu (chỉ có những dự án Java "xanh").
Cảm ơn câu trả lời của bạn. Tôi biết về utPLSQL, chúng tôi thực sự có kế hoạch sử dụng nó, nhưng câu hỏi của tôi không nhiều về các công cụ hơn là về cách tiếp cận. Nó khá đơn giản để kiểm tra một hàm trả về giá trị dựa trên các đối số của nó. Nhưng điều gì về một hàm trả về giá trị được tính từ số lượng lớn dữ liệu (ví dụ: số lượng các khoản nợ quá hạn dài hơn N trong vòng M tháng trước khi số tiền quá hạn lớn hơn O). Chuẩn bị dữ liệu dưới dạng đồ đạc không phải là dễ dàng vì mỗi chức năng liên quan đến sự tham gia của một nửa tá bảng và vì "mọi thứ liên quan đến mọi thứ" trong hệ thống. –