Skip to main content

PPP 040604 - Property Testing a Smart Contract

Tóm tắt nội dung

Video thảo luận về tầm quan trọng của thử nghiệm thuộc tínhtrong phát triển hợp đồng thông minh. Mặc dù Kiểm tra đơn vị có thể xác định các lỗi trong các Script cụ thể, kiểm tra thuộc tính cho phép các nhà phát triển xác minh rằng hợp đồng thông minh của chúng hoạt động chính xác cho tất cả các kết hợp đầu vào có thể. Để chứng minh thử nghiệm tài sản, tác giả sử dụng thư viện Haskell có tên QuickCheck để kiểm tra cùng một trình xác thực đã được kiểm tra trong một bài viết trước.

Video giải thích rằng kiểm tra thuộc tính yêu cầu các nhà phát triển đưa ra các tuyên bố về mã của họ, sau đó được kiểm tra với các giá trị được tạo ngẫu nhiên bằng thư viện QuickCheck. QuickCheck tạo ra các giá trị ngẫu nhiên được kiểm tra hàng trăm hoặc hàng ngàn lần để đảm bảo rằng các thuộc tính giữ đúng cho tất cả các kết hợp đầu vào có thể.

Trong ví dụ, tác giả kiểm tra ba thuộc tính của Trình xác thực. Tài sản đầu tiên nói rằng bất cứ điều gì trước thời hạn phải luôn thất bại, bất kể Redeemer. Thuộc tính thứ hai kiểm tra rằng một Redeemer tích cực sau thời hạn sẽ luôn thất bại, trong khi tài sản thứ ba kiểm tra rằng một` Redeemer tiêu cực sau thời hạn sẽ luôn thành công.

Video cũng cung cấp chi tiết về các Hàm và trường hợp của người trợ giúp cần thiết để kiểm tra thuộc tính. Run Kiểu được sử dụng để bọc câu lệnh và phiên bản có thể kiểm tra được tạo cho Kiểu này. Video cũng thảo luận về việc tạo ra một trường hợp tùy biến cho thời gian POSIX, đây là một trình bao bọc xung quanh một số nguyên, để cho phép kiểm tra tham số này.

Cuối cùng, bài viết cung cấp chi tiết về cách Hàm kiểm tra chạy được sử dụng để chạy các bài kiểm tra. Hàm có một boolean, thời gian POSIX và số nguyên làm tham số và chạy kiểm tra. Biểu thức trước mũi tên đường dẫn dài lọc các giá trị được tạo ngẫu nhiên đến các giá trị cần được kiểm tra. Hạn chót được lọc để đảm bảo rằng bất kỳ thời hạn được tạo ngẫu nhiên nào lớn hơn 1001.

Nhìn chung, bài viết nêu bật những lợi ích của việc kiểm tra thuộc tính để phát triển hợp đồng thông minh, cho phép các nhà phát triển đảm bảo rằng hợp đồng thông minh của chúng hoạt động chính xác cho tất cả các kết hợp đầu vào có thể. Thư viện QuickCheck và các Hàm trợ giúp cung cấp một khung hữu ích để kiểm tra thuộc tính, giúp các nhà phát triển dễ dàng kiểm tra hợp đồng thông minh của chúng dễ dàng hơn.


Picture