ローコードテスト自動化ツール T-DASH

テスト自動化って誰がやるの?エンジニアのタイプ別に考えてみよう

近年のソフト開発における大規模化・複雑化そして短納期化、さらにはIT人材の確保の難しさといった観点から、テストの自動化を検討される方も多いのではないでしょうか。弊社でも“テスト自動化を始めたいがどうすればよいか?”といったご相談を受ける機会が増えてまいりました。本記事ではテスト自動化を進める場合、“誰が”テスト自動化を推進するのかを中心にエンジニアのタイプ別に整理してみました。それぞれのメリット・デメリットを中心にご紹介をさせて頂きます。

テスト自動化の効果と課題

本記事を進めていくにあたり、改めテスト自動化の期待される効果と課題について簡単にご紹介したいと思います。

【テスト自動化で期待される効果】

  1. 繰り返しの実行による工数および実行コストの削減
  2. 正確な実施

テスト自動化を導入するにあたり、ほとんどの方が工数やコストの削減が動機になると思います。

繰り返し同じテストを行う場合や、同じテストシナリオで投入するデータのパターンが多岐に渡る場合に、テスト自動化は高い効果を発揮します。

もう一つの一般的な効果として、テストの正確性もあげられます。人間がテスト実行を行う場合、どうしてもミスをする可能性があります。しかしツールを利用し自動実行する場合は、人間と比較し正確なテストが期待できます。

そのほかにも自動化で期待できる効果はありますが、本記事では割愛させて頂きます。

次にテスト自動化における課題についても記載致します。

【テスト自動化の課題】

  1. 自動化スクリプトの作成に工数を要する
  2. スクリプト作成後も保守が必要
  3. ツールによっては開発スキルが必要

課題として一番多くあげられるのが、テスト自動化を行うためのスクリプトの作成工数です。テスト自動化を行うためには自動化スクリプトを作成する必要があります。必要な工数は利用するツールにより異なりますが、テスト実行を行うよりは当然多くの工数を要します。また、自動化スクリプトを作成し動作を確認した段階でテストと同様の作業を行っており、ある意味においては作業の重複にもなります。

意外と考慮から抜けがちですが、テスト自動化では作成された自動化スクリプトの保守も必要となります。対象のソフトウェアに変更が入った際に、既存の自動化スクリプトでは実行できなくなる事象は多々発生します。

また、テストの自動化スクリプトだけでなく、テストケースも併せて保守を行わなければ自動化スクリプトのテストの目的が分からなくなります。場合によっては担当者の入れ替わりと共に使われなくなってしまいます。

自動化スクリプトの作成にあたり、多くのテスト自動化ツールでは開発と同じようなプログラミングの能力を必要とします。テストの携わっている人なら誰でも実行できるという訳ではありません。ツールによってはローコードでの作成が可能なツールもあります。しかし初期費用に数十万円以上が必要な場合や、月額でライセンス毎に数万円を要するツールがほとんどです。

ここまではテスト自動化の効果と課題について記載致しました。

次に自動化を進めるにあたりどのタイプのエンジニアが、どの様な特性が期待でき、何が苦手かを、エンジニアのタイプ別にご紹介していきたいと思います。

なお、本記事では、エンジニアのタイプを3タイプに分けてご紹介いたします。

① テスト自動化エンジニア 

② 開発エンジニア 

③テストエンジニア

他にも保守やPMといった職種もありますが、本記事では上記の3タイプに絞ってご紹介をさせて頂きます。テスト自動化は誰がやるのがよくて、得手不得手はどんなポイントがあるのでしょう?

誰がやるの?タイプ1)テスト自動化エンジニア

専任のテスト自動化エンジニアのアサインは、それなりの開発規模があると推察されます。テスト自動化を推進するにあたり、当然ですが専任者がいることは最適な組織と言えます。

【テスト自動化エンジニアが行うメリット】

テスト自動化エンジニアが推進するメリットは当然ながらその専門性となります。またテスト自動化に対する高いモチベーションが想定でき、エンジニアとして自己学習を行う際も、その興味はテスト自動化に向くことでスキルの向上が期待できます。

テスト自動化を専業で行うため、組織内のテスト自動化全般について把握し易いでしょう。課題の一つであるスクリプト作成後の保守・メンテナンスについても、効率的な実行が期待できます。

【テスト自動化エンジニアが行うデメリット】

デメリットというよりは制約ですが、テスト自動化の専任のため、定常的にテスト自動化のニーズが組織内にあることが前提となります。また、ツールによっては開発寄りの業務が中心となりますので、定期的なソフトウェアテストに関する教育の実施も重要になります。

【ツールの選択】

専任となるテスト自動化エンジニアのバックボーンにも寄りますが、選択肢としては無償ツールであるSeleniumや有償ツールまで幅広く選択できます。

誰がやるの?タイプ2)開発エンジニア

テスト自動化を進めるにあたり、開発エンジニア・開発者を中心に行う場合について記載していきます。

【開発者が行うメリット】

開発者がテスト自動化行う最も大きなメリットは、当然ながらその開発スキルになります。Seleniumの様なプログラミングスキルが必要な無償ツールでも、十分に自動化スクリプトを作成できる能力を持っている可能性が高いと言えるでしょう。他のタイプのエンジニアよりも、比較的短い工数でスクリプトの作成が期待できます。

【開発者が行うデメリット】

開発スキルを持つ開発者ですが、デメリットもいくつかあります。一番大きなデメリットは、テスト自動化では自動化スクリプトを作成する前に、要件定義や仕様書/設計書・ユースケースよりテストシナリオやテストケースを作成しなければならないことです。その際のスキルがテストエンジニアと比較すると不足する傾向があり、効率的なテストケースの作成やその後の保守に課題が発生する可能性もあります。

また開発者は対象システムについて部分的には詳しいですが、テスト対象全体の概要の把握は乏しい可能性があります。そしてアサインが長期間に渡る場合は、開発に戻りたいといった本人の志望への考慮も必要となります。

【ツールの選択】

開発者が推進する場合は、状況に応じたフリーツールの使い分けができますので、フリーツールも選択肢の上位に含めることができます。もちろん有償ツールでもカスタマイズが可能なツールは多いので、そういった中でプログラミングスキルを発揮しより効率的なツールの利用も可能です。

誰がやるの?タイプ3)テストエンジニア

最後のご紹介はテストエンジニアが行う場合です。

【テストエンジニアが行うメリット】

テストエンジニアがテスト自動化を行う最大のメリットは、やはりテストシナリオやテストケース作成にテスト設計能力の高さやその後のメンテナンスです。日頃よりテストケースの作成や管理に慣れ親しんでいるため、無駄な自動化スクリプトの作成や効率的なシナリオの作成に貢献が期待できます。

また、システムテストや受入れテストを担当しているテストエンジニアはシステムの全体への理解度も期待ができます。

【テストエンジニアが行うデメリット】

一概には言えませんが、一般的にはテストエンジニアは開発エンジニアと比較すると、プログラミングスキルが低い傾向にあります。そのため、テスト自動化ツールを選択する際、プログラミング能力を必要とするツールの選択が難しくなります。

また有償ツールの中でも定型の動作以外では、プログラミングスキルが必要な場合があります。最低でも開発エンジニアのサポートを受けられる体制が必要となります。

【ツールの選択】

フリーツールと比較すると使い勝手がよく、導入のハードルの低い有償ツールが推奨されます。初期費用やライセンス料は掛かりますが、トータルの費用対効果で考えますと有償ツールの方が上回ることが予想されます。

まとめ

ここまで“テスト自動化は誰がやるべきか”に焦点を当て、それぞれのエンジニアのタイプ別にメリット・デメリットをご紹介させて頂きました。

お気付きかもしれませんが、開発エンジニアなら開発エンジニアだけでチームを編成するより、開発エンジニアとテストエンジニアを混ぜ、それぞれの特性を活かせる体制にするのが一番テスト自動化の効率をあげることができます。

上手く混ぜて編成が出来ない場合や、まずは1名よりスタートする場合は、本記事の内容を参考に組織として何をサポートしていけばよいかの参考にして頂ければ幸いです。 誰でもカンタンにテスト自動化ができる時代は、すぐそこまできています。当サイトでは、テスト自動化ツールに興味のある方へ、「テスト自動化 推進ガイドブック」と「テスト自動化ツールT-DASH 基本ガイドブック」のダウンロード資料をご用意しております。ぜひダウンロードいただき、資料をご覧ください。