(以下はとちぎテストの会議でのライトニングトークの資料です。当日使ったものに若干変更を加えています。)

本のテスト(あるいは人間向けソフトウェアのテストについて)

森田尚

hisashim at workbook.org

株式会社オーム社開発部(hmorita at ohmsha.co.jp)

発表者について

  • 編集者
  • コンピュータは素人
  • この発表は個人的な考えを非公式に述べるもので、雇用者とは無関係

理工書の出版社に勤務しており、書籍を企画編集しています。

出版物もソフトウェアの一種であり、理想に近づけるための方法として、読み直しをはじめとする「テスト」が存在します。今回は、本のテストに対する私と周囲の取り組みを報告します。

本もソフトウェアである

コンピュータソフトウェアと同様に、本は人間向けのソフトウェアといえる

  • 共通点:ソフトウェアである
  • 相違点:実行するのがコンピュータか人間か

技術を応用できる

  • バージョン管理・問題追跡・CI
  • 反復型開発・レビュー・リファクタリング・ふりかえり

しかしテストについては、技術をそのまま応用するのが難しい

コンピュータソフトウェアと同様に、本もソフトウェアの一種です。

コンピュータソフトウェア開発の技術には、本づくりに応用できるものがあります。ですがテストはそのまま応用できない場合がままあります。

本作りにおけるテスト

本作りでテストに相当するのは

  • 読み直すこと

しかし本作りに特有の問題点がある

  • 時間がかかる
  • 目が慣れてしまう
  • 読む人を増やしにくい

いずれも人の目で読むために生じる問題

本作りにおけるテストは、人の目で読み直すことが中心になります。

ですが、人間はコンピュータのように速く読めません。またコンピュータのような単純な正確さや再現性を求めるのは無茶です。読んでくれる人の人数を増やすと、とりまとめが大変です。

工夫

読み直しを量・質ともに充実させる

  • いつでも最新の原稿がレイアウトされた状態で読めるように
  • 識者によるレビューを行う

上記を実現・支援するための道具

  • 自動組版ツール(XML、LaTeXなど)
  • 協働支援ツール(ML、トラッカー、バージョン管理システムなど)
  • 校正支援ツール(aspell(欧文)、JustRight!やWord(和文)など)

そこでこういった工夫をしました。テスト自体を機械に肩代わりしてもらうのは難しいので、主にテストをしやすくするための工夫です。

最終的な仕上がりに近いものを読めば、より実際に即した改善案が浮かびます。

内容に詳しい人に目を通してもらえば、より良い改善案をもらえます。

たくさんの目で、または時間をおいて読むことは、視点の固定や思い込みを減らします。

多人数からフィードバックをもらう際のとりまとめは、メーリングリストやトラッカーやバージョン管理ツールを使えば、効率化できます。

校正支援ツールは、本来は誤記を見つけるための道具ですが、内容上の問題点もまま見つかります。

(※注意:ツールはあくまで人間を支援する手段で、何をどう使うかはケースバイケースです。)

考察など

良いところ

  • 本の質が上がった(発行後に見つかる問題点が数分の一に減少)
  • 効率化できた(数十時間の作業が数時間に)
  • 著者をはじめ関係者には好評

いまいちなところ

  • 根本的な解決はまだ遠い
  • もっとやりようがあるのでは?

効果は測定していませんが実感しています。発行後に見つかる不具合は明らかに減りました。効率についても、例えば数十時間かかっていた校正作業が、数時間でかつ高い精度でできるようになっています。著者や訳者からも、読者からも、おおむね良い評価をいただいています。

ただし、読むのが大変なことに変わりはありません。また支援ツールもすべてが自動化できているわけではなく、忙しいと適用が滞りがちです。

今後の課題は、うまくいった工夫の実行コストを下げることと、効果がありそうな方法を試していくことかと考えています。

なおTDDの可能性は今のところ不明です。

参考資料