鶴保 征城、駒谷 昇一 (著)「ずっと受けたかったソフトウェアエンジニアリングの授業2」を、
週末のお出かけの電車内で読みました。
本書「パート2」の方は、内部設計からプログラミングと、テストの手法について解説する内容で、
後半は、プロジェクトマネジメントと、ソフトウェア業界のITスキル標準についての重要性を説いた内容が続きます。
企業内でのソフトウェアの開発経験のない私としては、
大規模ソフトウェア開発の場合のテスト工程の解説が勉強になったので、まとめておくことにします。
テスト工程の進め方
- テスト工程では、「結合テスト」と「総合テスト」を行う。
- 結合テストでは、単体テストが終了しているモジュール同士を組み合わせ、
外部設計書で定義されている機能が実現できているかどうかを確認する。 - 総合テストでは、システム提案書や外部設計で定義された、性能、障害回復機能、過負荷時のふるまいなどが、当初の設計通りであるかどうかを確認する。
結合テストの作業項目
- テスト計画書の作成
- テストスケジュール、テスト体制、テスト手順
- テスト環境の準備
- テスト用マシン、実マシン 、疑似呼発生装置など
- テスト項目の作成
- スタブ、ドライバの作成
- テストの実施
- パグの除去、バグの分析
結合テストの2つの手法「トップダウンテストとボトムアップテスト」
- トップダウンテストでは、最上位モジュールから結合テストを行う。
- この場合、下位モジュールの疑似的な動きをするためのスタブを用意する
- ボトムアップテストでは、最下位モジュールから結合テストを行う。
- この場合、上位モジュールの擬似的な動きをするためのドライバを用意する。
総合テストの実施項目
- ストレステスト
- 過負荷状態におけるシステムのふるまいを確認
- 性能テスト
- 反応時間や処理速度が規定内かどうか
- 回復テスト
- 障害が発生した場合の回復機能の動作確認
- 操作テスト
- オペレーターの誤操作に対するふるまいや、操作マニュアルの通りに実施ができるかどうかの確認
品質保証の方法/バグの数量に関する分析
- テスト工程で見つかったバグの数量を計測し、システムの品質を予測する
- 通常は、テストか進むに従ってバグの発生が減少し、累積バグ数は成長曲線を描く。
この曲線の状況を見て、品質が高まってきたかどうかを判定する - 累積関数の曲線を成長曲線に当てはめることで、推測値、すなわち総バグ数と残存バグ数を予測することができる。当てはめる成長曲線としては、ゴンペルツ曲線やロジスティック曲線を用いる。
おわりに
後半、プロジェクトマネジメントおよびソフトウェア産業の課題についての章で、
モダンプロジェクトマネジメントの知識を問う、PMP(Project Management Professional)試験や、
経済産業省策定のITスキル標準の定着の重要性について解説がなされています。
こういった資格試験や基準の策定は、なぜ成されたのか、その狙いは何か、は十分に理解できるんです。
若干資格マニア入っている私が言うのもおかしいのですが、
「当社ではマネジメント能力の評価基準としてPMP取得の有無を使用します」なら、
ある意味全員に公平で納得もできると思うのですが、
「マネジメント能力の評価基準となるものがPMPです。」と言われると、
「他の方法もあるんじゃないのですか」とか、へりくつを言いたくなってしまうのですよね。
これはITに関わらず、英語力でもしかり「当社では英語力の評価をTOEICで行います」は納得で、
「英語力の判定にはTOEICが望ましい」と言われると、
そうですかねえと、つべこべ言いたくなってしまうという。
基準っていうものは、どうあるべきものかと改めて考えながら、後半部分を読みました。
本書、3H程度で読了。