How Devs Test Smart Contracts
예를 들어, Bob은 "보낸 사람의 주소 결정", "데이터베이스에 새 사용자 추가" 및 "보내는 사람에서 받는 사람에게 토큰 전송"이라는 세 가지 기능으로 구성된 BB 토큰에 대한 스마트 계약을 작성했습니다. 그는 자신에게 50BB를 할당하고 Alice에게 100BB를 보내어 계약을 테스트하기로 결정합니다. 계약은 Bob에게서 100BB를 가져와 Alice에게 보내므로 Bob의 잔액은 이제 -50이 됩니다. 송금인이 충분한 자금을 가지고 있는지 확인하는 기능을 설정하는 것을 잊었기 때문입니다.
Bob이 한 일은 수동 테스트라고 합니다. 그는 실제로 자신이 한 일의 결과를 테스트했습니다. 느리고 인수가 많으면 신뢰할 수 없습니다. 따라서 Bob은 자동 테스트를 시도하기로 결정합니다. 그는 버그를 수정하고 테스트를 작성합니다. Alice의 주소로 100BB를 보내면 자금 부족과 관련된 오류가 반환됩니다. 계약은 테스트를 통과했고 Bob은 만족합니다. 그러나 -50 또는 0.000000001 BB를 보내면 버그가 스스로 표시됩니까? 밥은 더 이상 행복하지 않습니다. 그는 점점 더 많은 새 매개변수를 사용하여 동일한 스크립트를 실행해야 합니다.