Skip to content

測試工具備份

🧪 功能概述

此目錄包含分析功能開發期間使用的測試工具和模擬數據生成器。這些工具在未來恢復毛利分析和需求預測功能時可能會很有用。

📁 檔案清單

模擬數據生成器

  • testAnalytics.ts - TypeScript 模擬數據生成工具
    • 生成 ABC 分析測試數據
    • 生成滯銷品分析測試數據
    • 生成庫存預警測試數據
    • 生成毛利分析測試數據

測試腳本

  • test-analytics.js - Node.js 命令行測試腳本
    • 驗證模擬數據生成功能
    • 展示各分析功能的數據結構
    • 用於開發期間的功能驗證

🔧 使用方式

testAnalytics.ts

typescript
// 生成 ABC 分析測試數據
import { generateMockSalesData, calculateMockABCAnalysis } from './testAnalytics'

const salesData = generateMockSalesData()
const abcResults = calculateMockABCAnalysis(salesData)

// 生成滯銷品測試數據
const slowMovingData = generateMockSlowMovingData()

// 生成庫存預警測試數據
const stockAlerts = generateMockStockAlerts()

// 生成毛利分析測試數據
const profitabilityData = generateMockProfitabilityData()

test-analytics.js

bash
# 在專案根目錄執行
node test-analytics.js

📊 模擬數據特性

ABC 分析數據

  • 產品數量: 10 個產品
  • 數據分布: 符合帕累托原則 (80/20 法則)
  • 類別分類: 智慧手機、筆記型電腦、平板電腦等
  • 營收範圍: $100 - $100,000

滯銷品數據

  • 產品數量: 變動 (3-8 個)
  • 風險等級: critical, high, medium, low
  • 天數範圍: 30-365 天
  • 庫存週轉率: 0.1-2.0 次/月

庫存預警數據

  • 預警類型: out_of_stock, low_stock, overstock, reorder_needed
  • 嚴重程度: critical, warning, info
  • 數量範圍: 0-100 件
  • 預警數量: 5-15 個

毛利分析數據

  • 毛利率範圍: 10%-60%
  • 成本結構: 基於售價的 40%-90%
  • 產品組合: 涵蓋高、中、低毛利產品
  • 排序邏輯: 支援多維度排序

🎯 適用場景

開發階段

  • 功能原型開發: 快速驗證分析邏輯
  • 界面設計: 提供一致的測試數據
  • 算法測試: 驗證分類和計算正確性

測試階段

  • 單元測試: 為算法函數提供測試數據
  • 集成測試: 模擬完整的數據流程
  • 壓力測試: 生成大量數據測試效能

演示階段

  • 功能展示: 向利益相關者展示功能
  • 用戶培訓: 提供訓練用的示例數據
  • 商業驗證: 驗證分析結果的商業價值

🔄 與真實數據的差異

優點

  • 數據完整性: 沒有缺失值和異常值
  • 分布合理: 符合商業邏輯的數據分布
  • 即時可用: 不依賴資料庫和外部系統

限制

  • 不反映真實業務: 無法發現實際數據的問題
  • 缺乏複雜性: 真實數據會有更多變化和異常
  • 時間特性: 缺乏真實的時間序列特徵

🚀 未來使用建議

開發新功能時

  1. 快速原型: 使用模擬數據快速驗證概念
  2. 算法開發: 先用模擬數據開發算法邏輯
  3. 界面設計: 確保界面能正確顯示各種數據情況
  4. 逐步替換: 開發完成後逐步替換為真實數據

測試策略

  1. 雙重驗證: 同時使用模擬數據和真實數據測試
  2. 邊界測試: 使用極端數據測試系統穩定性
  3. 回歸測試: 確保新功能不影響現有功能

📝 修改指引

擴展模擬數據

typescript
// 增加新的產品類別
const newProducts = [
  { name: '新產品', category: '新類別', baseRevenue: 50000 }
]

// 調整數據分布
const customDistribution = {
  aRatio: 0.7,  // A類產品營收佔比
  bRatio: 0.2,  // B類產品營收佔比
  cRatio: 0.1   // C類產品營收佔比
}

自定義分析參數

typescript
// 調整滯銷品判定條件
const customParams = {
  minDaysSinceLastSale: 45,     // 45天無銷售
  maxInventoryTurnover: 1.5,    // 最大週轉率
  maxInventoryDays: 120         // 最大庫存天數
}

⚠️ 注意事項

數據隱私

  • 模擬數據不包含任何真實商業資訊
  • 產品名稱和數據均為虛構
  • 可以安全用於展示和培訓

版本控制

  • 保持模擬數據的版本一致性
  • 記錄數據結構的變更歷史
  • 確保與真實數據結構的兼容性

效能考量

  • 大量模擬數據可能影響效能
  • 建議在生產環境中移除模擬數據邏輯
  • 使用條件編譯區分開發和生產環境

備份日期: 2025-07-25
工具版本: v1.0
適用階段: 開發、測試、演示
維護狀態: 靜態備份,需要時可更新