成功と失敗をテストする
テストは「デプロイできたか」だけでは不十分です。初期値、正常な入力、境界値、権限エラー、残高不足、同じ処理の二重実行を分けて確認します。
テスト観点CHECKLIST
初期値: count() == 0
正常系: increment() 後に count() == 1
権限: owner以外のreset() はrevert
境界: amount == 0、最大値
失敗後: revert後に残高や権限が変わらないRemixで手動テストする
Remix VMでアカウントを切り替え、操作の前後に状態変数とログを確認します。エラーが起きるケースも、実際にrevertすることを見ておくと、コードの条件が理解しやすくなります。
確認の順番COMMAND
1. Account 0でデプロイ
2. Account 0で管理関数を実行
3. Account 1へ切り替える
4. 同じ管理関数を実行してrevertを確認
5. 失敗後も状態が変わっていないことを読む確認結果OUTPUT
Account 0で管理関数 → 成功
Account 1で管理関数 → revert
失敗後の状態 → Account 0で実行した値のままネットワークを使い分ける
Remix VMはブラウザ内の学習環境、ローカルノードは自分のPCで動く開発環境、テストネットは公開ネットワークに近い検証環境です。本番ネットワークへ進む前に、チェーンID、RPC、ウォレット、ガス、デプロイ先アドレスを確認します。
本番デプロイは取り消せない
秘密鍵、シードフレーズ、実資産を入力したり、学習コードを本番へ公開したりしないでください。書き込み操作は必ず対象ネットワークと金額を確認します。
ソースコードを検証する
デプロイ後にエクスプローラーでソースコードを検証すると、公開されたバイトコードが提示したソースから生成されたものか確認できます。検証済みでも、コードが安全だと保証されるわけではありません。
公開前チェック
- コンパイラー、最適化、EVMバージョンを記録したか
- ABI、アドレス、デプロイ履歴を保存したか
- テストネットで権限・送金・失敗ケースを確認したか
- コントラクトを検証し、利用者向けの仕様を公開したか
- 監査やレビューが必要な金額を扱っていないか
最後に練習問題で学んだ要素を組み合わせます。