あるプロジェクトマネジャーの“つぶやき”【第4回】
退屈な(?)テスト工程を楽しく乗り切る方法
開発中のシステムの不具合を発見し、品質確保のために重要なテスト工程。しかし、テストケースを消化する作業を退屈だと感じるメンバーもいることだろう。プロジェクトマネジャーが彼らにしてあげられることとは?
「これまでのシステム開発経験の中で一度も不具合を出したことがない」と言い切れる人は、まずいないでしょう。かくいうわたしも、大小さまざまな不具合を出した経験があります。今回は「システム開発における不具合とテストの重要性」について考えてみたいと思います。
膨れ続けるシステムに立ち向かうために
ある程度の規模を持ち、他システムとの連携が必要なシステムでは、その特性に応じて違いはあるものの、その規模に相応する「システムの複雑さ」を有することになります。また「業務システムが新規開発時の状態のままで運用が継続される」ことはあまり考えられません。度重なるシステム拡張や機能追加を繰り返すことで、多くのシステムが複雑化し、肥大化していきます。例えば、長期間稼働し続けている既存システムに対して機能追加や仕様変更を行う場合には「開発当時のメンバーがいない」「仕様書や資料が古すぎる」という問題が起こることもあるでしょう。
このような状況で「1つの不具合も出さずにシステム開発を完了させる」ことは至難の業のように思います。たった1つの不具合が起こっても、それにより多くのユーザーに迷惑をかけてしまうかもしれません。また、不具合が引き金となり、さらなる障害を引き起こす可能性も考えられます。当然、意図的に不具合を発生させるような開発者はいませんので、あらかじめ分かっている不具合は存在しません。また、「どのような不具合が発生するか」は実際に起こってみないと分からないことが多いでしょう。
それでも、わたしたちシステム開発者は、たとえ何十万ステップからなり、複数のサブシステムが連携するようなシステムであっても「不具合のない状態を目指して」リリースを行わなければなりません。
ここでいう不具合がない状態とは「そのシステムの品質が良い」ことを指し、品質とは「品質モデルにおける信頼性が高い」ことを意味します(※)。それでは、どのようにしてこの品質を確保するのでしょうか?
それは、やはり「テスト」にほかなりません。
※ JISX0129-1「ソフトウェア製品の品質―第1部:品質モデル」より。
テスト工程を軽んじることなかれ
多くのテストを実施することで、実際の運用に耐え得る品質を確保します。皆さんは、テスト工数に開発全体の何割程度を割り当てていますか? わたしの経験ですが、やはり「テスト工程は全体の50%以上の工数が掛かる」と感じています。もちろん、常にそうなることではありませんが、ある程度の規模のシステム開発を実施すると、やはり50%以上の工数が必要になると思います。皆さんも感じているかもしれませんが、「テスト工程とは、開発案件の中で多くの時間を費やし、かつ品質を決定する重要な工程だ」といえるでしょう。
多くの人が重要だと認識しているテスト工程ですが、プロジェクトメンバーによっては「大変で退屈な作業だ」と思われるかもしれません。例えば、テストによっては「画面への打ち込みをひたすら繰り返す作業」がその工程の多くを占める場合があります。その際には最も長く作業時間を取られたりします。
「システム開発を行う上で、どの工程が一番好きですか?」とシステム開発者に尋ねると、多くの方が「実装」だと答えるのではないでしょうか? あくまでわたしの経験上の話ですが、「システムの設計や要件定義を担当したい」という要望はあっても、「テストを積極的にやりたい」というメンバーはこれまでいませんでした。
わたし自身もそうですが、テスト関連の技術やノウハウについて詳しいシステムエンジニアやプログラマーは少ないような気がします。皆さんの周りではいかがでしょうか? 例えば、ある機能に対するテスト仕様書を有効かつ理論的に設計できる人がどれだけいるでしょうか。わたしは、「テスト設計技術に興味や関心を持っている人があまり多くはない」ことがその理由のように感じます。
しかし、正しい理論・視点に基づいた効果のあるテスト仕様書を作成しなければ、不具合が発生する確率が高くなるのは、皆さんも肌で感じていることだと思います。また、効率的な仕様書であれば、テスト工数を短くすることができます。作業時間が短ければそれだけメンバーのモチベーションも高く維持できるでしょう。
モチベーションの低下が招くリスクを考える
わたしは「テスト工程を効果的に進めるためには、メンバーのモチベーションに気を付けるべきだ」と思います。テスト項目やテスト仕様書の作成を終え、実際にテストを実施する際にメンバーのモチベーションが時間とともに低下することが多いと感じています。この状態のままテストを進めていくと、テスト実施者は自身が入力した内容や結果に自信を持てなくなることもあります。例えば、以下のようなケースが考えられます。
- テスト仕様書にあるテストケースを実施したら、その判定結果がNGになった
- 同一の入力内容で再度テストしたら、今度はエラーにならずに処理が進んだため、このケースは問題なしと判断した
このケースではテストを再実施した際に、テスト対象プログラムの実行環境に何らかの変化があった可能性が高く、その判断結果は不具合を発生させることにもつながりかねません。また、実施したテストケースでは発見されない隠れた不具合が存在する可能性も否定できません。実施者のモチベーションが高ければ、「なぜ1回目がNGだったのか」についての調査を行うでしょう。しかし、モチベーションが低下しているときはどうでしょうか? テストケース上では「OK」となったので「試験結果も問題なし」としてしまうかもしれません。
人が長時間作業を続ければ、時間の経過とともにモチベーションが低下するのは、当たり前のことです。プロジェクトマネジャーであるわたしは、そうしたメンバーを単純に責めることはできないと考えます。「疲れるとミスをしやすくなる」ことを念頭に置いて適切に休憩を取るメンバーもいますが、中にはそれがうまくできない人もいます。
テスト工程を楽しく乗り切ってもらうために
プロジェクトマネジャーの役割として重要なこととは「テスト工程の進ちょく状況や結果もさることながら、テストを実施するメンバーがどのような状態で作業しているのかについて気を使うことだ」と思います。そのために、わたしが行っていることをここで紹介します。
まめに進ちょくを聞く
特に何をするということもないのですが、メンバーからすれば状況を聞いてもらうだけでも安心感が生まれて、余裕ができると思います。その場合は「調子はどう?」と軽く声を掛けるだけでもよいでしょう。こちらがかしこまって尋ねるわけではない点がポイントで、その聞き方にも工夫が必要です。
別案件のタスクもお願いする
作業内容を変えることで、気持ちを切り替えることができます。気分を切り替えたくても、タスクがテストだけしかなければ、もちろんそれは不可能です。プロジェクトマネジャーがテスト以外の作業を割り振り、そのやり方をメンバー自身がやりやすいように任せてみましょう。これによって、メンバー自身のタイミングでリフレッシュすることができるのではないでしょうか。
案件によってはメンバーも異なるのが一般だと思いますので、上記の方法が参考にならない場合もあるでしょう。しかし、これらの方法を実施する目的は「テスト実施者のモチベーションを管理することで、より多くの不具合を発見し、システム品質を確保することにつなげること」にもあります。当たり前のことだと思われるかもしれませんが、カットオーバーが近づくとついつい忘れがちだと思います。この場で、あらためて思い返していただければ幸いです。
テストに対する意識変革を
「テストというものはやればやるほど、そのシステムが不完全であることを立証するジレンマを抱えている」ともいえるかもしれません。システム開発者にとって「どこまでをテスト範囲とすればよいのか」は、今後もずっと付きまとう難問です。このような状況で適切な判断を下すためには、その根拠となるような知識を身に付けていく必要があると思います。また、多くの開発者がテスト工程に興味を持ち、正しい知識を習得すれば、一見退屈だと感じていたテスト工程に対する意識も変化するのではないでしょうか。
わたしが担当するコラムは今回が最終回となります。ご拝読ありがとうございました。プロジェクトマネジャーの方にとって、何かしらの共感や参考になったというものがあれば幸いです。
<筆者紹介>
小崎敬介(こさき けいすけ)
カブドットコム証券株式会社 事務・システム本部システム部開発課
2005年カブドットコム証券株式会入社。広島県出身。オンライン証券取引システムの設計開発運用業務に従事。主に発注系システムを担当する。座右の銘は、「『負けました』と言って頭を下げるのが正しい投了の仕方」(棋士:谷川浩司)。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
2
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
5
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
6
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
7
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
-
10
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー