免責事項
自動テストに関する本を読んで、プロセスを自動化するために使用されるいくつかの方法について、かなり興味深い説明を見つけました。 本は英語で書かれているので、私は一部の無料翻訳を提示します。 本を読むとき、彼は頻繁に自動化への道を思い出しました。 この記事では、どのような場合でも自動化できないものについて説明します。
任意の、自発的な(これはアドホックのより正確な翻訳だと思います)テストとは、コンピューターの前に座ってさまざまなことを試すことを意味します。 テスターには、テスト計画またはチェックリストがある場合とない場合があります。 テスターは何をテストするかを考えて、あちこちをクリックして、さまざまなシナリオ、値を試し、「これが好きならどうなるか」と考えます。 テスターのすべてのアイデアと行動は文書化されておらず、より自発的です。 また、一部のシナリオはその後再現できません。
この状況は通常、ソフトウェア開発プロジェクトが遅れて開始されたときに発生し、テスト計画にほとんど時間を割きません。 このような状況では、仕様の欠如が一般的であり、要件はまだ開発中であり、絶えず変化しています。 そのようなプロジェクトでの作業は特に快適ではなく、同情に値します。
多くの場合、このタイプのテストの自動化は次のように行われます。
- 何をすべきか、何をテストすべきかを考える
- 特定のインプットについて考えます。
- 発明したばかりのデータを入力します。
- プログラムが正しく動作することを確認し、画面に表示される答えを観察します
自然発生的なテストの多くの利点を思い付くのは困難です。 言及されている唯一の議論は、時間を節約するべきだということです(時間の計画、テストの設計を無駄にせず、テストを開始するだけです)。 これは、「なぜまだプログラミングを行っていないのですか?」というシンドロームに類似しています。シンドロームは、最も単純なソフトウェア開発の特徴です。 このアプローチは、長期的な開発(開発とテストの両方)で常により高価です。 さらに多くの間違いが発生し、それらを解決するためにさらに費用がかかります。
このタイプのテストの欠点は次のとおりです。
- チェックする必要がある多くの部分は、単純にスキップできます。
- 一部の部品は必要以上に検査することができます。
- テストは再現性がなく、エラー解決を確実に検証することはできません(場合によっては、エラーが単に再現されないことがあります)
- これは通常、非効率的で非生産的です。
このようなテストの自動化は、テスターが何を確認するかによって決まります。 これは、テスターが適切なテストを行うために必要な知識を持っている必要があることを意味します。 それ以外の場合、テストの品質の独立した検証なしで、テストの個々の設計と実装に依存します。