Kiểm Thử Blockchain là gì? Trong bài viết này, Đào tạo tester Provn sẽ trình bày tổng quan về công nghệ Blockchain và Blockchain Testing.
Một báo cáo gần đây của McKinsey nói rằng Blockchain là một công nghệ non trẻ với tiềm năng mang lại những cải tiến về chức năng từng bước trong các giao dịch tài chính. Kiểm thử chuỗi khối giúp kích hoạt hợp đồng thông minh và đảm bảo chống gian lận.
Thời gian gần đây, thị trường đầu tư tiền điện tử Bitcoin được rất nhiều người quan tâm . Vậy tại sao Bitcoin lại có thể gây lên tiếng vang lớn đến vậy? Công nghệ nào đứng đằng sau Bitcoin? Đó chính là công nghệ Blockchain.
>>> Xem thêm : https://testerprovn.com/top-7-cong-cu-kiem-thu-phan-mem-pho-bien/
Blockchain là gì?
- Blockchain là công nghệ cho phép truyền tải dữ liệu một cách an toàn dựa vào hệ thống mã hóa vô cùng phức tạp, tương tự cuốn sổ kế toán của một công ty, nơi mà tiền mặt được giám sát chặt chẽ. Trong trường hợp này Blockchain được gọi là cuốn sổ kế toán hoạt động trong lĩnh vực kĩ thuật số.
- Blockchain sở hữu tính năng vô cùng đặc biệt đó là: việc truyền tải dữ liệu không đòi hỏi một trung gian để xác nhận thông tin. Đây là một hệ thống bảo mật an toàn cao trước khả năng bị đánh cắp dữ liệu. Ngay cả khi một phần hệ thống Blockchain sụp đổ, những máy tính và các nút khác sẽ tiếp tục bảo vệ thông tin và giữ cho mạng lưới tiếp tục hoạt động.
- Là một hệ thống công khai, blockchain hồ sơ và xác nhận mọi giao dịch được thực hiện đảm bảo an toàn và tin cậy
- Tất cả các giao dịch được thực hiện ủy quyền bở một bên thứ ba. Làm cho các giao dịch không thay đổi và ngăn chặn xâm nhập liên quan đến vấn đề bảo mật.
Kiểm Thử Blockchain
Blockchain Application cũng không khác quá nhiều so với việc test các application khác. Những logic và những cách suy nghĩ mà bạn đã sử dụng cho việc test các dự án non-blockchain vẫn có thể được áp dụng.
Block size:Dưới 100 byte của một khối được sử dụng không phải là trọng tải. Đối với Bitcoin, hiện có giới hạn tối đa cố định là 1MB cho mỗi khối. Trong 18 tháng đầu tiên, kích thước khối trung bình đạt trung bình dưới 30KB. Bây giờ, vào đầu tháng 12 năm 2017, kích thước trung bình dao động khoảng 1MB. Điều gì xảy ra nếu lượng dữ liệu mới đi vào một khối vượt quá kích thước khối tối đa – nó được xử lý như thế nào? Hãy nhớ rằng nhiều giao dịch có thể được chôn bên trong một khối duy nhất. Vào tháng 8 năm 2017, Bitcoin Blockchain đã có một ‘hard fork’ để giải quyết 2 cách tiếp cận khác nhau để bắt đầu giải quyết vấn đề về khả năng mở rộng. Một bên (chủ yếu là thợ đào) muốn khối lớn hơn và hiện có tối đa 8MB thay vì 1MB, trong khi bên kia (chủ yếu là người dùng và nhà phát triển) muốn có một thuật toán nén tốt hơn (Segwit) trong khi vẫn giữ tối đa 1MB.
Tuy nhiên, tiền mặt ở mỗi bên của fork là khác nhau – Bitcoin (BTC) so với Bitcoin Cash (BCH) – và việc cố gắng chuyển giữa các bên khác nhau của fork sẽ phá hủy tiền, nhưng lịch sử tiền fork thuộc về cả hai bên.
Nhưng dường như vẫn có sự đánh đổi trong hai điều này – Bitcoin an toàn hơn, nhưng giao dịch Bitcoin Cash mất ít thời gian hơn. Vẫn chưa xác định được việc có kích thước khối vượt quá 1MB và / hoặc sử dụng các thuật toán nén tốt hơn sẽ diễn ra như thế nào, nhưng nó chứng tỏ rằng các ràng buộc ban đầu của Bitcoin đối với
các khối blockchain nói chung không giới hạn blockchain. nhưng các giao dịch Bitcoin Cash mất ít thời gian hơn. Vẫn chưa xác định được việc có kích thước khối vượt quá 1MB và / hoặc sử dụng các thuật toán nén tốt hơn sẽ diễn ra như thế nào, nhưng nó chứng tỏ rằng các ràng buộc ban đầu của Bitcoin đối với các khối blockchain không giới hạn blockchain nói chung.
nhưng các giao dịch Bitcoin Cash mất ít thời gian hơn. Vẫn chưa xác định được việc có kích thước khối vượt quá 1MB và / hoặc sử dụng các thuật toán nén tốt hơn sẽ diễn ra như thế nào, nhưng nó chứng tỏ rằng các ràng buộc ban đầu của Bitcoin đối với các khối blockchain nói chung không giới hạn blockchain.
Load:Blockchain của Bitcoin hiện có thông lượng tối đa là 3-4 giao dịch mỗi giây (với mức tối đa lý thuyết là 7 trong điều kiện hoàn hảo), với các khối mới để giữ các giao dịch được tạo khoảng 10 phút một lần. So sánh điều này với số lần tải giao dịch / giây cần thiết để xử lý Ethereum (20), PayPal (193), Visa (trung bình 2.000 nhưng đã tăng cao khoảng 50.000), POS của McDonald’s qua AWS (8.600) và Alibaba vào Ngày Độc thân, 2017 (Trung bình 256.000). Vấn đề với blockchain là tốc độ giảm khi tải tăng lên, khiến khả năng mở rộng có vấn đề.
Có một giải pháp thay thế DLT cho blockchain được gọi là Tangle, không có khối, có thể mở rộng và nhẹ, được hỗ trợ bằng cách sử dụng cây thay vì chuỗi. Nó cũng không yêu cầu người khai thác dữ liệu trả tiền để xử lý. Tuy nhiên, công nghệ Tangle còn khá mới,
Performance: Truy vấn mất bao lâu nếu nó phải xem xét mọi khối trong chuỗi để nghiên cứu điều gì đó giống như mỗi khi một tài khoản cụ thể được chạm vào? Nó có giống như truy vấn SQL, trong đó các thứ khác nhau ảnh hưởng đến thời lượng không? Điều này có thể liên quan đến thử nghiệm tích hợp, nhấn mạnh ứng dụng truy vấn bên ngoài nhiều hơn chính blockchain.
Tính nhất quán / Tính khả dụng: Theo định lý CAP, chỉ có 2 phản hồi có thể có mà một hệ thống phân vùng có thể đưa ra: phần có thể truy cập gần đây nhất của chuỗi hoặc sự lựa chọn giữa phần gần đây nhất của chuỗi hoặc lỗi.
Hay nói cách khác, nếu phần cuối gần đây nhất của chuỗi không thể truy cập được (luôn có khả năng xảy ra trong hệ thống được phân vùng), bạn có ném và báo lỗi hay cung cấp thông tin chi tiết từ một đoạn trước đó không?
Giả sử rằng việc chờ đợi phần cuối của chuỗi có thể truy cập được không thành công và hệ thống phải chọn giữa hai tùy chọn này: không thành công hoặc để lộ một khối trước đó. Nhân tiện, trong một hệ thống không phân vùng, hệ thống đã hoạt động hoặc chưa – không có gì là rời rạc.
Xung đột: Chúng tôi đã đề cập đến vấn đề này trong Kích thước chuỗi , nơi có thể nhân bản thông qua tự động hóa để có đúng thời gian, vì vậy bạn có thể đảm bảo rằng hành vi phù hợp xảy ra cho 2 khối muốn được thêm đồng thời. Tính nhất quán / Tính khả dụng cũng thể hiện một cách khác để tấn công điều này “tốt, tôi dường như có thông tin này cho một khối mà tôi không chắc sẽ đặt ở đâu”, khi phần cuối của chuỗi không có sẵn, một lần nữa để bạn có thể đảm bảo rằng hành vi phù hợp xảy ra…
Security: Blockchain dường như xuất hiện trên các tin tức để công khai giá trị gia tăng của bitcoin hoặc vụ đánh cắp bitcoin, đặt ra câu hỏi rõ ràng: bitcoin có an toàn không? Nhiều lớp bảo mật được tích hợp để xác định danh tính. Thật không may, một khi các lớp nhận dạng đã bị tấn công, các giao dịch tức thời không thể dừng lại.
Sự đa dạng của các khóa có thể làm phức tạp thêm hành vi trộm cắp, nhưng cuối cùng, bất cứ thứ gì có thể nhập vào cũng có thể bị đánh cắp, bởi các điểm yếu như bộ nhớ đệm mờ nhạt hoặc các công cụ như trình đánh hơi. Về mặt Bitcoin / Bitcoin Cash, có sự đánh đổi giữa bảo mật và thời gian giao dịch.
Chất lượng bảo mật chống giả mạo được tích hợp sẵn trong blockchain (ngoại trừ công cụ chỉnh sửa blockchain của một công ty). Tôi cũng đã đề cập ở trên về bản cập nhật gần đây của Tangle để sửa lỗi bảo mật đã phát hành cho phép các khối được thay đổi mà không phá vỡ chuỗi.
Tại sao hack một khối? Đó có thể là hành vi đánh cắp dữ liệu (hành vi trộm cắp, có thể bao gồm việc cho phép một giao dịch trái phép) hoặc có thể là chỉnh sửa dữ liệu (gian lận).
Lỗi dữ liệu: Chúng ta đã nói về các xung đột có thể gây trở ngại cho việc thử nghiệm trước đó, vì vậy đây là nguyên nhân cụ thể của nguyên nhân gốc rễ Tính nhất quán / Tính khả dụng. Điều gì xảy ra với dữ liệu trong một khối nếu một khối bị hỏng? Có cách nào để sửa chữa khối không? Có thể đạt được chuỗi vượt qua khối bị hỏng không?
Làm thế nào để bạn sửa lỗi chính tả giao dịch: Việc sửa một khối không nên (nhưng là) có thể, với sự tồn tại của các công cụ mâu thuẫn với những phẩm chất bất biến làm cho blockchain có giá trị. Nếu không, một mục nhập chuỗi khối mới hơn phải được thêm vào để loại bỏ hoặc sửa lỗi trước đó trong chuỗi. Ngoài ra, có thể thêm một giao dịch mới để điều chỉnh nó trở lại.
Logic truy vấn kiểm tra CRUD: Trong trường hợp thu hồi chuỗi cung ứng hoặc sản phẩm hoặc hoạt động của người dùng, nhiều bản ghi cần được phân tích cú pháp chính xác trải dài nhiều chuỗi hoặc nhiều bản ghi bên trong một khối hoặc cả hai. Trong trường hợp hợp đồng thông minh, bạn có thể muốn theo dõi tất cả các bản nháp của hợp đồng hoặc kéo các phiên bản có hiệu lực trong một khoảng thời gian cụ thể. Kiểm tra nên bao gồm cả chức năng và hiệu suất.
Đây chỉ là sự khởi đầu của danh sách thử nghiệm tiềm năng cho các hệ thống blockchain. Thử nghiệm phải vượt ra ngoài chỉ phần blockchain và bao gồm thử nghiệm tích hợp ánh xạ đến toàn bộ quy trình kinh doanh.
Nguồn tham khảo: https://www.qualitestgroup.com/white-papers/testing-blockchain/