ソフトウェアテストフロー

  

単体テスト

統合テスト

システムテスト

プログラムの一般的な手順ですが、実際のソフトウェア生産プロセスでは、これらの手順は遠く離れています状況によっては利用できません。

どうしてできないのですか。

これは、会社の規模と性質、ソフトウェアの規模と性質、ソフトウェア開発の種類(一部はデモ版のみ)など、さまざまな要因に関連しています。1つの理由は、上記の理由から派生した理由です。管理システム(単体テストのような必須の手順はありますか、みんなが知っています、なぜしないのですか);

単体テスト:

研究開発本部リーダーは自身の経験からユニットテストの重要性を理解できるため、開発者にユニットテストコードの作成を依頼しています。単体テストには独自の特殊性があるため、機能を開発する前に、エンジニアがモジュール内の各小機能の実装について詳細に検討していることは間違いありません。そして、計画、機能の実装方法、心臓はすべてを知っているので、この前提のもとで、単体テストケースを事前に作成し、単体テストを作成することができます。また、機能内で発生するバグの包括的な分析プロセスも可能です。実際には、この種の問題は多すぎると思われるため、プログラマは関数の実装の整合性を考慮せずに関数を盲目的に実装するだけであるという印象を与えます。つまり、プログラムが書かれている限り、Limaはこのコードの品質を知ることができます;もう一つの利点はユニットテストが "聞く"ことができます - 後の開発コードの変更、モジュール接続発生したエラーのほとんどは、新しいバグを最大限に回避するために、これは誤ってカットされないナイフです。

統合テスト:

この本の理論は実際のアプリケーションの経験ほど良くないと以前は考えていましたが、しばらくするとそれは良くないことがわかりました。あなたの成長がボトルネックに遭遇したとき、その理論が効力を発揮します私が言いたいのは、ソフトウェア工学で述べられている結束と結合の概念です。私が初心者だったときの彼の本当の意味を理解していませんでした、そして今私はそれを使うとき彼の重要性を感じます。このモジュールの開発者にとって、飛行機を作るのと同じように、プログラマーの仕事は飛行機の翼をつくるか飛行機のホイールを作ることです。あなたが作った車輪の主な実現がまだ胴体自体の主な構造に頼っていて、そしてモジュール自体が多くの新しいものを持っていないならば、ただ色を変えてパターンを増やすなら、あなたはこの車輪が飛行機からできないことがわかりますそれを拾う、またはそれを取ることは非常に面倒であり、使用することはできません、それは意味を失います;そのコアは胴体であり、ホイール自体ではなく、あなたがホイールを作るなら、全体の機能テーマはホイール上にありますあなたが電話を切る必要があるとき、航空機がそれを使用したくない場合、あなたはそれを拾い上げてそれを変えることができます;これはちょうど各モジュールが使用に影響を及ぼさないように試みるようにプログラムモジュールによって見られる凝集と結合の概念のようです。これにより、モジュールの再利用が容易になり、問題の位置付けが容易になり、プログラム全体の構造の整頓が容易になるという利点があります(個人的には、クラスの概念にもそのような利点があると思います)。 1つの役割は再利用、コード量を減らすための再利用です;ソフトウェアテストでは、統合テストは最も長く、最も反復的で、そして最も重要です。テスト中に私が感じる最も一般的なことは、モジュール間の結合が適切に処理されていないために、あるモジュールを変更する機能によって他のモジュールの機能が間接的に起動されることです。完全なプログラム要件および詳細な設計はそのようなバグを生成する際の重要な要素であり、修正時にプログラマがそのような問題を認識することは困難であり、これもまたバグの発見を困難にします。

この段階での回帰テストは面倒な繰り返しのプロセスですプログラムが変更されるたびに、関連するモジュールのバグを回避するために、変更後に適切な回帰テストを実行する必要があります。すべての関連モジュールを設計してください。手動テストで自動テストを使用するほうがより実用的です;

システムテスト:

プログラムが提出される前の最後のテスト、実際にはこのラウンドこのテストは、現場での試運転である工業用の「トライアルカー」として考えることができます。それはオンサイト環境でテストされるのでプログラムのあらゆる面を含みます、従ってこの段階でテストされるバグはより実用的です;一般に、このステップは避けるために実際の環境でより複雑な統合テストステップをすることです。バグの主な理由は需要の正確さです;この段階でより多くのバグは一般的に、ネットワークの側面は、一般的にネットワークのバックグラウンド、ネットワークの安定性を含み、そしてこれはしばしば統合テストで無視されます。

侃会会老老老老老老老老老会会会会会会会会会会会会会会会会会会会会会会会会会会会会会会会会会会会会しかし、現実は人々を泣かせます;

なぜこれを言うのですか? (ユーザー)

1、会社の効率、軽いテスト

2、プログラムサイズが小さい、システムテストを必要としない

3、プログラマーは基本的にユニットに発展しませんでしたテストの習慣

4、チーム管理には厳しい原則がありません

5、一部のプログラムには要件の仕様がありません、何について話すか、需要分析

一般的なアウトソーシング手順、両方単純なテストであり、バグを提出する必要性さえない、テストと修正(そのようなプログラムはバグ管理を行う必要がある、私は知りません)の間、要求仕様、要求分析はありません;私は開発サイクルについて考えています比較的小さなプログラムで完全な開発テストプロセスを実行しても、小さなプログラムのバグはまだ比較的小さいため、時間の価値がありません。プロセスルールの定式化は、現実に基づいて最適であるように思われますが、固有の原則に従ってLong live!を使用する必要はありません。大規模なプログラムでは、まだ完全なプロセスを実行する必要があります。

バグ管理を行う必要があるかどうかを判断するための基準は何ですか?

コストと品質のトレードオフ
zh-CN"],null,[1],zh-TW"]]]

Copyright © Windowsの知識 All Rights Reserved