iT邦幫忙

0

Day 26:模擬實際使用——使用測試資料驗證系統功能

  • 分享至 

  • xImage
  •  

一、前言

在前一天,我們已經將健康紀錄輸入、資料儲存、歷史紀錄查詢及健康儀表板整合成一個可以操作的系統初版。

不過,程式能夠順利執行,並不代表所有功能都沒有問題。實際使用時,使用者可能會輸入不同的數值、重複填寫同一天的紀錄,或是遇到資料不完整的情況。

因此,今天的學習重點是透過模擬實際使用情境,建立測試資料,逐一確認系統的功能是否符合原本的設計需求。

二、今日學習目標

了解軟體測試的基本概念。

建立健康習慣追蹤系統的測試案例。

模擬不同使用者輸入情境。

檢查新增、儲存及查詢功能是否正常。

驗證統計數值與圖表是否正確。

記錄測試結果,找出需要改善的問題。

三、認識系統測試

系統測試是透過不同的操作情境,確認程式是否能依照預期執行。

以健康習慣追蹤系統為例,不能只測試正常輸入的情況,也需要考慮一些可能發生的問題。

例如:

使用者輸入正常的喝水量與睡眠時間,資料是否能成功儲存?

使用者重複新增同一天的紀錄,系統是否能阻止?

使用者查詢沒有資料的日期範圍,畫面是否能正常顯示?

使用者尚未建立任何紀錄時,儀表板是否會發生錯誤?

系統計算的平均值是否與實際資料一致?

這些測試可以幫助我們確認系統不只是能夠執行,也能夠應付不同的使用情境。

四、建立測試案例

首先,依照目前系統的功能,整理出幾個需要測試的項目。

https://ithelp.ithome.com.tw/upload/images/20261030/20178903HEpn6yZIzn.png
透過測試案例,可以讓測試過程更有方向,也能避免只憑主觀感覺判斷系統是否正常。

五、建立模擬測試資料

為了確認統計功能是否正確,可以先準備幾筆測試資料。

建立一個名為 test_data.py 的檔案:

import pandas as pd

test_records = [
{
"date": "2026-10-20",
"water_ml": 1800,
"sleep_hours": 7,
"exercise_minutes": 30,
"vegetables_fruits": True,
"notes": "散步與正常飲食"
},
{
"date": "2026-10-21",
"water_ml": 2000,
"sleep_hours": 8,
"exercise_minutes": 45,
"vegetables_fruits": True,
"notes": "進行有氧運動"
},
{
"date": "2026-10-22",
"water_ml": 1500,
"sleep_hours": 6,
"exercise_minutes": 0,
"vegetables_fruits": False,
"notes": "休息日"
},
{
"date": "2026-10-23",
"water_ml": 2200,
"sleep_hours": 7.5,
"exercise_minutes": 60,
"vegetables_fruits": True,
"notes": "進行重量訓練"
},
{
"date": "2026-10-24",
"water_ml": 1900,
"sleep_hours": 6.5,
"exercise_minutes": 20,
"vegetables_fruits": True,
"notes": "短時間運動"
}
]

df = pd.DataFrame(test_records)

df.to_csv(
"test_health_records.csv",
index=False,
encoding="utf-8-sig"
)

print("測試資料建立成功!")
print(df)

這段程式會建立五筆不同日期的健康紀錄,並將資料儲存成 test_health_records.csv。

測試資料包含不同的喝水量、睡眠時間與運動時間,方便觀察系統是否能正確呈現不同的數值。

注意: 這是獨立的測試資料檔案,不會直接覆蓋原本的 health_records.csv,避免測試過程影響原有紀錄。

六、驗證統計結果

接下來,使用 Pandas 計算測試資料的平均值,確認系統的統計邏輯是否正確。

import pandas as pd

df = pd.read_csv("test_health_records.csv")

avg_water = df["water_ml"].mean()
avg_sleep = df["sleep_hours"].mean()
avg_exercise = df["exercise_minutes"].mean()

print("平均喝水量:", avg_water, "ml")
print("平均睡眠時間:", avg_sleep, "小時")
print("平均運動時間:", avg_exercise, "分鐘")

依照前面建立的五筆測試資料,預期結果如下:

https://ithelp.ithome.com.tw/upload/images/20261030/20178903as79UicRFf.png
如果程式輸出的結果與表格一致,就代表這組測試資料的平均值計算符合預期。

這個步驟也能幫助我們確認儀表板上的統計結果是否正確,而不是只確認圖表有沒有成功顯示。

七、模擬不同使用情境

完成測試資料後,接著回到 Streamlit 網頁,實際操作系統。

  1. 測試新增紀錄

進入「新增健康紀錄」,輸入一筆尚未存在的日期,填寫喝水量、睡眠時間、運動時間及其他欄位。

按下儲存後,確認系統是否顯示成功訊息,並檢查 CSV 是否出現新增資料。

  1. 測試重複日期

使用剛才已經儲存的日期,再次新增一筆資料。

預期系統會顯示重複紀錄提醒,而不會將資料再次寫入。

  1. 測試歷史紀錄查詢

進入「歷史紀錄查詢」,調整開始日期與結束日期。

確認系統是否只顯示指定範圍內的紀錄,並且依照日期由新到舊排列。

  1. 測試健康儀表板

進入「健康儀表板」,確認以下內容:

平均喝水量是否正確。

平均睡眠時間是否正確。

平均運動時間是否正確。

每日喝水量折線圖是否正常。

每日睡眠時間折線圖是否正常。

每週運動時間長條圖是否正常。

  1. 測試沒有資料的情況

如果希望測試空白資料的顯示方式,可以暫時使用另一個空白資料環境,或先備份原本的 CSV,再測試沒有紀錄時的畫面。

預期系統應該顯示提示訊息,而不是出現程式錯誤。

八、記錄測試結果

測試完成後,將實際結果整理成表格。

https://ithelp.ithome.com.tw/upload/images/20261030/20178903WNYcQ0P19O.png

這份表格可以作為專案測試紀錄,也能在後續成果展示時,說明系統經過哪些驗證。

如果某個項目沒有通過測試,就應該記錄錯誤發生的情況,並在下一階段進行修正。

九、今日成果與學習心得

今天的學習重點,是從單純開發功能轉變成驗證功能。

透過建立模擬資料,我們可以在不依賴真實使用者資料的情況下,測試系統是否能正確處理不同的健康紀錄。

此外,也學習到測試不只是確認程式有沒有出現錯誤,更重要的是確認輸入、儲存、查詢與統計的結果是否符合預期。

例如,即使儀表板成功顯示平均喝水量,如果計算結果與原始資料不一致,仍然代表系統存在需要修正的問題。

因此,測試資料與預期結果的比對,是確認系統正確性的重要步驟。

十、下一步學習方向

明天將進入 Day 27,主要任務是改善使用者介面。

目前系統已經具備基本功能,但仍可以進一步調整頁面排版、文字說明、欄位配置及視覺呈現方式,讓使用者更容易理解每個功能,也能更直覺地完成健康紀錄。

今日總結:透過建立測試資料、驗證統計結果與模擬使用情境,確認健康習慣追蹤系統初版的基本功能是否符合預期,並為後續介面改善與成果展示建立測試基礎。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言