試験プログラムから書き始めた経緯を記録する。
一番最初に書いたプログラムは、CASIOのプログラム電卓。
1 保存のための通信プログラムの試験
最初にプログラムを書いたPCは、TRS-80
記録媒体が300ボーのシリアル通信で磁気テープに記録するもの。
通信プログラムの試験をして、通信プログラムが正常に動作しないと、
せっかく作ったプログラムが消えてしまう。
そのため、通信プログラムの試験プログラムを書き、
通信プログラムを書いて、通信プログラムが機能することを確認してから、
動かしたいソフトウェアを書く。
他にも方法はあったかもしれない。
TRS-80のユーザ会を発端とする、名古屋のマイコン友の会に参加するようになったのは、
もう少し後からで、TRS-80の使い方をそんなに詳しく知らなかった。
2 どういうふうに機能するかの試験
BIOS(basic input output system)がどのように動作するのか、
プログラムにinterfaceだけではわからない。
そこで、まず、interfaceを試験するプログラムを書く。
3 どういう試験が最終的に必要か
納品時に、そういう試験が必要か、最終試験プログラムをまず書き始める。
納品する機能以外に、試験のための機能が必要かもしれない。
同じ構造で実現できるなら、一緒に設計したい。
4 対戦組み合わせプログラム
囲碁の対戦を決めるためのプログラムを書いた。
制約条件がいろいろあるため、最初に制約条件を満たしているかどうかを確かめるプログラムを先に書いた。
5 構造設計が楽に
最初に試験プログラムを書いておいて、設計を考えると、どういう設計がよいかが見通しやすい。
下記に試験プログラムから書き始めなかった際の失敗例を記した。
試験プログラムを書いておらず、いきあたりばったりにプログラムを書いて、迷路に入っていった。
失敗例
試験プログラムを先に書かなかったために失敗した例
ホストコンピュータのソースの端末での印刷試験プログラム
通信端末のエミュレータをPC-8801用をPC-9801用に書き換えた。
大学で電気系、情報系、化学系、金属系の研究室に十数箇所に配布し、
百人以上の教員、学生に利用してもらった。
1点不具合が残っていた。
ソースコードを端末で出力する際に、時々、1行おきに印刷する状態になってしまう。
改行コードのCRとLFがどちらも改行の機能を果たすだろうということは推測できた。
いつ、どこで、そういう状態になるかを調べきれなかった。
というか、自分の卒業研究のプログラム(Pade近似による連立微分方程式の解法)の
最適化で手一杯で、そっちを調べる時間がなかった。
最初から、印刷試験プログラムを書いておけばよかった。
連立微分方程式の解法の精度試験プログラム
倍精度で計算していた連立微分方程式の解法プログラムを四倍精度で、
すべての値の誤差評価をしようとした。計算をはじめて数日経っても終わらない。
そこで、どこまで計算したかを連絡できる機能を追加して走らせた。
計算終了まで3年かかることがわかった。
最初から、誤差評価プログラムを書いて、プログラムを書けばよかった。
連立微分方程式の解法の最適化試験プログラム
自分でプログラムの空間と時間の最適化を図ると、
コンパイラの最適化を適用すると、計算結果が適切なものにならなくなった。
最初に、最適化の仕方が妥当かどうかを確認できる試験プログラムを書いておけばよかった。
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.