Testing Files Generator
日本語

正確なサイズの本物のテストファイルを生成

PDF、PNG、DOCX、ZIPなど、全26種類の形式に対応し、どれも対応するソフトウェアで開ける本物のファイルで、サイズは要求したとおりちょうどです。各実行では、アプリが各ファイルをどう扱うべきかも書き出します。コマンドラインとデスクトップウィンドウの両方に対応し、無料のオープンソースで、すべてあなたのマシン上で動きます。

無料のオープンソース、GPL-3.0。登録は不要です。WindowsとmacOS向けのダウンロードは署名済みで、警告なしで起動します。

テストファイルのバッチを書き出す準備ができたTesting Files Generatorのデスクトップウィンドウ
ファイルのバッチを書き出す準備ができたデスクトップウィンドウ。コマンドラインの裏でも同じエンジンが動いています。

課題

テストファイルを1つ作るのは簡単です。適切な1000個を作るのが面倒な部分です

あなたは、人からファイルを受け取るソフトウェアをテストしています。遅かれ早かれ、次のものが必要になります。

これが置き換える対象です。QAエンジニア、テスト自動化、そしてコードの先にアップロードフォーム、取り込み処理、パーサー、ストレージの割り当てがあるすべての人のために作られています。

他とどう違うか

他の生成ツールはバイトで終わります。これは、あなたのテストが本当に問うことに答えます

ファイルが入ったフォルダーだけでは、各ファイルが何を証明すべきかを自分で決めることになります。ここでは実行のたびに、ファイルの横にmanifest.jsonを書き出します。生成物の単純な一覧で、各項目に宣言された期待値が付きます。

アップロードのエンドポイントが1MBまでを許可するとします。その線上にある3つのファイルを要求します。

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
ファイルバイトシステムの対応理由
1mb_under_1b.pdf1048575受け入れる制限の内側にあるため
1mb_at_limit.pdf1048576受け入れる制限値ちょうどは許可されるため
1mb_over_1b.pdf1048577拒否するsize_limit

3つのファイル、3つの異なる答えを、機械可読な形で示します。アサーションを手書きする代わりに、テストがマニフェストを読みます。

import json, os

directory = "edges"
manifest = json.load(open(os.path.join(directory, "manifest.json")))

for entry in manifest["files"]:
    response = upload(os.path.join(directory, entry["path"]))
    outcome = entry["expected"]["outcome"]
    if outcome == "accept":
        assert response.ok, entry["path"]
    elif outcome == "reject":
        assert not response.ok, entry["path"]

答えが自分たちのポリシー次第の場合、マニフェストはそう述べます

期待値をでっち上げず、unspecifiedと記録します。推測する生成ツールは誤検出を生み、狼少年のようなテストスイートは最終的に無効にされます。

プリセット

疑問を選べば、セット一式が手に入ります

プリセットは、1つのテストの疑問を軸に設計したテストファイルのセットです。どのファイルが何を証明するのかを自分で考える必要はありません。それぞれに、普通は何を見つけるか、セットの内容、受け付ける設定をまとめたページがあります。

すべてのプリセットと、レシピとの関係

クイックスタート

動作を確かめる3つのコマンド

  1. ファイルを1つ作る

    PNGを1つ、ちょうど2メガバイトで:

    tfg generate --format png --size 2mb --out ./fixtures
  2. たくさんのファイルを作る

    1KBから8KBの間で、シードから決めたサイズのログファイルを1万個。明日も同じセットになります。実行ごとに専用のディレクトリを使ってください。マニフェストは実行が書いた内容の唯一の記録なので、ツールはその上に2つ目を書くことを拒否します。

    tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs
  3. 検証してから削除する

    verifyは何も動いていないことを伝えます。cleanupは書き込まれたものだけを正確に削除します。

    tfg verify ./logs/manifest.json
    tfg cleanup ./logs/manifest.json --yes

サイズはファイルマネージャーと同じく1024単位で数えるため、2mbは2097152バイトです。バイト数をそのまま指定することもできます。ドキュメントで、レシピ、マニフェスト、終了コードを説明しています。

得られるもの

無人で動くテストスイートのために作られています

ダウンロード

お使いのOS向けのビルドを選んでください

アーカイブを展開して実行します。tfgがコマンドライン、tfg-guiがデスクトップウィンドウです。インストーラーはなく、マシンに追加するものもありません。

OS コマンドライン デスクトップウィンドウ
Windows amd64, arm64 amd64
Linux amd64, arm64 amd64
macOS arm64 arm64

署名済みのものと、そうでないもの

WindowsとmacOS向けのダウンロードは署名されているため、未確認の開発元という警告なしで起動します。Linux向けは、デスクトップLinuxに署名できる仕組みがないため署名されていません。すべてのアーカイブはリリースページのverify-SHA256SUMS.txtに載っているので、ダウンロードしたものを確認できます。

無料のオープンソース、GPL-3.0。登録は不要です。WindowsとmacOS向けのダウンロードは署名済みで、警告なしで起動します。