User Rating 0.0
Total Usage 0 times
Category Time
Anchor point for fuzzing
Configure parameters above and click Generate to produce fuzzed dates.
Is this tool helpful?

Your feedback helps us improve.

About

Fuzz testing temporal data requires controlled randomization around a known anchor point. A naive approach - uniform random across a calendar year - fails to model real-world clustering where events concentrate near a reference timestamp with predictable decay. This tool applies statistical distributions (uniform, Gaussian via Box-Muller, triangular) to a seed date d0, producing n output dates within a window of ±R units. Each offset δ is sampled from the chosen distribution, then added at millisecond precision: dout = d0 + δ. Incorrect date fuzzing in integration tests masks timezone bugs, off-by-one boundary errors, and leap-second edge cases that surface only in production. The tool caps output at 10,000 samples and computes summary statistics (mean, median, σ) so you can verify the spread before export.

date fuzzer random date generator date jitter test data dates fuzz testing dates date offset generator gaussian date distribution

Formulas

The core operation adds a random offset δ (in milliseconds) to the seed date's Unix timestamp:

dout = d0 + δ

The total fuzz range R in milliseconds is computed from user inputs:

R = D 86400000 + H 3600000 + M 60000 + S 1000

For uniform distribution, where U [0, 1):

δ = R (2U 1)

For Gaussian distribution, Box-Muller transform with U1, U2 (0, 1):

δ = R3 2 ln U1 cos(2πU2)

The σ is set to R3 so that 99.7% of samples fall within ±R. Values outside the range are clamped.

For the results summary, standard deviation of the output set:

σ = 1n ni=1 (di d)2

Where D = days, H = hours, M = minutes, S = seconds, U = uniform random variate, n = sample count, d = mean of generated timestamps.

Reference Data

DistributionPDF ShapeBest ForOffset FormulaClustering
UniformFlatEqual-probability spreadδ = R (2U 1)None
GaussianBell curveNatural clustering around centerBox-Muller: δ = σ 2 ln U1 cos(2πU2)Strong center
TriangularTriangle peakModerate center biasInverse CDF with mode at centerModerate center
Edge-weightedU-shapeBoundary stress testingInverted triangularStrong edges
Common Output Formats
ISO 86012024-03-15T14:30:00.000Z
RFC 2822Fri, 15 Mar 2024 14:30:00 +0000
Unix Timestamp1710513000
US Locale03/15/2024 2:30 PM
EU Locale15.03.2024 14:30
Date Only2024-03-15
Time Only14:30:00
YYYY/MM/DD2024/03/15
DD-Mon-YYYY15-Mar-2024
Compact20240315T143000Z
Fuzz Range Reference
1 min60,000 msMicro-jitter for timestamp tests
1 hr3,600,000 msIntra-day scheduling tests
1 day86,400,000 msDaily boundary tests
7 days604,800,000 msWeekly window fuzzing
30 days2,592,000,000 msMonthly report testing
365 days31,536,000,000 msAnnual dataset generation

Frequently Asked Questions

The Box-Muller transform can theoretically produce values beyond ±3σ. Since σ = R3, roughly 0.3% of raw samples exceed the range. The tool clamps these outliers to ±R to guarantee all output dates stay within the configured window. This means the tails of the distribution are slightly heavier than a true Gaussian at the boundary points.
Yes. All arithmetic operates on Unix timestamps in milliseconds. The JavaScript Date constructor handles leap years (Feb 29) and month-length variations natively. However, DST transitions are locale-dependent. If you format output in local time, a fuzzed date crossing a DST boundary will show the correct wall-clock offset. UTC output (ISO 8601 with Z suffix) is unaffected by DST entirely.
Triangular distribution has finite support - it never produces values outside the range, and its density drops linearly from the center. Gaussian has infinite theoretical support (clamped here) and drops exponentially. For test data, triangular gives a softer center bias with a hard cutoff, while Gaussian produces tighter central clustering with rare near-boundary samples. Use triangular when you need guaranteed coverage across the range. Use Gaussian when modeling natural event timing (e.g., user login times that cluster around a peak hour).
This tool uses Math.random, which is not seedable in standard JavaScript. For reproducible test suites, copy the generated output and store it as a fixture. Alternatively, export the results and use them as static test data. True seedable PRNG (e.g., xoshiro128) would require a custom implementation; this tool prioritizes cryptographic-quality randomness from the browser engine over reproducibility.
Each sample requires date object creation, distribution sampling, formatting, and DOM rendering. At 10,000 samples, the total computation stays under 50ms on modern hardware. Beyond this, DOM rendering becomes the bottleneck - inserting 100,000 rows into the page causes layout thrashing and scroll jank. If you need larger datasets, generate in batches and use the copy-to-clipboard feature to aggregate results externally.
Edge-weighted (inverted triangular) concentrates samples near ±R boundaries while depopulating the center. This is specifically designed for boundary-value analysis in QA - testing date validators, range checks, and off-by-one errors at the extremes of an acceptance window. Uniform gives equal probability everywhere, which wastes test budget on uninteresting central values when boundary behavior is the concern.