Humanity

Edit the world by your favorite way

テストとソフトウェア設計についての何か

- なるべく入力から出力が一直線になるよう心がけること
  - Postfixのデーモンプロセス
  - iptablesのチェイン
- 各コンポーネントが粗結合になること
- 出力はテストしやすいようなるべく簡素なフォーマットにする (ASCIIテキストデータで表現し、パースが容易な何か)
単体テストする方法が与えられていないために単体テストが難しいもの
- ブラウザの描画結果
- GUI

なぜ単体テストする方法が与えられていないか?
- 実装の難しさ/手間
  - 設計段階で考えられていない
- セキュリティ

最終的な出力はビットマップなのだからビットマップをテストする方法があればよい?
- 誤差を許容する必要がある
- 本当に?どのような場合に?
  - 例えばGUIであればどのようなパーツの時に誤差を許容する必要があるのか
- 1bitの狂いもないよう正規化を加えることで比較はずっと楽になる
- しかしGUIのテストのようなケースではテストする側が正規化をするのは困難
- テスト対象であるプログラム側がそういった努力をする。具体的には
- 出力するデータをDBusのようなプロセス間通信技術でデバッグ出力をする
  - デバッガで十分では?
  - SNMPのように気をつけないと知られてはまずい情報を不必要に晒しかねない