2011-12-14 6 views
2

以前私のソフトウェア会社はBDDやTDDをしていませんでした。以前のテストでは、展開の数日前に新しいソフトウェアを試してみることを前提としていました。BDDをほぼ完成したプロジェクトに含めることは可能ですか?

最近のプロジェクトは約70%完了しました。また、新しい技術、ツール、開発方法の遊び場としても使用しています。私の上司は、「テストテスト」に切り替えることを望んでいました。

私はSelenium 2とRSpecを試しました。どちらも有望ですが、何ヶ月もの発展を追い抜くには?さらなる問題は、次のとおりです。

  • 新しい言語
  • 巨大な部分はフリーランサーでいくつかのソースのコメントのほか
  • まったくドキュメントをハッキング空想の
  • たくさん書かれている自分でコードの行を書いたことはありませんフローチャートとフローチャート

私ができたことは、セレンの全プロセスをカバーすることでした。これは、ソフトウェアがこのようにテストされることは決してありませんでしたので、これは非常に辛いです(しかし、それでも可能です)。私たちは動的に生成されたid、ファンシーjQueryなどをたくさん持っています。 RSpecを使い始める方法も知らない。

このプロジェクトにBDDを適用することはできますか?または私は遠くに走って戻ってくることはありませんか?

+0

最初にテストを書くことを意味します。あなたは新しいコードのためにそれを行うことができますが、定義上既にそこにあるコードに対してはできません。 –

答えて

5

開始する前に、あなたが上司にテストから得た値を聞いたことがありますか?私はあなたの上司と最初にこれを明確にしたいと思います。システムレベルのBDDの主な利点は、ビジネス関係者との会話であるの前にのコードが書かれています。あなたがしていることすべてが既存のコードをラップしているなら、これを得ることはできません。ユニットレベルでは、主な利点は、クラスの責任とその振る舞いに疑問を呈していることです。ただし、アプリケーションの価値と各レベルのコードを理解するのに役立ちます。

上司がBDDやTDDを試したいのであれば、新しいプロジェクトを開始したり、他の人から既存のプロジェクトを取得してテストをラップする方が簡単かもしれません。彼が伝統的なコードでBDDを真に試してみたいのであれば、あなたは持っているものを存続させる価値があるかもしれません - @ Eskoの本の提案は岩です。既存の機能を上位レベルのシステムテストに置き換えることで、下位レベルのコードをリファクタリングする際に問題が発生しないようにすることができます(テストを実行するには、そうする必要があります)。私はさらにMartin Fowler's "Refactoring"をお勧めします。

RSpecは、TDDの変形として、ユニットレベルでBDDを適用するのに最適です。自動化されたテストをあなたの環境全体に広げようと思っているならば、キュウリを見てください。それは再利用の手順をずっと簡単にします。あなたのステップからセレンを直接呼び出すことができます。

私はBDD hereにリンクのページをまとめました。これは、新参者がそれをよりよく理解できるように願っています。運が良かった。

+0

ありがとう、非常に役に立つ。 – SDD64