Day: November 9, 2015

Swift:最後のバグを修正

見つかった最後のバグは、たいていの場合、単なるはじまりに過ぎないという現実。

用事ができたので実家に帰ってきています。インターネット環境が最低・最悪で20年くらい逆戻りしています。ほとんどgive up。

その代わり、手が空いたときにMesaExifの評価をしています。ああ、なるほど。そんな障害が山のように出てきました。実装したつもりのものが実装されていなかったり、評価した箇所が評価未了だったりで、あれあれ・・・という感じです。

実装途中で現場放棄状態だったのが日付関係。形式的には、そもそも何種類かあり、yyyymmdd hhmmssで統一的に処理できるようにしたのですが、メタデータの仕様は:で区切られていたり、省略されていたりで、まちまちでした。これは実装未了だったので、追加でおしまい。

しかし、重症だったのは、整数と浮動小数点のメタデータの修正です。結局、どちらも桁数、マイナス符号、小数点を意識した作りに変えざるをえませんでした。最初から、Doubleで処理し、±の符号と小数点を意識した切り出しと変換ができるようにつくっておくべきでした。

もうひとつ重症に近かったのは、メタ情報が修正できていないのにあたかも書き込みが成功したかのような動きをするものがあったこと。これは書き込み後にファイルが存在するかどうかチェックするしか手がなく、そのチェックを入れました。逆に、書き込みを行った後にメタデータの修正が不成功に終わり、ファイルを削除したにも関わらず、管理ファイルが連動して修正されていなかった問題に関しては、当然ながら管理ファイルを修正することで整合性を取りました。

評価漏れがバグ潰しを不完全にするということを改めに認識している次第です。こんなときは、品質評価部でいつも地道にテスト部隊を管理していたA君のことを思い出します。地味で、英語も翻訳ソフトを使っていたA君ですが、評価に関してはプロでした。新商品の規模が大きいときは10名くらいのテスタを使いこなしていました。テストマトリックスも、テストデータの自動生成もお手の物でした。縁の下の力持ちと言うと古めかしいですが、本当に良くやっていたと改めて思います。英語ができず、口下手だったのが玉に瑕だっただけです。仕事の中身というかアウトプットと、評価ポイントにつながる期待役割とか成果とは必ずしも直結しないのが世の中のひとつの事情なのでしょうね。

そういうわけで、きょうは最後のバグを修正しました。強く最後と思いたいのですが、まあ、バグの始まりに過ぎません。