කොඩ් ලේඛන වල අසාර්ථකතා බොහොමයක් අපේක්ෂා නොකළ අත්යවශ්ය තත්ත්වයන්හි සිදු වේ. එවැනි අවස්ථා හඳුනා ගැනීමට Foundry විසින් සපයන Fuzz testing සහ Invariant testing තාක්ෂණය දැන් ඉතා පහසු කර ඇත. මේවා භාවිතා කරලා ඔබේ Solidity සමාගම්වල දෝෂ හුදෙක් එක්-එක පරීක්ෂණයෙන් නොගැලපෙන බොහෝ ගැටළු හඳුනාගත හැකිය.
Fuzz Testing – සීමා සහ vm.assume භාවිතය
Fuzz testing යනු රැඳී සිටින අමුතු ඉන්පුට් එකක් එකක් ඔබේ කන්ට්රැක්ට් එකට එවලා, අසාර්ථක වීමක් සිදුවන තුරු පරීක්ෂා කිරීමයි. Foundry හි bound ක්රමය භාවිතා කරලා ඉන්පුට් වල පරාසය සීමා කරගත හැකි අතර, vm.assume අඩු පරිමාණයෙන් භාවිතා කළහොත් පරීක්ෂණ වේගය අඩුවේ. මෙය ඔබට transfer වැනි ක්රියාකාරකම්හි off‑by‑one දෝෂ හෝ අනිසි ලොකු මුදලක් යැවීම වැනි අත්යවශ්ය වැරදි ඉක්මනින් හඳුනාගැනීමට උදව් කරයි.
Invariant Testing – ERC20 totalSupply උදාහරණය
Invariant testing එකක් කියන්නේ, කාලයත් සමඟ අවිස්මරණීය තත්වයක් (උදා: totalSupply එකේ අගය) නිතරම පවත්නා බව තහවුරු කිරීමයි. Random call sequences එකක් ක්රියාත්මක කරලා, ඒ අතරතුරත් මේ තත්ත්වය බිඳුනොවී ඉන්නවාද කියලා පරීක්ෂා කරයි. Foundry හි StdInvariant භාවිතා කරලා, සරල Solidity කේතයක් මගින් totalSupply එක 1,000,000 ETH එකක් බවට පරීක්ෂා කළ හැකිය. මෙය ලැප්ටොප් එකක 30 තත්පරයක් පමණ කාලයක් ගතවී, 50,000 fuzz runs එකක් සිදු කරලා අතිශය ආරක්ෂිත බව පෙන්වයි.
Reentrancy Detection – Fuzz සමඟ සරල පරීක්ෂණ
Reentrancy දුර්වලතා හඳුනා ගැනීමට, Foundry එකේ fuzz පරීක්ෂණය සෑම වාරයක්ම state එක rollback කරයි. එම නිසා ඔබට exploit contract එකක් තනිව සකස් කිරීමේ අවශ්යතාව නොමැතිව, deposit/withdraw ක්රියාකාරකම් නිරීක්ෂණය කරලා, එකවර re‑enter කිරීමේ ප්රයත්නයක් සිදු කරලා, vault එකේ balance අඩු වුණාද කියලා සරල assert එකක් මඟින් පරීක්ෂා කළ හැකිය.
Access Control Fuzzing – හිමිකාරී පාලන දෝෂ හඳුනා ගැනීම
ඉතා බහුලව සොයාගන්නා වැරදි වන්නේ, onlyOwner modifier එක සෑම state‑changing function එකකටම අදාළ නොවීමයි. Fuzz testing එකෙන් විවිධ address, amount, සහ function combination එකක් පරීක්ෂා කරලා, අධිකාරී පාලනය නොමැති පථයක් හඳුනාගත හැකිය.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ නවෝත්පාදන ක්ෂේත්රය තවත් ඉදිරියට ගෙන යාමට, Solidity දැනුම ඇති ඩිවෙලපර්ලාට මේ පරීක්ෂණ ආකාරය අත්යවශ්ය වේ. Fuzz testing සහ Invariant testing භාවිතා කරලා, දේශීය DeFi, NFT, සහ blockchain startup කලාපයන්ගේ smart contract ආරක්ෂාව වැඩි දියුණු කරගත හැකිය. ඒ නිසා ආයෝජකයින්ගේ විශ්වාසය වැඩිවීමත්, ලෝක මට්ටමේ ආරක්ෂිත නිෂ්පාදන නිර්මාණයත් සිදු වේ. තවද, විශ්ව විද්යාල සිසුන්ට මේ ක්රමයන් ඉගෙනගැනීම, තාක්ෂණික රැකියා අවස්ථා සලසා දීමට, දේශීය IT ආර්ථිකය ශක්තිමත් කිරීමේ පදනමක් වේ.
ඉදිරියට, Foundry හි fuzz සහ invariant testing මෙවලම් භාවිතා කරලා, ඔබේ smart contract එකේ ආරක්ෂාව අතින්ම තහවුරු කරගන්න. එය කේත ගුණාත්මකභාවය වර්ධනය කිරීමේ, සහ ව්යාපාරික සාර්ථකත්වය ගොඩනැගීමේ මූලික පියවරයි.