14

GUI アプリケーションのストレステストをしようとしていますが、その方法がよくわかりません。最初に、すべての GUI およびヘルパー関数が配置されているアプリケーションがあります。このアプリが使用する、作成した 2 つの外部ライブラリもあります。ライブラリは小さなことしかしないので、QtMock が起動して動作しているときにこれらの部分を単体テストしたいと思います (現在、何らかの理由で qt 4.8 と互換性がありません)。

コードをあまり変更せずに、メイン アプリケーションのストレス テストを行いたいと考えています。私は QtTestLib を見ましたが、それは非常に基本的で、そのコードをメインコードと統合する必要があるかのように見えましたが、これは望ましくありません。私は本当にアプリの外でテストを続けたいと思っていましたが、これを行う方法を考えていましたか? enitre gui アプリを、テストにインポートできる外部ライブラリとしてエクスポートする必要があるかどうかよくわかりません。

全体を実際にストレステストするには、通常これをどのように行いますか。テストコードをどこでどのように実行すればよいかわかりません。助けていただければ幸いです。

4

1 に答える 1

6

私の経験では、使用するテストツールキットは、微妙な方法でコードに組み込まれるか、必要な深さに到達しないか(またはその両方)です。

カスタムテストコードを記述しても、テスト対象のアプリのコードをクリーンに保つことができます。自動テストが必要な大規模なWindowsC++GUIアプリで実行しました。基本的な考え方は、新しいプロジェクトを作成し、基本プロジェクトのすべてのコードを参照し、基本クラスから派生し、テストコードを含む新しいクラスのセットを作成することです。

私の場合、新しいVisual Studioプロジェクトを作成しましたが、新しいQtプロジェクトでも同じことができます。もちろん、テストする関数を公開するために、基本クラスをリファクタリングする必要がある場合があります。テストクラスは、必要に応じて基本クラス関数を呼び出します。必要に応じて、テストGUI全体を作成できます。

非常に簡単な例として、これがあなたのプロジェクトである場合...

class MyView : public QMainWindow {}
class MyController {}
class MyModel {}

...新しいプロジェクトを作成し、ベースコードを取得して、次を追加します。

class TestView       : public MyView {}
class TestController : public MyController {}
class TestModel      : public MyModel {}

結局、少しの作業の後、基本クラスにはゼロのテストコードが含まれていましたが、それでも、すばらしいテストGUIで、あらゆる種類の反復的な自動テストを結び付けて実行することができました。

これが簡単で些細な作業だと言っているのではありません。私はそれができることをあなたにただ励ましているだけです。:-)

編集:これは組み込み単体テストに対する批判ではありません。プロジェクトの開始からそれを導入できれば素晴らしいことです。しかし、これは大規模なレガシーアプリであり、ベースコードにテストコードを挿入しないことは難しい要件でした。

于 2012-05-18T01:26:02.773 に答える