【第十四章 開発】第八話 デバッグ

   2020/07/29

 電卓の開発は、順調に進んでいる。勉強会のメンバーの感覚では・・・。

 俺は、次の特別授業までにテスト項目を用意しておこうと思う。

 正常系は、それほど難しくはない。四則演算と余りが出るような計算だ。
 問題は、異常系のテストだ。

 テキストボックスに、値が入っていない時の処理が出来ているのか?
 テキストボックスに、数字以外が入っている時の処理が出来ているのか?
 テキストボックスに、数字で”2147483648”又は”9223372036854775808”と入力された時の処理が出来ているのか?
 テキストボックスに、数字で”4294967296”又は”18446744073709551616”と入力された時の処理が出来ているのか?
 テキストボックスに、数字で”-2147483649”又は”-9223372036854775809”と入力された時の処理が出来ているのか?

 割り算を指定された時に、数字2に”0”を入力された時の処理が出来ているのか?
 計算結果が、”2147483648”又は”9223372036854775808”を超えるような結果の処理が出来ているのか?
 計算結果が、”4294967296”又は”18446744073709551616”を超えるような結果の処理が出来ているのか?
 計算結果が、”-2147483649”又は”-9223372036854775809”を超えるような結果の処理が出来ているのか?
 割り算の計算結果が、割り切れないときに、表示の抑止が出来ているのか?小数点以下の表示が行えるのか?

 ひとまずは、こんな所だろう。
 ループも使っていないから、ループ中にプログラムを強制終了しても大丈夫なようになっているのかとか、設定ファイルを使っているようなら設定ファイルを外部のエディタでいじってもプログラムは強制終了しないかとか、いろいろあるが。今回の電卓ではこのくらいだろう。

 十分、意地悪な感じのテスト項目になっている。
 INTやLONGの上限値を超えるような数値を入力したときのテストをしておけとか、”どこの鬼畜だ”と言いたい。

 特別授業の当日。
 勉強会のメンバーの顔が徐々に変わっていく。皆が相談しながらデバッグを行っていた。

 開始時点で、皆が動くプログラムが出来ていると宣言した。

 俺が作ってきた、テストケースを渡す。
 問題がなかった物に、”◯”を付けて貰う。

 さて、この時間以内に、全部の項目を終えられる人が出てくるか・・・。

 結論。
 無理でした。電脳倶楽部の面々も参加したが、無理だった。

 特に、INTとLONGの問題は頭を悩ませていた。
 それほど難しい話でも無いのに、皆が真面目に考えすぎている。

「先輩。無理なのでは?」

「ん?簡単な方法があるけど、誰も気が付かない?」

「え?」

「テキストボックの入力を8桁にして、掛け算の時には、エラー判定をきつくすればいい。それと、もっと簡単な方法として、Try-catchをすればいいのでは?」

「え?エラー処理を行えと言われていたから・・・。ダメだと思っていました」

「Try-catchも立派なエラー処理だぞ?計算部分を囲んでしまって、適切なエラー処理をいれるだけで終わりになる」

「まぁそうですが」

 後輩を始め、電脳倶楽部の面々は釈然としない雰囲気を出している。

「例えば、入力した瞬間に、数字以外を弾くような処理をいれるのなら、Try-catchは向かない。でも、計算結果のエラー処理を行うのなら問題はない」

「はい」

 後輩も納得してくれて、修正を始めた。
 その後、時間を延長してデバッグ作業を行った。

「篠崎!ちょっとだけ時間を貰えるか?」

 デバッグ作業を中断して、十倉さんが俺に話しかけてきた。
 わざわざ窓際まで移動してから、俺を呼び寄せた。

「なんでしょう?」

 窓際まで移動して、十倉さんの正面の机に腰を預ける。

「そのだな・・・。悪いな」

「ん?」

「お前には、物足りなく見えるだろう」

「あぁ・・・。そうですね。でも、気にしないで下さい」

「え?」

「楽しいですよ」

「ん?楽しい?」

「えぇ。オヤジの仕事を手伝っている時とは違う充実があります」

「そうか?」

「はい。仕事とは違います。なんと言えばいいのかわからないのですが、ほら、俺・・・。浮いていますよね?」

「そうだな。でも、お前が、やってきた内容は、間違っていないと思うぞ?最初に、話を聞いた時には、生意気な後輩だと思ったけどな」

「生意気な後輩は、今でも変わっていませんよね?」

「そうだな。でも、俺もいろいろわかった」

「え?」

「プログラムなんて、俺には無縁だと思っていたが、お前の話を聞いていたら、俺の様な人間こそ、システムを勉強して覚えるべきだな」

「はい。勉強って肩肘を張らなくてもいいと思います。”考える”ことを辞めなければいいのだと思います」

「そうだな。電卓なんて、100均で売っている程度だから、簡単だろうと思ったけど、あんなにもいろいろ考えなければならないのだな」

「そうですね。簡単な電卓で、あれだけですよ。システムなんてなったら、どれほど考えても、足りないですよ」

「あぁ俺も自分で作ってみて実感した」

「それがわかってもらえただけで、特別授業を行った意味がありますよ」

「ハハハ」

「そう言えば、十倉さんは、進学なのですか?」

「ん?あぁ俺は、進学・・・に、なるのか?警察学校に行く」

「え?」

「お前の彼女のお父さんに、俺は命を助けられた、正確には、俺の母親が、助けられたのだけどな」

「桜さんに・・・。そうだったのですか・・・」

「あぁ」

 沈黙。
 そうか、十倉さんが警察官か・・・。似合いすぎている。
 桜さんよりは、似合っている。

 戸松先生が、俺と十倉さんを呼んでいる。
 どうやら修正が終わったようだ。

「篠崎」

「はい」

「まぁなんだ・・・。世界が広がった。ありがとう」

 十倉さんが、俺に頭を下げてきた。
 感謝されるようなことではないと言おうと思ったが、やめた。十倉さんの”ありがとう”にはいろいろな意味が含まれているのがわかった。

「戸松先生。呼びましたか?」

「あぁ呼んだ」

「それで?」

「デバッグが終了した。見るか?」

「いえ、戸松先生が見て問題がないようなら、今日は終わりにしましょう」

「そうか?そうだな。来週からは、システム開発に移行するのか?」

「その予定です」

「どうする?」

「リーダーに、頑張ってもらうのではダメですか?」

「ダメだ」「無理だ」「おい!」

 三人からダメ出しを受けてしまった。
 そうだよな。

「わかりました。次の特別授業までに、役割分担を作ってきます」

「悪いな。頼む」

「APIは間に合いそうですか?」

 電脳倶楽部のAPIとライブラリが出来てこないと進められない。

 戸松先生が、電脳倶楽部を見る。
 まだ余裕があるが、どこで崩れるかわからない。

「真面目なのは、いいことだとは思いますが、開発の時には、妥協や横着を覚えたほうが、いいですよ?」

「妥協?」

「勉強会のメンバーが作る部分を、最優先にするのは解りますが、それで全体のスケジュールが遅れたり、狂ったり、影響したら意味がありません」

「あぁ」

「だったら、モックに毛が生えた程度の物を作って、渡せばいいのですよ」

「ん?」

「ライブラリを使うのだから、手順だけがわかれば、開発を進められます。なので、認証の部分や結果は、ベタ打ちした物を作って、開発が進んだら入れ替えればいいのですよ」

「・・・。そうだな。それなら、間に合う」

「お願いします」

 十倉さんと安池さんは、何を言っているのかわからない様子だったので、簡単に説明を行った。
 納得してくれた所で、リーダーの役割として、スケジュール管理をお願いした。問題点や、わからない部分を、俺や先生に質問する。電脳倶楽部からライブラリを貰ってくる。これらの役割を頼むことになる。

 さて、どうしようかな・・・。
 そんなに機能が作られるような物でもない。それに、Gitでの開発を考慮しなければならないからな。