編集部からのお知らせ
解説集:台頭するロボット市場のいま
解説集:データ活用で考えるデータの選び方
ソフトウェア開発パラダイムの進化

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

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

2017-05-10 16:00

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

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

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

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

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

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

開発者とテスターの違い

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

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

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

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

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

Special PR

特集

CIO

セキュリティ

スペシャル

ホワイトペーパー

新着

ランキング

  1. クラウドコンピューティング

    AI導入に立ちはだかる「データ」「複雑さ」「コスト」「人材」の壁をどう乗り切ればいいのか?

  2. クラウドコンピューティング

    【IDC調査】2026年には75%のアプリがAIを実装!導入で遅れた企業はどう“逆転”すべきか?

  3. 運用管理

    経産省調査で明らかに:未だにレガシーシステムを抱える企業が8割!オープン化でよくある課題とは?

  4. 運用管理

    AWS東京リージョンの大規模障害に学ぶ、パブリッククラウド上のシステムの迅速な復旧方法

  5. windows-server

    【ユースケース】ソフトウェア開発にDell EMCインフラ+コンテナを使うメリット

NEWSLETTERS

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

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

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