黒柴の来歴 その5
テスト項目の作成方法を知る
通信システムの開発は2年半くらい続けて、それから公共系システムの開発にアサインされた
通信系の部署に在籍しながら、またしても通信系のシステムではないのだが、このころから徐々にPC(含むPCサーバ)+C言語という開発が増えてきていて、通信系部署のエンジニアはだいたいC言語の習得者だったこともあり、情報系のシステム開発にもどんどんアサインされていった
このシステムは、OS/2(Ver1.0)+Microsoft Cで開発されており、当時はようやくWindows3.Xがリリースされたころで、おそらくPC上で安定稼働するマルチタスクOSとして、OS/2が選ばれたのだと思う
ただ、このOS/2は16bit版で、すでに32bit版の開発が進んでいたことと、MicrosoftがOS/2からWindowsの開発に注力していたことから、仮に不具合があってもシステムのアップデートは望めないという話だった
特にMicrosoft C(16bit版)のサポートが終了しており、かつシステムが提供する関数(文字列の結合、分割、コピーなど)が、マルチタスク対応していないし、対応する予定もないということで、スレッドセーフなシステム関数を共通処理として作成するというのが、自分のチームの仕事だった
この共通処理の開発を行う上で、テスト(関数のテストなので、単体テストとなる)の実施について、そのときのボス(プロジェクトリーダーではなく、所属グループのマネージャ)から始めて説明をされる
内容としては、ホワイトボックスの構造ベーステストを行うというもので、関数内の分岐のTHEN、ELSE、繰り返しの回数制御などをきちんと通過するように、テストデータとしてのパラメータを設定して、関数を動作し動きを確認するというものだった
ただし、「ホワイトボックス(テスト)」とか、「構造ベーステスト」とかのテストに関する用語は一切なく、「(単体)テストはこうやるんだ」という説明だった
自分にとっては、初めてテストの技法を説明してもらったことや、これ以降に他の技法について説明を受けたことがないので、しばらくこの技法でテストすることが続いた
分岐やループの条件の数を調べれば、テストの項目数が概算レベルで取得できそうだったので、そんなツールも作ってみたりもした
ただし、これはあくまでも「単体テスト」としての項目作成の考え方であって、「結合テスト」や「総合テスト」でどのように項目作成を行うか?ということについては、まだ誰も何も言ってくれなかったし、書籍などを読んでも納得がいく説明を得ることは出来なかった
この記事が気に入ったらサポートをしてみませんか?