5

私の職場はたくさんのカウボーイコーダーで構成されています。それらの多くはジュニアです。これは偶然にも多くのコード品質の問題の原因となっています。

チームがTDDを使用するのに最適な方法についての提案を探しています(単体テストから始めて、回帰テストに移り、後でさらに自動化されたテストに進むことができます)。

最終的には、私たちの過ちからより早く学び、より良いコードを作成し、より良い開発者を育ててほしいと思っています。

チームにTDDを導入する方法についていくつかの実用的な提案があることを願っています。具体的には、LAMP(php)スタックで選択するのに最適なツールはどれですか。

この質問の自由形式が多すぎる場合は申し訳ありません。

4

5 に答える 5

4

このプロセスを 4 回行った後、TDD の導入は、ある程度の強制がなければ失敗することがわかりました。プログラマーはスタイルを切り替えたくないし、最初の単体テストを書いて突然光が見えることもありません。

管理レベルで強制することはできますが、これは関係者全員にとって時間がかかります。とにかく最初はある程度のレベルが必要ですが、最終的には自動強制が必要になります。これに対する答えは、継続的インテグレーションを導入することです。

私は、CI サーバーがあらゆる TDD 環境の究極の要であることを発見しました。開発者が、テストを書かないと何か悪いことが起こることを理解していない限り、自分の足元に問題があると感じるカウボーイが常にいることになります。

于 2009-06-06T19:10:43.643 に答える
2

テストの作成を簡単にし、結果を表示します。

  • 優れたドキュメントを備えたTestFrameworkを使用してください。SimpleTestのように
  • テストがデータベースの内容に依存している場合は、スクリプトの開始時に削除および作成される参照データベースを作成します。
  • すべてのテストを実行し、スタンドアロンモニターまたはテストを表示/簡単にアクセスできるようにするものに結果を表示するスクリプトを作成します。(コマンドプロンプトの実行はオプションではありません)

私は個人的に、アプリケーション内のコードのすべてのチャンクに対してテストを作成するわけではありません。
アプリケーションのドメインオブジェクトに注目します。私の場合、これらは「価格計算」と「在庫変更」です。

彼らはおそらくすでにテストを書いているが、作成直後に作業を削除することを彼らに思い出させてください。例:関数の開発中に、 echoまたはvar_dump()の結果を含むページ/テストスクリプトが作成されます。結果を手動で検証した後、関数のパラメーターを変更して、もう一度確認します。

少し努力すれば、これらのテストをUnitTestで自動化できます。そして、どのプログラマーがものを自動化するのが好きではありませんか?

于 2009-05-16T09:36:20.917 に答える
0

チームの質問と、ソフトウェア開発とテストに関する普遍的なアイデアについては、Joel Spolski の Web サイトと書籍をお勧めします: http://joelonsoftware.com/彼から多くの洞察を得ました。

于 2009-05-16T08:00:28.323 に答える
0

SimpleTest - PHP のテストに関する優れたドキュメントと説明

于 2009-05-16T08:10:48.127 に答える
0

TDD を開始する別の方法は、PHP フレームワークを使用することです。フレームワークがなければ、単体テストを効果的に実装することは困難です。

于 2009-05-16T08:15:29.957 に答える