あるプロジェクトマネジャーの“つぶやき”【第4回】
退屈な(?)テスト工程を楽しく乗り切る方法
開発中のシステムの不具合を発見し、品質確保のために重要なテスト工程。しかし、テストケースを消化する作業を退屈だと感じるメンバーもいることだろう。プロジェクトマネジャーが彼らにしてあげられることとは?
「これまでのシステム開発経験の中で一度も不具合を出したことがない」と言い切れる人は、まずいないでしょう。かくいうわたしも、大小さまざまな不具合を出した経験があります。今回は「システム開発における不具合とテストの重要性」について考えてみたいと思います。
膨れ続けるシステムに立ち向かうために
ある程度の規模を持ち、他システムとの連携が必要なシステムでは、その特性に応じて違いはあるものの、その規模に相応する「システムの複雑さ」を有することになります。また「業務システムが新規開発時の状態のままで運用が継続される」ことはあまり考えられません。度重なるシステム拡張や機能追加を繰り返すことで、多くのシステムが複雑化し、肥大化していきます。例えば、長期間稼働し続けている既存システムに対して機能追加や仕様変更を行う場合には「開発当時のメンバーがいない」「仕様書や資料が古すぎる」という問題が起こることもあるでしょう。
このような状況で「1つの不具合も出さずにシステム開発を完了させる」ことは至難の業のように思います。たった1つの不具合が起こっても、それにより多くのユーザーに迷惑をかけてしまうかもしれません。また、不具合が引き金となり、さらなる障害を引き起こす可能性も考えられます。当然、意図的に不具合を発生させるような開発者はいませんので、あらかじめ分かっている不具合は存在しません。また、「どのような不具合が発生するか」は実際に起こってみないと分からないことが多いでしょう。
それでも、わたしたちシステム開発者は、たとえ何十万ステップからなり、複数のサブシステムが連携するようなシステムであっても「不具合のない状態を目指して」リリースを行わなければなりません。
ここでいう不具合がない状態とは「そのシステムの品質が良い」ことを指し、品質とは「品質モデルにおける信頼性が高い」ことを意味します(※)。それでは、どのようにしてこの品質を確保するのでしょうか?
それは、やはり「テスト」にほかなりません。
※ JISX0129-1「ソフトウェア製品の品質―第1部:品質モデル」より。
テスト工程を軽んじることなかれ
多くのテストを実施することで、実際の運用に耐え得る品質を確保します。皆さんは、テスト工数に開発全体の何割程度を割り当てていますか? わたしの経験ですが、やはり「テスト工程は全体の50%以上の工数が掛かる」と感じています。もちろん、常にそうなることではありませんが、ある程度の規模のシステム開発を実施すると、やはり50%以上の工数が必要になると思います。皆さんも感じているかもしれませんが、「テスト工程とは、開発案件の中で多くの時間を費やし、かつ品質を決定する重要な工程だ」といえるでしょう。
多くの人が重要だと認識しているテスト工程ですが、プロジェクトメンバーによっては「大変で退屈な作業だ」と思われるかもしれません。例えば、テストによっては「画面への打ち込みをひたすら繰り返す作業」がその工程の多くを占める場合があります。その際には最も長く作業時間を取られたりします。
「システム開発を行う上で、どの工程が一番好きですか?」とシステム開発者に尋ねると、多くの方が「実装」だと答えるのではないでしょうか? あくまでわたしの経験上の話ですが、「システムの設計や要件定義を担当したい」という要望はあっても、「テストを積極的にやりたい」というメンバーはこれまでいませんでした。
わたし自身もそうですが、テスト関連の技術やノウハウについて詳しいシステムエンジニアやプログラマーは少ないような気がします。皆さんの周りではいかがでしょうか? 例えば、ある機能に対するテスト仕様書を有効かつ理論的に設計できる人がどれだけいるでしょうか。わたしは、「テスト設計技術に興味や関心を持っている人があまり多くはない」ことがその理由のように感じます。
しかし、正しい理論・視点に基づいた効果のあるテスト仕様書を作成しなければ、不具合が発生する確率が高くなるのは、皆さんも肌で感じていることだと思います。また、効率的な仕様書であれば、テスト工数を短くすることができます。作業時間が短ければそれだけメンバーのモチベーションも高く維持できるでしょう。
モチベーションの低下が招くリスクを考える
わたしは「テスト工程を効果的に進めるためには、メンバーのモチベーションに気を付けるべきだ」と思います。テスト項目やテスト仕様書の作成を終え、実際にテストを実施する際にメンバーのモチベーションが時間とともに低下することが多いと感じています。この状態のままテストを進めていくと、テスト実施者は自身が入力した内容や結果に自信を持てなくなることもあります。例えば、以下のようなケースが考えられます。
- テスト仕様書にあるテストケースを実施したら、その判定結果がNGになった
- 同一の入力内容で再度テストしたら、今度はエラーにならずに処理が進んだため、このケースは問題なしと判断した
このケースではテストを再実施した際に、テスト対象プログラムの実行環境に何らかの変化があった可能性が高く、その判断結果は不具合を発生させることにもつながりかねません。また、実施したテストケースでは発見されない隠れた不具合が存在する可能性も否定できません。実施者のモチベーションが高ければ、「なぜ1回目がNGだったのか」についての調査を行うでしょう。しかし、モチベーションが低下しているときはどうでしょうか? テストケース上では「OK」となったので「試験結果も問題なし」としてしまうかもしれません。
人が長時間作業を続ければ、時間の経過とともにモチベーションが低下するのは、当たり前のことです。プロジェクトマネジャーであるわたしは、そうしたメンバーを単純に責めることはできないと考えます。「疲れるとミスをしやすくなる」ことを念頭に置いて適切に休憩を取るメンバーもいますが、中にはそれがうまくできない人もいます。
テスト工程を楽しく乗り切ってもらうために
プロジェクトマネジャーの役割として重要なこととは「テスト工程の進ちょく状況や結果もさることながら、テストを実施するメンバーがどのような状態で作業しているのかについて気を使うことだ」と思います。そのために、わたしが行っていることをここで紹介します。
まめに進ちょくを聞く
特に何をするということもないのですが、メンバーからすれば状況を聞いてもらうだけでも安心感が生まれて、余裕ができると思います。その場合は「調子はどう?」と軽く声を掛けるだけでもよいでしょう。こちらがかしこまって尋ねるわけではない点がポイントで、その聞き方にも工夫が必要です。
別案件のタスクもお願いする
作業内容を変えることで、気持ちを切り替えることができます。気分を切り替えたくても、タスクがテストだけしかなければ、もちろんそれは不可能です。プロジェクトマネジャーがテスト以外の作業を割り振り、そのやり方をメンバー自身がやりやすいように任せてみましょう。これによって、メンバー自身のタイミングでリフレッシュすることができるのではないでしょうか。
案件によってはメンバーも異なるのが一般だと思いますので、上記の方法が参考にならない場合もあるでしょう。しかし、これらの方法を実施する目的は「テスト実施者のモチベーションを管理することで、より多くの不具合を発見し、システム品質を確保することにつなげること」にもあります。当たり前のことだと思われるかもしれませんが、カットオーバーが近づくとついつい忘れがちだと思います。この場で、あらためて思い返していただければ幸いです。
テストに対する意識変革を
「テストというものはやればやるほど、そのシステムが不完全であることを立証するジレンマを抱えている」ともいえるかもしれません。システム開発者にとって「どこまでをテスト範囲とすればよいのか」は、今後もずっと付きまとう難問です。このような状況で適切な判断を下すためには、その根拠となるような知識を身に付けていく必要があると思います。また、多くの開発者がテスト工程に興味を持ち、正しい知識を習得すれば、一見退屈だと感じていたテスト工程に対する意識も変化するのではないでしょうか。
わたしが担当するコラムは今回が最終回となります。ご拝読ありがとうございました。プロジェクトマネジャーの方にとって、何かしらの共感や参考になったというものがあれば幸いです。
<筆者紹介>
小崎敬介(こさき けいすけ)
カブドットコム証券株式会社 事務・システム本部システム部開発課
2005年カブドットコム証券株式会入社。広島県出身。オンライン証券取引システムの設計開発運用業務に従事。主に発注系システムを担当する。座右の銘は、「『負けました』と言って頭を下げるのが正しい投了の仕方」(棋士:谷川浩司)。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
9
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー