TDDを使用してコードの品質を改善します


開発者として、「ソフトウェア開発時にテストコード(ユニットテスト、機能テストなど)を書くことで製品のバグを効果的に減らすことができる」というアドバイスをよく耳にしますが、どのように検証すればいいのでしょうか.最大の検証例はTDD(テスト駆動開発)です.以下、TDDという開発技術を通じてコードの品質と安定性を改善します
(一)TDDとは
テストドライバ開発(Test Driven Development)はTDDと略称され、最初の概念は1993年に始まり、2003年に興り、徐々に大衆に受け入れられてきた.
TDDはソフトウェア開発の理念であり、限界プログラミングの概念と同様に「テスト優先」であり、3つのステップでTDDの開発法則を学ぶことができる.
  • 需要を特定の試験用例
  • に変換する.
  • ソフトウェアニーズを符号化&&作成試験用例
  • はソフトウェアコードを再構築し、冗長コード
  • を除去する.
    必要な変更や機能が増加するたびに、この3つのステップを繰り返してコードを改善し、エラー率を最大化し、完全なTDD開発サイクルを実現します.
    (二)TDDのメリット
    TDDの長所はいろいろありますが、個人的に重要だと思う点を挙げてみました
  • タスクの分解、開発者はユーザーをもっと理解します:通常開発者は業務を書く時、大多数はInputとOutputだけを考慮して、ユーザーの角度に転換して製品(ユーザー向けのプログラミング)を考えていません.TDDを通じて、開発者はもっとユーザーの角度に立って考えて、ユーザーが行う可能性のあるすべての操作を深く考慮します.開発者の立場に立って、ユーザーが私たちのf品をどのように使うべきかを考えているわけではありません.
  • テスト用例カバー率が高く、Bugが減少:TDDを使用する開発過程では、まずテストを作成してから、業務需要コードを開始する必要があるため、すべてのテストが合格した後、開発者はコードを提出することができ、このようにソフトウェアコードテストカバーが非常に高く、テストカバー率が高いと同時に、コードが十分にテストされたことを示している.これで本格的な環境運用でバグに遭遇することも少なくなります.
  • より明確でクリーンなコード:TDDの開発過程で、私たちは絶えずコードを再構築し、悪いコードを解消しています.これは私たちのコードをより清潔で効率的にし、それによって私たちのソフトウェアのテストを改善し、プロジェクトをより柔軟で拡張しやすくします.
  • より安全な再構築:再構築変更はコードの内部構造であり、外部インタフェース機能を変更することはない.コードのテストカバー率が高いため、コードのテストカバー率が高いため、各機能には対応するテストコードがあり、開発者はより大胆に再構築することができる.十分なテストコードがあるため、私たちが再構築するとき、既存の機能を破壊したら、テストはすぐに失敗します.
  • より良い自信、大量のテスト用例が存在するため、提出するたびに新しいコードがプロジェクトの前のサービス運行に影響を与えることを心配する必要はありません.テスト用例を実行するたびに、あなたのコードが元のシステムの運行に影響を与えるかどうかを検出することができ、開発者の自信を大きく高めました.

  • (三)第一の簡単なTDDを実現する
    次にPHPコードで簡単なケースを示します.入力した金貨を残高に両替します.残高は整数しか残っていません.残高は負数ではありません.
    1.試験用例の作成
    所望の結果に従って自動化パラメータのテスト例を作成する.
    assertTrue($balance);
        }
    }
    

    このとき、ビジネスニーズがまだ実現していないため、次のステップに進む必要があります.
    2.業務コードの作成実現

    3.テストの実行
      1:
        Command: run ExchangeTest
             :3000
              :5
        
      2:
        Command: run ExchangeTest
             :-3000
              :-5

    ExchangeTestテスト例を実行すると、今回は両替後の残高を返したが、1回目は成功し、2回目は失敗した.
    4.改善の実現

    5再実行テスト
      :
        Command: run ExchangeTest
             :-3000
              :0

    ビジネスニーズに合った実行に成功し、コードをコミットします.
    ***
    当时TDDを勉强した后、あなたはタスクの分解、小歩速走のこのような开発方式を掌握して、あなたはそれをあなたのあまり自信のない机能の开発に応用することができて、彼はあなたのコードの品质と清潔度を高めて、生产Bugの発生率を减らして、同时にTDDの関连する键の部分は駆动(driven)にあって、テストの駆动を私达に机能の开発を行って、1つのテストを书くたびに、より多くの生産コードを書くことを駆動し、私たちの機能を実現する方向に進んでいます.
    最後にTDDをよく使用したり、ワークモードに適用したりするには、絶えず練習する必要があります.TDDの秘訣を把握するには、コードをテスト可能にして、プロジェクトに上書きすることができます.
    TDDの論争性については依然として大きな相違があり、個人的な観点は、具体的なバランスが必要なのか、それともプロジェクトの実際の実施に実行する必要があるのか、時間の許す過程で、各重要な関数はユニットテストを書くことができ、正確性テスト、境界テスト、異常テストなどをカバーすることができる.その後のコード変更はもう一度テストを実行すれば、多くの開発時間を節約し、プロジェクトの安定性を高め、最後に一部の開発者がドキュメントやテスト例を書くのが好きではない習慣を治すことができます.