実際、優れたテストを書くことは、優れた製品コードを書くことと同じくらい難しいので、注意深い練習と注意深い検討が必要です。ただし、テストコードが2等市民として扱われるのを何度も目にしました。多くの場合、この状況は、テストから得られるメリットが得られないことを意味します。最終的に、テストセットは資産というより負担のようなものです。
良いテストセット:
1.自信
コードを変更した後、テストを実行した後、自信を持ってコードを送信するだけで十分ですか?直接オンラインにするのはどうですか?
私の経験では、単体テストでは不十分であり、信頼性を高めるには、フルスタックテスト、BDD、統合テストが必要です。
同じ機能ポイントに2つのテストがあり、信頼できる場合、1つのテストは冗長であることに注意してください。
さらに、テストセットに本当に自信があるものの、リリースされた製品のバグが増え続けている場合、信頼性が誤っている可能性があります。
2、バグをキャッチ
決して赤信号にならないテストがある場合、それはバグを捕らえないのでそれは価値がありません、そしてこれがテストの存在の主な理由です。
3.お手入れが簡単
コードのリファクタリング中にテストの変更または書き換えに多くの時間を費やしている場合、テストセットは価格に見合う価値がありません。多くのモックオブジェクトを使用している場合は、さらにそうだと思います。多くの場合、最終結果は標準化されたソフトウェアです。
4、記述システム
テストケースは、システムが何をしたのか、できればなぜそれをしたのかを教えてくれるはずです。
どのように行われるかを説明するために使用する必要があるテストはほんのわずかであり、主要なリファクタリングが行われる場合、これらのテストは破棄されることがわかっています。
5、バグなし
テストが実際にターゲットコードをテストしていることを知る、つまり、バグなしでテストを行う最善の方法は、製品コードを変更した後、テストが赤信号から緑信号に変わるのを観察することです。
これが、製品コードを書く前にテストを書くべき理由です。
また、ミューテーションテストを使用して、テストセット内の盲点を見つけることを検討してください。
6、強い
テストセットに気まぐれなテストがある場合、それは不可解に失敗します。人々はもはやテストの失敗を真剣に受け止めないので、それはテストセット全体に害を及ぼします。
このテストを削除します。
セブン、誰かが運営
多分これは少しばかげて聞こえるかもしれませんが、私は多くのテストを見たり書いたりしましたが、誰もそれらを実行しませんでした。含める:
- コメントアウトまたは@Ignoredでタグ付けされたテスト。
- 非常に遅いテスト。
- データベース、アプリケーションコンテナー、メッセージングミドルウェアのインストールなど、テストにはいくつかの手動手順が必要です。
- IDEから実行またはデバッグできないテスト。
全体として、優れたテストセットはシステムの進化をサポートします。
テストは、変更を妨げるのではなく、変更をサポートする必要があります。
結局のところ、Dave ThomasとAndy Huntが言ったように、私たちは常に既存のシステムを変更しています。
完全に新しいコードを書くことはめったにないため、プログラミングはすべてメンテナンス作業です。
コードは、入力した10分間のみ新品です。
良い記事をお勧めします:
PythonとJavaのどちらが自動テストに適していますか?
Python + Selenium自動テストを10分でプレイして、すぐに始めましょう!
10年間のソフトウェアテストエンジニアの認識-まだ混乱している友達へ
最後に:エディターをフォローして、300ページのPDFドキュメントでPython自動テストエンジニアのコア知識の概要を受け取ることを歓迎します!ソフトウェアテスト技術交換グループ:(313782132)これらの資料の内容は、インタビュアーが面接中に尋ねる必要があるすべての知識ポイントです。この章には、基本的な知識、Linuxの基本、シェル、インターネットプログラムの原則、Mysqlを含む多くの知識ポイントが含まれますデータベース、パッケージキャプチャツールのトピック、インターフェイステストツール、高度なテスト-Pythonプログラミング、Web自動化テスト、APP自動化テスト、インターフェイス自動化テスト、高度な継続的統合テスト、テストアーキテクチャ開発テストフレームワーク、パフォーマンステスト、セキュリティテストなど。