1

私は自分のアプリケーションを IDE からかなり頻繁に実行し、多くの単純な変更をテストしていることに気づきました。それが私の開発時間を遅らせていることに気付きましたが、そうしないと、以前の依存作業からバグが忍び寄るのを恐れています。ビルドに数分かかる大規模な製品環境では、誰もがどれくらいの頻度で実際にテストを行っていますか? 潜在的に欠陥のあるコードにどのように対処しますか?

4

2 に答える 2

0

回帰テストの自動化は、開発速度を向上させるために行うことができる最善の投資の1つです。

これは、ハードではなくスマートに作業する必要がある領域です。自動テストに関する公開情報はたくさんあります。可能な限り、この方法で行う必要があります。

例は、データテストから、単体テスト、統合およびUIテストにまで及びます。これらはすべて、あなたの生活を楽にするためにある程度自動化することができます。リストするにはツールやプラクティスが多すぎますが、私は以前、エントリポイントになる可能性のあるサイトhttp://www.opensourcetesting.org/resources.phpを使用していました。また、これらのトピックについてSOに関する質問がたくさんあります。

于 2012-10-29T21:37:49.653 に答える
0

私がするいくつかのこと:

  • 防御的にコーディングする:
    • 仮定をテストするためにアサーションを自由に使用します(本番コードでは常にアサーションをオフにすることができます:問題の動作の診断を容易にするためにアサーション付きのコードを出荷する会社がありますが、最大30%のオーバーヘッドでも)
    • 相互疑惑:ユニットを使用する前に、常にユニットへの入力を検証してください
    • ブラックリストの代わりにホワイトリスト:通常、何かが失敗する可能性のあるすべての方法を列挙しようとするよりも、「有効な」動作として構成するものを指定する方が簡単です。
  • コードレビュー:
    • ReviewBoardなどのオープンソースソフトウェアを介したコードレビュープロセスの使用は、全体的な開発速度/品質を向上させることが示されています。
  • スモークテスト:より長いテストに進む前に、基本的な仮定/動作をチェックするためのシンプルで安価なテスト-これにより、時間を大幅に節約できます。
  • ユニットテスト:
    • 作成するコードの各ユニット(コードのブロック、関数/メソッド、クラス、パッケージなど)の自己完結型のテストを含めます。
    • 作成したコードの最小ブロックをテストできるようになったらすぐにテストします。これにより、時間を節約できます。
    • テストフレームワークを利用して、これらを自動的に一緒に実行します
  • 回帰試験:
    • 変更が加えられた後にすべてをテストして、何も壊れていないことを確認します。これらは通常、実行に時間がかかるため、ナイトリービルドで実行する必要がある場合があります。
  • コードを書く前にテストを書いてください:
    • 最初にテストを書くことは、プログラムが何をするか/振る舞うことになっているのかを正確に理解するのに役立ちます。
    • 仕様に正確にコーディングするのに役立ちます
于 2012-10-29T21:40:37.683 に答える