2

私は自分でアプリの開発に取り組んできましたが、ユーザーがやるべきことをすべて実行する限り、すべてがうまく機能する段階に来ています。:-) ソフトウェアは、それがどれほど堅牢であるか、人々が同じボタンを繰り返しクリックしたり、間違った種類のファイルを開こうとしたり、間違った場所にデータを入れようとしたりしたときにどれだけうまく機能するかを確認するために、さらにテストする必要があります.

アプリケーションを間違って使用するという観点から考えるのは少し難しいので、これには少し問題があります。これらはすべて、私にとっては特殊なケースです。それでも、ベータ テスターに​​提供する前に、アプリケーションをできるだけ安定させ、十分にテストしたいと考えています。この時点でプロのテスターを雇うことについて話しているわけではないと仮定すると、このタスクについて何かヒントや体系的な考え方があるかどうか知りたいです.

いつもありがとう。

4

3 に答える 3

2

「アプリケーションの機能のテスト」と「ストレステスト」(質問のタイトル)の2つの異なることについて話しているようです。

ストレス テストは、ウェブサイトを持っていて、同時に 100,000 人にサービスを提供できるかどうかを確認したい場合です。ストレス下でアプリケーションがどのように動作するかを確認します。これはいくつかの方法で行うことができます。たとえば、いくつかのアクションを記録してから、複数のエージェント マシンでアプリケーションを同時にヒットさせることができます。

この質問は、品質保証の質問のように聞こえます。それがテスター/ベータテスターの目的です。ただし、アプリケーションが最適に動作することを検証するために自分でできることがあります。

コードの単体テストは良い出発点であり、これらのエッジケースを試して見つけるのに役立ちます. メソッドが int などを受け取る場合は、int.max、int.min を渡してみて、何が爆発するかを確認してください。すべてにヌルを渡します。.Net を使用している場合は、PEX を参照することをお勧めします。これは、アプリケーションが持つすべてのブランチ/コードパスを通過します。これは、単体テストをさらに改良して、アプリケーションを可能な限りテストするのに役立つ場合があります。

統合テストでは、通常のことのいくつかについてエンド ツー エンドで何が起こるかを確認します。これは、後で開発するときに「バグを見つける」のに役立ちます。

これらは、見逃した可能性のあるエッジ ケースを見つけるために自分でできる簡単なヒントです。しかし、そうです。最終的には、アプリを他の誰かに渡してテストしてもらう必要があります。それが彼らに当たる前に、できる限りカバーしていることを確認してください:-)

于 2009-10-20T23:16:49.797 に答える
0

単体テストと統合テストで十分なコード カバレッジがあることを確認してください。

適切な UI 検証を使用し、それを壊す可能性のある組み合わせをテストします。

UI で可能な順列の数 (ユーザーがそれを破ることができる方法) を減らす適切に設計されたアプリケーションは、非常に役立つことがわかりました。MVC のようなデザイン パターンは、UI ベニアを可能な限り薄くするため、この点で特に役立ちます。

于 2009-10-20T23:11:32.050 に答える
0

オートメーション。

コードを (再) 因数分解して、別のプログラムがユーザー イベントをスローできるようにします。ユーザー イベントの簡単なスクリプトを作成し、それらをプログラムで再生します。ベータ ユーザーからイベントをキャプチャし、それらをテスト スクリプトとして保存します (問題の再現と回帰のチェックに役立ちます)。小さなランダムな変更をスクリプトに適用するファズテスターを作成し、プログラムに対しても試してみてください。

この種の自動化を使用すると、キャッシュやメモリ リークなどの明らかな問題を強調して適用し、見つけることができます。実際の機能はテストしません。機能については、単体テストが役立ちます。試すべき単体テスト フレームワークは数多くあります。役に立つものを選び、優れたテストの書き方を学び、それらをビルド プロセスに統合します。

于 2009-10-20T23:18:41.310 に答える