コンピューター, ソフトウェア
テストプログラム - ソフトウェア製品における誤り検出処理
ソフトウェア開発では、生産プロセスの重要な部分は、ソフトウェア・テストに基づいています。 それは何をされ、どのように、この記事で説明します、このような活動があります。
テストは何と呼ばれますか?
これは、コードの間違った動作の位置を検出するためのソフトウェアを実行してプロセスを指します。 最良の結果を得るために、意図的に入力されたデータの困難なセットを構築しました。 検査の主な目的は、障害のために最良の機会を作成することである ソフトウェアのを。 時々テストが開発したプログラムは、作業能力のルーチン検査に単純化し、機能を実行することができます。 これには、時間を節約できますが、多くの場合、ソフトウェアの信頼性の欠如を伴っている、ユーザーの不満、と。
有効
エラーは、ソフトウェア開発に必要な品質のコストと期間に重大な影響どれだけ迅速にしています。 プロジェクト全体のコストの40% - だから、テスターが開発者よりも数倍小さい給料を受け取るという事実にもかかわらず、彼らのサービスの費用は、通常は30までです。 これは間違いのために検索するので、従業員の数によるものである - これは珍しい、非常に困難なプロセスです。 ソフトウェアはテストの立派な数を渡された場合でも、しかし、エラーが発生しないことを100%保証するものではありません。 彼らが発生したときだけではわかりません。 障害を見つける可能性が高いテストの種類を選択するテスターを奨励するために、異なる動機ツールが使用されています。精神的及び物質の両方を。
仕事へのアプローチ
ソフトウェアのエラーは、初めからされていないことを確認するために、様々なメカニズムを実装する際に最適です。 これを行うには、適切なアーキテクチャ設計、リファレンスの明確な用語の世話をしなければならない、そしてプロジェクトの作業がすでに始まっている場合に、通信、の調整をしないように重要です。 この場合、最終結果に残る誤差の小さな数を見つけて識別するタスクにテスター。 これは、時間とお金の両方を節約します。
テストとは何ですか?
これは、コードの欠陥の検出に成功するために必要な検査活動の重要な側面です。 彼らは正しいアプリケーションを制御するために必要です。 テストには何が含まれていますか? これは、結果として得られる(または中間体)として得られるべきデータとその初期値から成ります。 成功した問題や矛盾を識別するために、テストは、アルゴリズムが開発された後でなければなりませんが、プログラミングを開始しませんでした。 必要なデータを推定するいくつかのアプローチを使用することが望ましいです。 あなたは別の視点からコードを調べることができますので、この場合は、エラーを検出する確率が増加します。 複雑なテストは、外部の完成ソフトウェア製品の効果だけでなく、彼の作品のアルゴリズムの検証を提供しなければなりません。 特に興味深いのは限界縮退例を提供します。 このように、エラーの実際には、多くの場合、サイクルが予定よりも少ない一回以上で動作することを明らかにすることができます。 また、重要なのは、あなたが別のマシン上に所望の結果を確認することができ、それを通してコンピュータテストは、あります。 これは確かにソフトウェアがすべてのコンピュータ上で動作することを確認するために必要です。 また、開発が行われるているコンピュータテストは、マルチプラットフォーム開発の作成において重要です。
トラブルシューティングアーツ
プログラムは、多くの場合、膨大なデータセットで作業することを目指しています。 それは完全に作成するために必要ですか? いいえ。 広範なプログラムの「小型化」の実践を取得しました。 この場合、データ量の合理的な減少は、使用するものと比較してあります。 例を見てみましょう:サイズ50×50のマトリックスを作成するプログラムは、そこにあります。 言い換えれば - あなたは2500の値を手動で入力する必要があります。 それは確かに可能ですが、それは非常に長い時間がかかります。 しかし、機能をテストするためには、ソフトウェアは、その大きさ5×5である行列を受けます。 これを行うには、25の以上の値を入力する必要があります。 場合は、この場合には、通常、エラーのない動作は、それはすべてが順序であることを意味しています。 小型化の状況が発生すると、変更を伴うことは、暗黙的になり、一時的に消えているという事実にある落とし穴がありますが。 また、非常にまれですが、それでも新しいバグがあるということですが起こります。
目標は追求します
テストが原因このプロセスが全体的に形式化することが適していないという事実のために簡単な作業ではありません。 大規模なプログラムは、必要な正確なベンチマークを持っていることはほとんどありません。 したがって、しかし、完全にデバッグソフトウェア開発の特徴と機能を反映することができない間接データの数を使用してガイドラインとして。 また、彼らは正しい結果がソフトウェア製品をテストする方法を前に計算するように選択する必要があります。 あなたが進まない場合は、すべてについて検討する誘惑され、かつ機械の結果が予想される範囲に入った場合、すべてが正しいこと、間違った決定をしたことになります。
別の条件で確認してください
原則として、プログラムのテストは、限られた範囲の最小試験機能に必要な容量で起こります。 パラメータの変更、並びにそれらの労働条件で行った活動。 テストプロセスは、3つの段階に分けることができます。
- 通常の状態で確認してください。 このケースでは、開発したソフトウェアの基本的な機能をテストします。 結果は予想に対応している必要があります。
- 極端な条件で確認してください。 これらのケースでは、悪影響作成したソフトウェアのパフォーマンスに影響を与える可能性がある境界データ、と同義です。 一例として、我々は非常に大きいか小さい番号または受信した情報であっても完全な欠如で動作します。
- 例外的な状況のチェックイン。 これは、治療を超えているデータの使用を含みます。 ソフトウェアは、計算に有用であるとして、それらを知覚し、妥当な結果が得られたときにこのような状況では、それは非常に悪いです。 ケアは、そのような場合に正しく処理できないすべてのデータの拒絶があることに注意しなければなりません。 それについて、ユーザーに通知を提供するためにも必要です
テスト:タイプ
エラーなしでソフトウェアを作成することは非常に困難です。 これは、かなりの時間を要します。 「アルファ」と「ベータ」:良い製品を得るためには、多くの場合、テストの2種類を使用しています。 彼らは何ですか? 人々はアルファテストについて話すとき、それは見直しが開発、「実験室」の条件の状態で自分自身を行うことを意味します。 プログラムは、エンドユーザーに転送される前にこれはテストの最終段階です。 そのため、開発者は最大好転しようとしています。 操作を容易にするため、データが問題とその解決策の年表を作成するためにログに記録することができます。 彼らはプログラムを活用し、あなたが見逃しているのミスを識別することができるように、限られた数のユーザーへのソフトウェアの供給を理解するためのベータテストの下で。 この場合、特別な機能は、多くの場合、ソフトウェアがその目的のために使用されていない事実です。 このため、障害の前に見たものは何もありませんでしたどこに識別されます。 これは非常に正常であり、それを心配する必要はありません。
テスト完了
前の手順が正常に完了している場合は、それが受け入れテストを実行するために残っています。 この場合、彼は単なる形式になります。 このテストでは、追加の問題が発見されていないと、ソフトウェアが市場にリリースすることができることを確認しています。 最も重要なのは、最終的な結果となり、より密接にそれを検証しなければなりません。 ケアは、すべてのステップが正常に完了していることを保証するために取られるべきです。 ここでは、全体として、テストプロセスです。 今度は、技術的な詳細を掘り下げ、テストプログラムとして、このような有用なツールについてお話しましょう。 使用されたとき、彼らはどのようなものですと?
コンピュータ支援テスト
それが効果的に欠陥を検出するために使用される重すぎるアプローチである - これまでは、それが開発されたソフトウェアの動的解析があると考えられました。 しかしによるプログラムの複雑化とボリュームに逆の見方が登場。 最も重要な優先事項は、効率性と安全性のある場所自動テストが使用されています。 そして、彼らは、任意の入力の下でなければなりません。 ネットワークプロトコル、ウェブサーバ、サンドボックス:一例として、そのような試験に適切であるためのプログラムは、以下のものが挙げられます。 私たちは、このような活動のために使用することができるいくつかのサンプルを見続けています。 あなたは無料の試験プログラムに興味があるなら、品質はその中で見つけることは困難です。 しかし、そこに十分に確立プロジェクトの「海賊版」のバージョンを割っているので、あなたは彼らのサービスを参照することができます。
雪崩
このツールは、欠陥が動的解析モードでプログラムをテストしている検出するのに役立ちます。 これは、データを収集し、トラック設計されたオブジェクトのパフォーマンスを分析します。 テスターは、エラーが発生したり、制約の既存のセットをバイパス入力のセットを与えられています。 可能な状況の多数が開発したアルゴリズムの良いテストに感謝します。 プログラムは、状況の多数をシミュレートし、最も可能性の高い障害の発生である条件を作成することができ、入力データの異なるセットを受信します。 プログラムの重要な利点は、ヒューリスティックなメトリックを使用することです。 問題がある場合は、アプリケーションエラーが可能性が高いです。 しかし、このプログラムは、一つだけチェックマーク入力ソケットやファイルなどの制限があります。 このようなテストプログラムなどの操作を行う場合は、NULLポインタの問題点、無限ループ、間違ったアドレスやライブラリの使用による誤動作に関する詳細な情報が含まれています。 もちろん、これは、検出されたエラーとその唯一の一般的な例の完全なリストではありません。 欠陥を修正、悲しいかな、開発者を持っている - 自動化された手段は、これらの目的には適していません。
KLEE
これは、メモリをテストするための良いプログラムです。 これは約50のシステムコール、従って並列的あるいは個別に実行される仮想プロセスの多数を傍受することができます。 しかし、一般的に、プログラムはいくつかの不審な場所を探していて、コードの最大可能量を処理し、データパスを使用し分析されていません。 このため、テストプログラムは、オブジェクトのサイズに依存します。 ベットをチェックするときシンボリックプロセスに置かれています。 彼らはテストされているプログラムでタスクを実行するための可能な方法の1つです。 並列動作のおかげで、テストアプリケーションの作業の多数の変異体を分析することが可能です。 入力データ・セットの各パスのチェックから始まり、その試験後記憶されています。 KLEEを使用して試験プログラムがあってはならない変動の大きい番号を識別するのに役立つことに留意すべきです。 それも、何十年に開発されたアプリケーションでの問題を見つけることができます。
Similar articles
Trending Now