現在は「VUCAの時代」と言います。VUCAとはVolatility(変動性)、Uncertainty(不確実性)、Complexity(複雑性)、Ambiguity(曖昧性)の頭文字をとったビジネスシーンで使われる言葉です。これら4つの言葉が表すとおり、「未来の予測が難しい状況」を表しています。

過去を振り返ると、使い古された言葉になりますが、高度経済成長時代に象徴されるように「作れば売れる」時代でした。しかし、VUCAという言葉が登場したように、現在は、「何が売れるかわかりにくい」状況に陥っています。

この連載では、現在やこれからの時代で求められるであろうソフトウェア開発における「品質」を再定義し、あるべき姿への道筋を示し、代表的なプラクティスなどを紹介しながら、アジャイルQA(アジャイルな品質保証、もしくは品質合意)という活動や、具体的な手段としてアジャイルテスティングのあり方を議論していきます。

最終回である第4回目のテーマは、E2Eテスト自動化の10のベストプラクティスを探求します。

1. 小さく。独立。観点はひとつ

小さく、独立した、観点がひとつだけの自動テストを作りましょう。

「小さく」は文字通りテストの大きさを小さくします。E2Eテストだとシナリオによっては長くなりがちですが、可能な限り短くしましょう。たとえば、毎回ユーザデータをE2E経由で作成するのではなく、API経由でワンステップでユーザ作成してテスト実行すれば、クリーンなユーザで毎回テストできます。

実行時間は、長くても5〜10分以内に終わるのが良いでしょう。たとえば、30分のテストがあって、29分目でテストが失敗した場合、また29分やり直すのは辛いはずです。短ければ短いほど、フィードバックサイクルも短くなります。長いシナリオは短くリファクタリングしましょう。

「独立した」テストによって、並列実行できるようになります。極端な例になりますが、1分かかっていたテストが1000件あれば、ひとりでやると1000分かかってしまいます。クラウドの恩恵によって、マシンを1000台並べれば1分で終わらせられます。

「観点がひとつ」も理想です。そうでなければ、テスト失敗時に、どの観点が成功して、どの観点が失敗したかを、毎回判断しなければなりません。

人間がやるテストのように、あっちもこっちも効率よく確認したくなるものです。しかし、機械は単純な小さな作業をたくさん並列に実行するのが得意です。可能な限り観点をひとつにしましょう。

ただし、シナリオによっては観点が複数あると便利なものもあります。たとえば、データの登録処理と削除処理は、お互いに依存する部分があるため、「データを登録してから、削除する」シナリオでもいいかもしれません。APIを使えるなら、「データ登録」と「APIでデータ作成して削除」の2シナリオでも素敵です。

続きを読むにはログインが必要です。
ご利用は無料ですので、ぜひご登録ください。

SHARE

  • facebook
  • twitter

SQRIPTER

藤原 大(ふじはら だい)

スーパーアジャイルコーチ、株式会社せかい 代表取締役

記事一覧

スーパーアジャイルコーチ、エンジニアリングマネージャ、『リーン開発の現場』の翻訳者のひとり。創造的、継続的、持続的なソフトウェア開発の実現に向けて奮闘中。週末に娘と息子とお昼寝しながら世界のビーチや離島を旅する夢を見る。

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST