2023年04月24日
プログラムの開発状況と今後の予定 [プログラム研究室]
こんにちは!
ナビゲータのEVEです。
Prototype EVEのDB関連関数の完成が近づいています。ただ、それで作業が終わりというわけではありません。同修正作業完了後、夜間バッチ用のDB関連関数に加え、DB関連関数以外の関数でもデータベースを直接参照しているものがあります。完成後には、これらの関数を修正する必要があります。
夜間バッチ用のDB関連関数は、ある理由があってプログラムを分けていますが、通常のDB関連関数とほぼ同じロジックなので、同修正を完了しデバック完了後一気に修正できそうです。しかし、問題はDB関連関数以外の関数です。今日の調査では、下記の通りの状況です。
Select文:27ファイル、359箇所
Insert文:5ファイル、21箇所
Update文:4ファイル、7箇所
Delete文:4ファイル、8箇所
これらの情報は、各コマンドの先頭文字(例えば、select文なら"select")を検索ツールで検索した結果です。予想以上に多い結果となりました。記憶している限り、複雑なロジックを使用しているわけではありませんが、少し心配です。
[関数の修正方針]
以上のプログラムでもDB関連関数同様に、とりあえずPHP8で動作するように修正を優先します。そのすべての修正が終わった段階で、ビックバンテストを実施します。ビックバンテストとは、ChatGPTに聞くと以下のような試験方法だと解答がありました。
ビッグバンテストは、別名で「一斉テスト」、「一斉結合テスト」とも呼ばれる結合テストの実行方法の一つです。 単体テストが終了した複数のモジュールをすべて結合してテストを行います。 不具合が発生した箇所の特定が難しいデメリットがあることから、小規模だったり単純なシステムに適している手法であるといえます
ChatGPTがいうように、決して小規模だったり、単純なシステムではないのですが、すべてのロジックを把握しているので、今までPrototypeEVEは、机上デバック後、常にビックバンテストで実施してきました。それは、もしバグがあった場合、すぐに分かるようにロジック的、システム的に工夫していると言うことも理由としてあります。ただ、それ以前に、プログラム開発は好きなのですが、試験は好きではないのです。だから、できるだけ楽をしようといろいろ工夫をしています。
[他のユニットテスト]
他のユニットテスト方式としては、以下のようなテスト方法があります。
ホワイトボックステスト
プログラム開発本人が、実施する場合に行うことが多いです。網羅的にすべてのロジックを通過するようにテストデータを作り、予想通りの結果が得られることを確認します。
ブラックボックステスト
仕様書から、正常値テスト、限界値テスト、そして仕様書に全くないような想像できないデータを入力することにより、プログラムの挙動を確認します。
以上のテストについては、業務ですることありますが、Prototype EVEや、今後開発予定のEVEシステムでは実施する予定はありません。それは、[関数の修正方針]で説明したとおりで、今まで問題が発生していないからです。もし、問題等がありましたら、今後検討します。
[あとがき]
明日、DB関連関数のプログラム修正が終わるかもしれません。その後は、Select文の修正から順次行っていく予定です。4月中に全ての作業が終わることを望んでいますが、難しそうです。ただ、DB関連以外の関数で大きな問題が起きなければ、Prototype EVEシステムのフレームワークを使用してビッグバンテストを実行し、Xserver上でPrototype EVEを動作させて、システム開発を開始できると思われます。
では、また!
■Prototype EVE変更プログラム進捗状況
修正プログラム本数 20/26本(3本プログラム修正)
修正プログラムステップ数 1800/2233ステップ(451ステップのプログラム修正)
※EVEシステムへ新しいメソッド(テーブル一覧取得メソッド)を追加しました。
■テストの種類・方法(「経営と情報」に関する教材と意見)
http://www.kogures.com/hitoshi/webtext/kj2-test-kiso/index.html