5

既存の Apache C モジュールにいくつかの変更を加えて、考えられるセキュリティ上の欠陥と一般的な悪い慣行を修正しようとしています。ただし、コードの機能は変更しないでください (バグを修正する場合を除く)。標準的な回帰テストは順調に進んでいるようです。コードに対していくつかの回帰単体テストを実行する良い方法を誰かが知っているかどうか知りたいです。私はC-Unitを使用する方向に沿って何かを考えていますが、Apache APR とステータス構造へのすべての結び付きで、これをテストする良い方法があるかどうか疑問に思っていました。たとえば、C ユニットで使用できるビルド済みのフレームワークはありますか?

ありがとう

ピーター

4

2 に答える 2

7

私はしばらくこれに答えることを考えていましたが、他の誰かがより良い答えを思いつくかもしれないと考えました.

最善の策は、C モジュールをリファクタリングして、httpd コード ベースへの依存関係が非常に薄い接着層に含まれるようにすることだと思います。単体テスト コードに簡単にリンクできる APR への依存関係についてはあまり心配しません。少し抽象化する必要があるのは、要求レコードの使用などです。

コードにセキュリティ上の欠陥や悪い慣行が含まれている疑いがある場合は、このようなリファクタリングを行うのが良い考えだと思います。それは通常、かなり大きな仕事です。

また、単体テスト (理想的には両方) ではなく統合テストを実行することを検討することもできます。つまり、一連の要求とサーバーからの期待される応答を考え出し、実際の応答と期待される応答を比較するプログラムを実行します。

つまり、あなたが探していた応答ではなく、おそらくこの線に沿って何かを自分で考えたでしょう. しかし、少なくとも経験から、ビジネス上の理由でモジュールを新しいものに置き換えることができない場合、テスト容易性のためにモジュールをリファクタリングすることは、長期的には報われる可能性が高いと言えます。

于 2009-04-16T11:58:12.673 に答える
1

私自身が興味を持っていた質問なので、インターウェブを見て回るのに時間を費やしました. ウィキの記事に出くわした

http://cutest.sourceforge.net/

apache ポータブル c ランタイム テストに使用されました。それをチェックする価値があるかもしれません。

于 2009-04-17T12:07:48.323 に答える