با عبور از دسامبر ۲۰۱۷ و پررنگ شدن مساله بلاکچین، بسیاری از افراد تماشاچی و البته بخشی از مخالفان، استفاده از بلکچین را به طور جدی آغاز کردند. در اینترنت هم مقالات و کتابهای الکترونیکی در مورد رمز ارزها به صورت ناگهانی و با سرعت بالا تولید و به اشتراک گذاشته شد.
همانطور که جمعیت برای بدست آوردن یک چیز با ارزش یا نسبتا باارزش تقلا میکنند، دادههای بزرگ(Big Data) و شرکتهای مالی نیز علاقه بیشتری به تکنولوژیهایی که از بلاکچین پشتیبانی میکنند از خود نشان میدهند. در حال حاضر بسیاری از اوقات، سیستمهای مرکزی در اطمینانپذیری و اشتراک دادهها مناسب عمل نمیکنند. با Blockchain، تمام قسمتهای یک شبکه به دادههای مشابه دسترسی دارند، و هیچ کس نمیتواند بدون بقیه تغییراتی را اِعمال کند.
Blockchain درباره چیست؟
Blockchain یک سربرگ دیجیتالیست که در آن رکوردها با هم به شکل یک زنجیره پیوسته در بلوکهای کوچک جمع شدهاند، از این رو به آن زنیجره بلوک یا Block Chain میگویند. این سربرگ یا نشانگر دیجیتال دارای ویژگیهای منحصر به فردیست که آن را خاص میکند. به عنوان مثال، این ویژگیها آن را غیر متمرکز میکنند، و این یعنی هر تراکنشی که به زنجیره اضافه شده است باید تکرار(Replicate) شود تا هر گره یک کپی مشابه داشته باشد.
علاوه بر این، هنگامی که یک رکورد را به زنجیره اضافه میکنید، نمیتوانید آنرا ویرایش یا فراخوانی کنید. در حالی که این ویژگیهای منحصر به فرد، این لایه را خاص میکنند، اما همین ویژگیها نیز پیچیدهتر میشوند. بنابراین قبل از استقرار یک زنجیره بلوکی باید یک تست و اعتبارسنجی(Validation) مناسب انجام شود.
تست کردن بلاکچین: انواع تستهای کلیدی
برای تضمین اعتماد، تسترها باید اطمینان حاصل کنند که تمام کامپوننتها و اجزای یک بلاکچین کاملا کار میکنند و تمام اپلیکیشنها با آن به شکل قابل اعتمادی تعامل دارند. برخی از تستهای اصلی که باید اجرا شوند عبارتند از: تست Functional، تست Performance، تست API، تست Node و دیگر تستهای خاص:
- Functional Testing: این تست یک فرآیند جامع است که کار قطعات Functional مختلف در Blockchain(مثلا قراردادهای هوشمند یا Smart Contractها) را ارزیابی میکند.
- API Testing: تستهای API به تعامل میان اپلیکیشنهای موجود در اکوسیستم بلاکچین میپردازند. بدین ترتیب این اطمینان حاصل میشود که API Requestها و API Replayها به طور صحیح قالبریزی و پردازش میشوند.
- Performance Testing: این تست تنگناهای Performanceای را شناسایی کرده و متدهایی را برای Tuning سیستم و Reviewها در زمان آمادگی سیستم برای لانچ پیشنهاد میدهد.
- Node Testing: تمام Nodeهای ناهمگن در شبکه باید به طور مستقل تست شوند تا یک همکاری روان و بیاصطکاک را تضمین کنند.
در توسعه Blockchain، که اغلب روشهای Agile را پیگیری میکند، رویکرد Shift Left برای تست، محبوبیت زیادی دارد. انجام یک سری تست در اوایل چرخه حیات توسعه(Development Lifecycle) باعث به حداقل رساندن تعداد نواقصی میشود که در چرخه حیات اپلیکیشن وجود دارند. این باعث میشود تا نواقص در زمانی یافته شوند که تاثیر آن بر روی کسب و کار شما زیان کمتری را به ارمغان میآورد.
ابزار تست Blockchain
Ethereum Tester
Ethereum، یکی از پلتفرمهای مورد استفاده برای ساخت برنامههای Blockchain، با ابزارهایی برای تسهیل توسعه و تست برنامههاست.
Ethereum Tester برای تستهای API, Web3 Integration, Backend, Smart Contract و چندین تست بلاکچین دیگر، مورد اطمینان است.
Ganache(قبلا TestRPC)
این ابزار تنها برای تست Ethereum Contractها به صورت محلی ساخته شده است. این ابزار یک بلکچین شبیهسازی شده ایجاد میکند که به هر کس اجازه میدهد تا از اکانتهای مختلف برای تست استفاده کند. شما باید در نظر داشته باشید که نتایجی که بدست میآورید حاصل یک شبیهسازیست نه یک رویداد زنده. بدین ترتیب نتایج رضایت بخش خواهند بود اما کامل نیستند.
Composer Hyperledger
بر خلاف دیگر ابزارهایی که در این مقاله ذکر شد، Composer Hyperledger فاقد اکثر امکانات برای تست بلکچین است. بنابراین، فقط برای تست برنامهها قبل از اینکه آنها لانچ شوند مفید است. سه حوزه اصلی که این ابزار در آن صاحب برتریست عبارتند از: تست تعامل(Interactive Testing)، تست اتوماتیک سیستم، و Unit Testing اتوماتیک.
Exonum Testkit
تست بهرهبرداری(Operation) کل سرویس، هنر این ابزار است. این ابزار به شما اجازه میدهد تا API و اجرای تراکنش(Transaction) را در این سیستم همزمان(Synchronous System)، بدون دخالت عملکرد شبکهای(Network Operation) و الگوریتم توافق(Consensus Algorithm)، تست کنید.
ابزارهای دیگر در محیط بلاکچین عبارتند از:
- BitcoinJ
- Corda Testing Tools
- Manticore
- Populus و ابزارهای دیگر
کلام آخر
تست بلاکچین برای اطمینان از اینکه نواقص در یک فهرست غیر متمرکز حذف شدهاند، حیاتیست. در نهایت چنین چیزی از یک کسب و کار در برابر پیامدهای منفی عملکرد ضعیف بلاکچین محافظت میکند. ابزارهای زیادی در رابطه با تست بلاکچین در بازار وجود دارند، از جمله چارچوبهای توسعه(Development Framework) با قابلیتهای تست. انتخاب نهایی به استراتژی توسعه شما و انواع تست مورد نیاز برای کارکرد بیوقفه برنامه شما بستگی دارد.