BTA CBDE study materials
BTA CBDE study resources

BTA CBDE: Testing, Security, and Deployment Practices

BTA CBDE · Work through your exam, one topic at a time.

All guide sections

Testing, Security, and Deployment Practices

Testing strategy

Layer tests: unit tests for functions, integration tests for contract interactions, and fork tests against real network state. Use assertions on state and events, and cover reverts with expected reasons. Measure coverage but remember it does not prove security. Fuzz and invariant testing catch edge cases that hand-written cases miss.

Security mindset

Know the classic vulnerabilities: reentrancy, access-control gaps, integer issues, oracle manipulation, front-running, and denial of service via unbounded loops or gas griefing. Understand mitigations: checks-effects-interactions, reentrancy guards, least privilege, pull payments, and time-weighted oracles. Recognize that upgradeable proxies introduce storage-layout risks and admin-key risk.

Deployment practice

Use staged rollout: local, testnet, then mainnet. Verify source, transfer ownership deliberately, and consider timelocks and multisig control. Have a rollback or pause plan and monitor events after launch. Keep deployment addresses and configurations versioned.

Traps

Questions often assume audited code is safe, that tests guarantee correctness, or that a proxy upgrade preserves storage automatically if layout changes. Others ignore that private functions are visible on chain and that secrets in contracts are public.

Rule of thumb

Assume adversaries read everything and can reenter. Worked example: a withdraw function should zero the balance, then transfer, and be guarded by a reentrancy lock.