このツールについて
フィールドの長さ制限と文字の扱いは、入力に関するバグの多くが潜む場所です。このツールは指定した長さの文字列を作ります。James Bach のカウンター文字列にも対応しており、各マーカーは直前に書かれた数値の位置にあります(「*3*5*7*10*」は 10 文字)。そのため、値が切り詰められていれば、どこで切られたかが正確にわかります。厳選した Unicode のサンプル(アクセント記号、CJK、右から左へのテキスト、絵文字の ZWJ シーケンス、結合文字、ゼロ幅文字)、見た目が空白に似た文字、自分のアプリケーションの入力処理を確認するための定番の SQL・XSS・パストラバーサルのプローブ文字列も提供します。データベースのカラム、HTML の maxlength 属性、ユーザーはそれぞれ数え方が異なるため、すべての文字列について JavaScript の length、コードポイント数、見た目の文字数(Intl.Segmenter による書記素)、UTF-8 のバイト数を表示します。
使い方
- 長さのテストでは「Counterstring」(カウンター文字列)か「Repeat」(繰り返し)を選び、長さを入力するか、255、256、65535 などのよく使われる境界をクリックします。
- 文字列をコピーまたはダウンロードしてテスト対象のフィールドに貼り付け、何が保存されたか、どこで切られたか、エラーが表示されたかを確認します。
- 「Unicode」「Whitespace」(空白)「Input probes」(入力プローブ)のタブで個々のエッジケース文字列をコピーします。それぞれに、何を明らかにするための文字列かが記載されています。
- 「Measure any string」(任意の文字列を測定)に値を貼り付けると、各種の長さと、目に見えない文字を可視化したエスケープ形式が表示されます。
テスト文字列生成ツール のよくある質問
絵文字 1 つが 2 文字、7 文字、11 文字と数えられるのはなぜですか?
JavaScript の文字列の length は UTF-16 のコードユニットを数えます。基本多言語面(BMP)外の絵文字は 2 つ使い、家族の絵文字のような ZWJ シーケンスは複数の絵文字を U+200D でつなぐため、見た目は 1 文字でも length が 11、UTF-8 では 25 バイトになることがあります。制限がどの単位を数えるものかを決め、明示的にテストしてください。
255 と 256 のどちらの長さをテストすべきですか?
両方に加え、制限値そのものとその前後をテストします。フィールドが 255 文字まで許可するなら、254、255、256 をテストします。保存された値の末尾を見れば何文字残ったかがわかるので、カウンター文字列を使うと結果が読みやすくなります。
SQL や XSS のプローブ文字列を使っても安全ですか?
入力がパラメーター化され、出力がエンコードされていることを確認するために QA で使われる、標準的で破壊的でないプローブです。ご自身が所有するか、テストの許可を得たアプリケーションでのみ使ってください。正しく作られたシステムなら、単にテキストとして保存・表示するだけです。