コードの一部に単体テストを使用できないため、回帰テストにフォールバックします。いくつかの変更を加えた後、プログラムが同じように動作するかどうかを確認したいと思います。そして、振る舞いによって、私は主にデータ構造の状態を意味します。これまでのところ、私はそれらを人間が読める形式のテキスト形式にシリアル化し、最初の実行でいくつかのファイルにダンプしていました。次に、次のダンプで、状態が変化したかどうかを比較できます。また、変更がバグではなく新機能によるものである場合は、更新してください。
ライブラリ(C ++)を使用してすべてを整理できます。何でも知ってますか?ダンプファイルと一緒に、それは安価で大規模な単体テストを提供します。
最も面倒なのはシリアル化手順です。メモリの状態をダンプすることもありますが、それが異なる場合、リバースエンジニアリングは困難です。そこで、別の方法に移りました。ここで、比較フェーズ中に、メモリダンプを「ファントム」オブジェクトに読み込み、特殊なdiffメソッド(豊富なエラーレポートを備えたoperator ==)を実行します。これは、人間が読める形式のテキスト形式にシリアル化するよりも簡単に記述できる場合があります。
基本的に、私は車輪の再発明をしたいと思っているので、私の質問は非常に一般的です:
回帰テストをどのように実行しますか(実行する場合)?
ライブラリ/ツールキットを使用していますか?
自分のニーズに合わせて実装したことがありますか?
そして好奇心から:
回帰テストをしたいと思ったことはありますが、何かがあなたを止めましたか?