製品ソフトウェアにテストを含める STO(Secret Test Option) とは

STO(Secret Test Option) とは製品に「その製品自身のテスト」を埋め込むことである。

通常テストコードはソースコードには含めないが、製品自身が正しく動作することを素早く確認したい場合には重宝する。

以下よくありそうな質問を Q&A 形式でまとめた。

Q: テスト時はテストコードを使えば良いと思いますが?

Ans: そのとおりだが STO だと以下メリットがある。

製品環境で素早くテストしたい場合、テストコードだと(環境を整えるのに)手間がかかるが、STO の場合だとその手間がない。

Q: 利用者に勝手にテストを実行されるのは好ましくないと思うのですが?

Ans: そのとおりなので、利用者に実行されないように 隠し機能(Secret Option)として埋め込んでおく

Q: (特にコマンドラインツールで)あえてテスト機能を見せるケースもあるかと思いますが?

Ans: そのとおりで、問題無ければ見せても良い。

むしろ利用者にテスト機能を叩いてもらい、結果異常時に報告してもらうことで、導入を妨げる問題を特定する助力となるため、重宝すると言えなくもない。ただし「テスト機能を叩いて結果を理解する、報告する」といった行為はリテラシーが高くないと行えないため、あらゆるユーザーが自然にこなせると考えるべきではない。実際、テスト機能を見せているツールとしては GitHub で公開されているようなプログラマ or エンジニア向けのものが多い。

また、テスト結果の文面がいいかげんだと恥をかくため、公開するなら文面も含めて製品クオリティを意識する必要がある。