常见数据生成

随机数据生成算法

随机数据生成是最简单的方法,适用于无需特定分布的场景。通过随机函数生成任意值,常用于压力测试或边界测试。

import random

def generate_random_data(size):
    return [random.randint(0, 100) for _ in range(size)]

基于分布的数据生成

对于需要特定统计分布的测试场景,可使用概率分布模型生成数据。正态分布适用于模拟自然现象,泊松分布适合事件发生率测试。

import numpy as np

# 正态分布数据
normal_data = np.random.normal(loc=50, scale=10, size=1000)

# 泊松分布数据
poisson_data = np.random.poisson(lam=5, size=1000)

组合测试数据生成

Pairwise算法可高效覆盖参数组合,显著减少测试用例数量。适用于多参数系统的高效测试覆盖。

from allpairspy import AllPairs

parameters = [
    ["BrandA", "BrandB"],
    [50, 100, 200],
    ["Yes", "No"]
]

for pairs in AllPairs(parameters):
    print(pairs)

模糊测试数据生成

通过变异合法输入产生异常数据,专门测试系统鲁棒性。字符串模糊测试常用字符替换、删除等操作。

import random

def fuzz_string(input_str):
    mutations = [
        lambda s: s[:random.randint(0,len(s))],  # 截断
        lambda s: s + chr(random.randint(0,255)), # 追加随机字符
        lambda s: s.replace(random.choice(s), '') # 随机删除
    ]
    return random.choice(mutations)(input_str)

基于模型的数据生成

使用机器学习模型生成符合特定模式的数据。LSTM可学习序列模式,GAN能生成高仿真数据。

from keras.models import Sequential
from keras.layers import LSTM, Dense
import numpy as np

# 简化的LSTM数据生成模型示例
model = Sequential()
model.add(LSTM(50, input_shape=(10,1)))
model.add(Dense(1))
model.compile(loss='mae', optimizer='adam')

边界值数据生成

针对系统边界条件设计测试数据,包含最小、最大和临界值。特别适用于数值输入验证。

def generate_boundary_values(min_val, max_val):
    return [
        min_val - 1,  # 最小值边界
        min_val,
        min_val + 1,
        (min_val + max_val) // 2,  # 中间值
        max_val - 1,
        max_val,
        max_val + 1   # 最大值边界
    ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值