ソフトウェア開発パラダイムの進化

ソフトウェア開発におけるソフトウェアテスト(2)--開発者とテスターの違い

Atif Memon(メリーランド大学博士)

2017-05-10 16:00

ソフトウェア開発パラダイムの進化に伴い、ソフトウェアプロセスも進化した。そして、今日のコモディティ化されたソフトウェアには、アジャイルプロセスが非常に適している――メリーランド大学カレッジパーク校 コンピューターサイエンスの教授を務めるAtif Memon氏はこう話す。日本では、ビッグツリーテクノロジー&コンサルティング(BTC)と共同研究しているMemon氏に、ソフトウェア開発とテストについて寄稿してもらう。今回は1回目に続く2回目。

 今日の継続的インテグレーション(CI)システムでは、ソフトウェアテストが中心的な役割を果たしているので、「どこからテストケースを作成するか」という疑問に回答することは重要です。つまり、各テストケースの作成者を割り当てることです。

 この疑問への回答は、各テストケースがソフトウェア開発プロセス全体にうまく当てはまり、ソフトウェアの特定の機能をテストするように正確に作成され、ソフトウェア開発のさまざまなフェーズで役立つ必要があるために重要です。

 10年、20年前には、「開発者」と「テスター」の間には明白な違いがありました。開発者はソフトウェアのコードを書き、そのテストを手動で行ない、場合によってはテストケースを作成、コード化、文書化する責任を持つ専門のテスターに送付したものです。能力があるソフトウェア開発者は不足していたので、この役割区分は、労働力不足の一時的な間に合わせ措置としてうまく機能していました。

 有能で費用がかかる開発者は、貴重な時間をテストに取られることなく、顧客を満足させるために安定したペースでコードへ新機能を追加することに注力していました。「テスター」は、通常はそれほど能力あるプログラマではなく、費用も割安で、マネージメントからは、当時の認識では「あまり技術でない仕事」をするのに向いていると思われていました。

 テスターは(コンピューターサイエンス以外の)さまざまな分野出身で、手動でテストするためにテスターとしてトレーニングを受けていました。十分なスキルを身につけると、テストケースを文書化し、その実行を自動化する場合もありました。

開発者とテスターの違い

 開発者とテスターの違いは、次に述べる3つの要因により、ゆっくりとなくなってきています。第1に、ソフトウェア品質の重要性が広く理解され、もはやこの仕事を能力のないテスターにアウトソースできなくなりました。

 第二に、より能力のあるコンピュータサイエンティストがソフトウェアテストに加わるようになり、コード開発者のメンタルモデル、そしてコード開発と上手なテスト開発の間で起こる微妙な関係をより理解できるようになりました。

 例えば、Javaで単独のメソッドをコーディングしている開発者は、そのメソッドの実行、さまざまなエラーコードを返すメソッドの原因となる可能性がある例外条件、そしてコードの他の部分との相互作用を一番理解する能力があります。従って、この開発者は、メソッドのコーディング時に、テストし、そのテストケースをコード化し、文書化するために適任です。

 開発者とテスターとの役割間の差異についての議論は、それぞれの役割に帰属するテストケースの異なる種類を考慮しなければ不完全です。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    生成 AI を活用した革新的な事例 56 選 課題と解決方法を一挙紹介

  2. ビジネスアプリケーション

    業務マニュアル作成の課題を一気に解決へ─AIが実現する確認と修正だけで完了する新たなアプローチ

  3. ビジネスアプリケーション

    生成 AI の可能性を最大限に引き出すためにできること—AI インフラストラクチャの戦略ガイド

  4. ビジネスアプリケーション

    調査結果が示す「生成 AI 」活用によるソフトウェア開発の現状、ツール選定のポイントも解説

  5. ビジネスアプリケーション

    ITSMに取り組むすべての人へ、概要からツールによる実践まで解説、「ITSMクイックスタートガイド」

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]