8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

君たちはどうテストデータを作るか

Last updated at Posted at 2023-07-31

これは

何かアプリなりシステムなりを作る時にテストはつきものです。
多くのプログラムは動かしたりテストをする時にデータが必要となり、それらはテストデータと呼ばれます。
テストデータはデータベースに直接投入したり、出来上がってる画面からテストとして入力やアップロードされることによって作られることが多いでしょう。
この記事では、そんなテストデータを作るときに気を付けるべきことをお伝えします。

そのテストデータは使っていいのかよく考る

ユーザーの登録フォームの例だと、こんな感じの入力項目があるとします。
image.png

ここで、メールアドレスや電話番号は実際にシステムからメールやSMSが送信される可能性があるので要注意です。
メールアドレスで言えば適当に書いたメルアドが実際に存在して届いてしまう可能性があるので必ず自分のメールアドレスやエイリアスを使いましょう。
電話番号はプロジェクトの中でテスト用に決めた番号を使うなどを検討すべきでしょう。

実際に送信されるかどうかはシステムの仕様次第ですが、将来に渡っても確実に飛ばないとは言えないので気を付けるにこしたことはありません。

画面やファイルのアップロード系も気を付ける必要があります。
アップロードするテストデータが著作権のある情報じゃないかちゃんと確認しましょう。
いらすとやなどの著作権フリーのデータを使うのが無難です。

名前や自由入力欄でも、何かのIDやパスワードやURL、プログラムが入ったデータを入れてしまうと場合によっては重大なセキュリティインシデントに繋がる恐れがあります。
気をつけましょう。

なるべく意味のなさすぎるテストデータを避ける

「ああああ」とか「ほげほげ」を入力するのをよく見かけるがこれは気をつけた方がいいです。
例えば先ほどのフォームの「ユーザー名」と「その他」の両方に「ああああ」とか入れちゃうと登録結果を見たときに「ユーザー名」と「その他」どっちのデータが出てるのか識別が困難になってしまいます。

そのデータが人名なら人の名前っぽいもの、商品名ならそのシステムが扱う商品っぽいものを(もちろん架空で)登録しておけば間違ってデータが出てるときに気づきやすくなりますし、利用者をイメージしやすくなります。

システムの規模が大きくなれば大きくなるほど入れたデータの繋がりや流れができるので適当なデータばかりだと何が正しいかよくわからなくなってくるので多少面倒でも本当に入れそうな、でも架空のデータを入れるようにしましょう。

これはテストだけでなく、UIデザインや画面設計書に仮で置かれているデータも同じで、レビューするクライアントやこれを見て実装するエンジニアがその機能をイメージしやすいように適切な値を置いておくのが重要です。

テストデータで遊んではならない

↓こちらの良スライドを読みましょう。

追記:2024年版が出ました💩

まとめ

いついかなる時も、データを入れる前にそのデータが適切かどうかよーく考えましょう。

※記事タイトルは流行に乗せただけで内容とは関係ありません:pray:

Appendix

テストデータを再利用、共有できるようにしておく

テストデータは一度使って終わりになることはあまりありません。
他の機能のテストで使い回されたり、別環境でテストする時に再利用されたり、再現テストに利用されることもあります。

テストデータ作成のSQL文を保存しておくとか、LaravelフレームワークであればSeederやFakerなどテストデータを作成、再利用する仕組みを使ったり、データ取り込みのがあればストレージサービスに使ったデータを残しておくなど。
テストデータを共有、再利用できる工夫を行なっておくとテスト工数の削減になります。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?