技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
25
0
佛心分享-IT 人自學之術
區塊鏈技術應用
系列 第
25
篇
邊界情況測試
16th鐵人賽
alex7777
2024-10-09 15:55:23
366 瀏覽
分享至
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鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19846
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
[Javascript] 非同步執行,如何延緩後面程式的處理 ??
FortiGate SSLVPN替代方案?
AARQ 通訊協議是?
Dell or Asus 伺服器,哪牌比較好?
Dell or Asus Storage 或NAS,哪牌比較好?
將硬碟上的 EFI 分割區複製到固態硬碟後,ARM 架構的 Ubuntu Server 無法啟動
SSLVPN 轉 IPSEC VPN 的問題
sdray vigor2927 sslvpn ip設定問題
iT邦幫忙如何搜尋 關鍵字?
熱門回答
FortiGate SSLVPN替代方案?
[Javascript] 非同步執行,如何延緩後面程式的處理 ??
Dell or Asus 伺服器,哪牌比較好?
將硬碟上的 EFI 分割區複製到固態硬碟後,ARM 架構的 Ubuntu Server 無法啟動
iT邦幫忙如何搜尋 關鍵字?
熱門文章
c++的.h和cpp,放在相同目錄下好,還是頂層就用include,src分開好? [搬運/問答]
台灣職場必學的Excel函數技巧
人工智慧模型 LLM (單一模型) 與 人工智慧代理 AI Agent(人工智慧代理)是什麼?兩者之間的關鍵差異?
什麼是四大報表及其組成?完整解析
別再只是做報表了,真正的人資資料分析是這樣做的
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}