viよりWord・ExcelのC言語演習

本日でC言語の研修が終了したので,そのまとめ.
言語的な仕様の研修を受けた後に行われた個人演習が厄介であった.

プログラマの工程を学習するということで
・PD(プログラムデザイン,もしくはDDデテールデザイン)
・M(マニファクチュア=コーディング)
・MCL(Mのチェックリスト)
・UT(ユニットテスト)+故障リスト
・RT(リリーステスト)+故障リスト

以上を行ったが,その半分以上はコードに直接関わるものではない
これらの内容について簡単に説明する.

[PD]
求められる機能と入出力I/Fが適宜されたドキュメントから
プログラムデザインをWordで作成する.

どのようなデータ構造なのか?
定数,グローバル変数はあるのか?
main関数の処理フローは?
ユーザ定義関数の処理フローは?

これらをコードに起こしやすく,また
日本語としても理解しやすいものが求められる.
作成後はチェックシートでセルフレビューを行い漏れがないか確認する.


[M]
PDに沿ってコーディングを行う.これはエディタを用いる.
コーディング規約に基づき,
適宜コメントを入れてPDとの整合性を確かめる.
作成後はチェックシートでセルフレビューを行い漏れがないか確認する.


[MCL]
UTのためのチェックリストを作成する.これはExcelを用いた.
全ての分岐や境界を網羅するテストを作成する.
いわゆるホワイトボックステスト.モジュール単位で行う.
正常系・準正常系・異常系に分類して
エラーハンドリングが出来ているか確かめる.
作成後はチェックシートでセルフレビューを行い漏れがないか確認する.


[UT]
MCLに基づいてドライバやスタブを用意してテストを行う.
パスできない項目は故障リストに記載する.
その時点で,コードを修正してバグを排除する.
全てバグがなくなるまで繰り返す.
ロジックに問題がある場合はPDも修正する.


[RT]
受け入れテスト.ブラックボックステスト的な内容.
各モジュールをくっつけて行う.
バグが発見された場合はUT同様の処理を行う.


これら全てを完了して終了となる.
研修では各工程で講師にレビューを受け,助言をもらう.

コーディングとテスト以外はドキュメント作成であるため
作業が進んでいないように感じるが,PDを作ることによって
スムーズにコーディングが進む.
また,細かなテストを実施することで品質を保証することができる.

重要なのはバグ取りのテストではなくて
要求を保証していることを示すためだとか.