技術文章
技術問答
My Project
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
25
0
佛心分享-IT 人自學之術
區塊鏈技術應用
系列 第
25
篇
邊界情況測試
16th鐵人賽
alex7777
2024-10-09 15:55:23
841 瀏覽
分享至
Boundary Condition Testing
是一種專注於測試系統極端情況的測試方法,這樣可以確保系統在特殊或邊界條件下依然能正常工作。
1.邊界情況測試類型
時間限制測試:設置了捐款的截止日期。
目標達成測試:測試在達成或未達成目標後的操作行為。
捐款者身份測試:測試不同身份的賬戶是否能進行正確操作。
極限金額測試:使用非常小或非常大的捐款金額,檢查系統是否能正確處理這些金額。
多賬戶交互測試:不同的捐款者同時進行操作,檢查合約是否能正確跟踪每個人的捐款。
時間限制測試範例
目標是募集 10 ETH,持續時間設定為 3600 秒(1 小時)。
web3.utils.toWei:將 10 ETH 轉換為 wei(智能合約使用的最小單位)。
time.increase:這是用來模擬區塊鏈時間的函數,這裡將時間增加 3601 秒,超過設定的 1 小時限制。
由於超過時間,合約應該拒絕捐款,並拋出帶有錯誤訊息 Crowdfunding has ended 的異常。
捐款者身份測試範例
contributor 捐款 5 ETH 進入合約,這是為了確保合約內有資金可以提款。
模擬 nonContributor 嘗試執行提款操作,這個帳戶並不是合約擁有者。
使用 web3.eth.getBalance(owner) 獲取合約擁有者的 ETH 餘額。
使用 assert 確認提款後擁有者的餘額是否增加,證明提款成功。
留言
追蹤
檢舉
上一篇
Web3.js 集成
下一篇
前端交互測試
系列文
區塊鏈技術應用
共
30
篇
目錄
RSS系列文
訂閱系列文
2
人訂閱
26
前端交互測試
27
如何在 Web3.js 中監聽智能合約事件
28
Crowdfunding
29
常見的智能合約安全漏洞
30
常見的智能合約安全漏洞2
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
524
組
團體組數
24
組
累計文章數
5848
篇
最後報名日
9/15
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
18th鐵人賽
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
熱門問題
現在大家做程式設計工作一家公司最少會待多久?
經典小畫家白板
請問大家研究所都讀幾年畢業?(理工/文商)
Gemini生成圖片功能(在擺脫Nano Banana次數限制的替代方案)
筆電連線手機
odoo 的光明與黑暗 離SAP 有一段願不願意的路
MAIL 列入SPAMHAUS疑問?如何避免WAN IP被歸類為代理網路?
網頁列印的自訂紙張大小問題
jeff377 架構師
【普天同慶】天上天下唯我獨尊!全知全能至高存在!世界準備好承受他的智商了嗎?
熱門回答
odoo 的光明與黑暗 離SAP 有一段願不願意的路
網頁列印的自訂紙張大小問題
熱門文章
LINE被盜用,中間人攻擊,第三方攻擊,怎麼處理,怎麼搶回帳號,目前 LINE LY 公司說已經修復
我把 iThome 鐵人賽自動發文流程開源了
[Machine Learning A-Z [2026] ] 學習筆記 Day15 貝式定理 & 實作
短網址工具比較:什麼時候該用縮網址?
【分享】超實用線上座位表工具!老師們必備的教室座位安排神器
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}