左のソフトウェアのテスト方法(翻訳)

要約:

早くあなたのコードの問題を見つけ、その影響は小さく、それらを修復するための低コストを費やしています。タイムライン上の左のプロセスを - したがって、それは以前のソフトウェア開発ライフサイクルでのテスト活動を推進するのに役立ちます。この記事では、左の方法を探り、そしてどのように組織内の左側に移動する方法を教えてください。

混戦の左側にアジャイル開発と運用チームは、重要なテスト活動を移動する以前の開発ライフサイクルは約くらいです。

多くのテスト活動が後半のサイクルで発生し、それはそれらを修復するために、コストのより多くの問題を見つけるために多くの時間がかかります。あなたは、特にあなたが実際に行うことができますので、基本的に、あなたのコードに染み付いな安全性や性能テストなど、あなたの非機能ビジネス要件は、代わりに彼らに適切なパッチを与えるされ、開発サイクルのテスト活動の実施後に待機する場合それらを修正します。

左の上では、欠陥の認識と予防のこの種を行うために高速です。

検索やソフトウェアのバグを修正

テスト戦略は少しよく知られているチャートテーブルKABOシリコン•ジョーンズに残ることがあり、以下に説明しない問題や欠陥がソフトウェアの各段階に導入されている場合、ソフトウェアの開発を示し、彼らはコストを増大させます。

 

グラフは、コードの最初の部分は、符号化時間に導入された欠陥の大部分を示すことが期待される示します。

欠陥の導入が開発したとき、彼らは需要を誤解、間違いを犯す、または特殊支店コードブロックで考慮するかどうか、コードが生成されます。コードのブロックと組み合わされたとき、アプリケーションの欠陥はまた、(例えば、マイクロサービスがより複雑になるにつれて、モダンなアーキテクチャ)は、複数のチームメンバーを含む場合は特に、導入されています。

私たちは今、欠陥が発見された実証し、ラインに沿って、同じグラフ上に重ねてみましょう。基本的に、それは最初の行の逆であることに注意してください。

 

あなたがバグを見つけて、テストを開始するための適切なインフラなしで準備する前に、すべての可能性でテストを開始、通常時に、結果が異なることになるので、これは、驚くべきことではありません。

しかし、ここで我々は問題が符号化プロセスに導入されたとき、彼らはほとんどその段階で見つからないことをされているほとんどを見ることができます。これは、これらの問題を解決するための費用が必要です何?

開発コストの各段階の異なる理解の欠陥を修復することが重要になります。この順序は第三の線を示します。

 

欠陥が発見された後、我々は不快なリターン費を見ると、今では本当に面白い得るために開始し、急激に増加します。そのような問題は、エンコード時に逃したシステムテストを通じて40倍のコストを発見した、またはユニットテスト中に10倍に同じ質問を見つけています。あなたは高価なの展開に離れて本当のletスリップで多くの問題を見たとき、それが不合理になります。

いくつかの理由のためのコストをエスカレート:

  • ・支出の時間と労力が問題を発見しました。より複雑なテストケース、実際の問題の部分で、それより難しいトラブルを見つけます。
  • ・このようなデータベースまたはサードパーティのアプリケーションプログラムインタフェースとして、別々のシステムとして導入されたデスクトップ開発の欠陥を再現する挑戦。(組織の面では、欠陥の検出および欠陥修正の経験の間にこれらのケースで数週間は共通している遅れます。)
  • ・変更の影響は、欠陥を修正する必要があります。それは、単純な問題であり、その関係は素晴らしいことではないだろうが、あなたはそれを持っている場合、あなたは間違ったアーキテクチャを使用するか、またはあなたが期待に圧力を構築したり、多くの場所で非伸縮性のコードのセキュリティを保証することはできません、その場合はそれは大きな問題になります。

左の背後にある理由

それは初期のテストベースでの遅延欠陥検出ループを説明するために今、下のグラフのオレンジ色のラインを見ています。あなたは私たちに非常に重要なコスト削減の状況を与える、オレンジ色の欠陥がより緩やかに増加する低側にも高価な側に速く成長見ることができます。

 

基づくものとして、より成熟した開発手法に依存して、左ソフトウェアテストのピラミッドは  -合理的にユニットテストの開発コードで解説されていのシリーズを作成し、機能テスターやアプリケーション・プログラム・インターフェーステスターを行いますあなただけのすべてのものが実行されている改善するために十分な労働力とユーザーインターフェースのテストを持っているので、彼らは、後半のサイクル試験への依存を最小限に抑えることができます。このように、後半のサイクル試験は、問題を見つけることがない、機能性を向上させることです。「初期のテストでは、テストは、多くの場合、」チームを去っマントラです。

この時点で組織の数は停止しました。あなたが左に深く進めるときには、コード自体に、あなたはより多くの価値を得るでしょう。結局のところ、これはコードが導入された場所であるので、彼らはまだ開発中であるときのは、仕事を探してみましょう。

私たちは、静的コード分析の恩恵を受けるところです。できるだけ低コストで問題を発見したら、実際のコーディング段階での問題を探し始めることができます。

テストで問題を発見するために開始する前に、それがいずれかの問題を再現しようとしないので、理解したり、物事が開発残すために失敗し、最も効果的なのも、最も費用対効果が、時間だけではありません。数日または数週間から欠陥修理サイクル減少数時間または数分する機能は、非常に大きな助けです。 

左の方法の分析

このように、どのようにそれを残しましたか?簡潔にするために、二つの主な活動への試験方法を左:導通試験を確保するために、仮想化サービスを活用し、開発を提供し、ベストプラクティスをテストします。

あなたが識別し、以前のプロセスの欠陥を防ぐために、このような静的コード解析と単体テストとして開発プラクティスの初期段階を行います。問題がゴールではありません見つけることを覚えておくことが、質問、追いつくために発行され、特に人々の数を減らすことが重要です。そして、それははるかに手頃な価格です - 最後に、最初にそこはるかに価値がある多くの問題を見つけるためのより少ない問題を作成。左側の素敵な削減バブルがあり、次のチャートを見てください。

 

   標準のコーディングは同等のソフトウェアエンジニアリング標準規格である、と彼らは(外見つかった以前の問題に加えて)重要な問題の容量を小さくし、左手の活動からより多くの価値を取得しています。コーディング標準を使用すると、静的コード分析を通じて、悪い危険か危険なコードを避けるのを助けます。

セキュリティソフトウェアの場合、あなたのソフトウェアを強化することが特に重要です。あなたはむしろそれをテストするよりも、あなたのコードの安全性を作成したいです。コードの規格は、両方の良いアイデアは需要が、である、(それが安全にするためにこのような設計を介して)より安全なアプリケーションを構築するために最初からあなたを保つあなたはこのようなルールとして、一般的なデータ保護規制の対象となっている場合

次に、あなたは後半含め、開発プロセスのすべての段階でテストを実行する必要がある、と彼らは先に実行するように続けました。これは、継続的なフィードバックを提供するために、アジャイル開発手法を取るために最初から最後まで、開発プロセスの面でチームのために重要です。ユニットテストは、単純に左が、外部システムからの独立ため、しばしば困難に行わ高度なテスト機能を実行するために続けることができます。これは、あなたがテストを続行することができますローカルサービスを有効にするには、仮想化を活用することができるものです。

サービスの仮想化を使用すると、ホスト、サードパーティのサービスとして、限られた容量の独立したシステムをシミュレートすることを可能にする、あるいはまだ準備制度ではないかもしれません。それらをシミュレートすることで、あなたは完全な機能テストシステムが利用可能で、あなたは実行がデスクトップ開発に残されているテストすることができます実行することはできません。

パフォーマンステストの点では、サービスの仮想化は、すべての準備が整っ前にテストすることができ、かつ完全な研究室では、システム上のすべてのものがありません。「 - あればどのような」シナリオは、知恵のクラウドデータベース高速と低速(困難な何かが現実の世界で起こる)場合のように何を実行するあなたも、すべての種類を実行することができますか?それとも私のサーバーは、とんでもない間違いを投げ始めると、わずか500エラー - それはどのようにシステムのパフォーマンスに影響を与えるのだろうか?あなたが好きとあなたのシステムに強い超えてプッシュして、可能な限り早期にこれを実行すると次のことができます。

同様に、あなたは、以前のあなたのセキュリティテストを開始することができます。その悪魔の方法で行動するシステムのシミュレーション:物理的なシステムから切り離すには、あなたがもっと面白いことを行うことができます。ちょうどあなたのシステムと汚染データなどのサービス攻撃の分散DoSを突く代わりに、あなたは、欠陥のあるシステムデータ、または一般的に、攻撃者によって使用される他の多くの脆弱性を送信し、完全なパッケージを持つことができます。ですから、以前のテストだけでなく、あなたが試験所や生産システムよりもさらに深く踏み込んだことをテストすることができます。

ミスやトラップを避けてください

コード位相欠陥検査に危険なシフトでは、誤って自分の体をテストするために、ソフトウェア開発者にあまり負担をかけています。あなたは修正が急激に高くなって右のバグに行くとき、あなたが心に留めておくために、チャートを見て重要なことは、コストである、リソースは、ソフトウェアライフサイクルのいずれかに残すことができる最高のコストを持っている - あなたは言うまでもありません彼らは、機能の開発に焦点から奪います。

あなたは、あなたが最初の欠陥でプログラムに入れて量を減らしたい、以前の質問を検索したくないだけ。

そして、そこにもう一つの落とし穴があること:あなたがある場合はやりがいの人が見つけ、問題を解決し、そして今、彼らは少ないのでしょう - これはあなたが本当に欲しいものですが、あなたは本当にあなたが製造されている質問の数を減らす場合にのみ。より多くの測定に追いつくために、それはフィールドに、より便利かもしれません欠陥の数を測定します。

あなたのプロセスや製品の改善

現代のソフトウェアのテスト技術を活用することで、あなたは、安全で信頼性が高く、機密ソフトウェアにアクセスすることができます。ソフトウェア開発ライフサイクルの左によるテストは、あなたはすぐに問題を発見することができますし、最初のタイムコードを低下させる問題を数を置くときながら、それは、低い場合は、テストのコストを削減します。時間、お金と頭痛を保存するには、この方法を試してみてください。

おすすめ

転載: www.cnblogs.com/fengye151/p/11518441.html