タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

TDDに関するthreeMonthsのブックマーク (16)

  • アジャイルにTDDしようとしてペアプロして失敗した話 - 水まんじゅう2

    これはTDD Advent Calendarの18日目。 記事としては @mao_instantlife さんの TDDやってみてコメントが減った話 のあと、@cubeon さんの きっと方眼の理から逃れられないお前たちにも告げる!テストコードを手に入れるのだ! の前となります。 最近、新しい開発手法の一貫としてTDDを採用しようとするプロジェクトが出始めている印象があります。 ただし、とりあえず取り入れてみたけれどもうまくいかなくて結局ウォーターフォール方式に逆戻りという例も多いのではないでしょうか。 以前、アジャイルにTDDをしようとしてペアプロして失敗したプロジェクトの話を聞いたことがあるので書こうと思います。 その時のプロジェクトでは数百人月前後の工数をかけてそれまであったレガシーシステムをJavaでリプレイスしようとしていたようです。 それなりの規模のプロジェクトに多いように、さ

    アジャイルにTDDしようとしてペアプロして失敗した話 - 水まんじゅう2
  • TDD の基礎体力と、TDD に対する想い - ぐるぐる~

    TDD Advent Calendar 2011 の 4 日目の参加エントリです。 前半では、TDD を学ぶ前に身に付けておくといいと思う基礎体力について書きました。 後半は、まぁ、その。後悔はしていません。反論ウェルカム、議論しようぜ。 不安をテストに 「レッド - グリーン - リファクタリング」は、TDD の根っこの部分であり、これ自体が「どう TDD をやればいいか」を教えてくれるものではありません。 それに対して、「不安をテストに」というのは、「どう TDD をやればいいか」という指針を与えてくれる言葉です。 この言葉自体は、TDD Boot Camp で自分のものにできました。 不安については、テスト駆動開発入門では (言及されているものの) 自然に組み込まれていて、最初に読んだときには全然気づきませんでした。 しかし、TDDBC で id:t-wada (和田さん) に短くて

    TDD の基礎体力と、TDD に対する想い - ぐるぐる~
  • アジャイル開発とTDDを半年間実践してみた顛末と、これから

    PHP Conrefence Japan 2011 Sep 10thでの発表資料 http://phpcon.php.gr.jp/2011/Read less

    アジャイル開発とTDDを半年間実践してみた顛末と、これから
  • テスト駆動開発 - Wikipedia

    テスト駆動開発 (てすとくどうかいはつ、英: test-driven development; TDD) とは、プログラム開発手法の一種で、プログラムに必要な各機能について、最初にテストを書き(これをテストファーストと言う)、そのテストが動作する必要最低限な実装をとりあえず行なった後、コードを洗練させる、という短い工程を繰り返すスタイルである。多くのアジャイルソフトウェア開発手法、例えばエクストリーム・プログラミングにおいて強く推奨されている。近年[いつ?]はビヘイビア駆動開発へと発展を遂げている。 最も基となる開発サイクルは以下のようになる。 失敗するテストを書く できる限り早く、テストに通るような最小限のコードを書く コードの重複を除去する(リファクタリング) なお、テストの実行環境ツールであるxUnitでは、テストの失敗を赤いバー、成功を緑のバーで通知するため、上記のサイクルは R

  • TDDとテスト容易性(試験性)の関係 - 千里霧中

    最近ソフトウェアテスト方面の方々に対してTDDの講義を行う機会を頂いていて、テスト・QCの視点とTDDの視点の関わりについていくつかの点で考えるようになっている。その延長線上で、少し前に話題になっていた、TDDとテスト容易性(試験性)の関係についても考えを整理しているのだけれど、区切りのいいタイミングなので今回文章としてまとめてみたい。 なお今回は、割と代表的な単体テストの運用形態と思われる、ウォーターフォール的に単体テストを用意するアプローチ(設計のブレークダウンで確保するアプローチ)と、TDDで0から単体テストを蓄積していくアプローチ(インサイドアウトのTDDで確保するアプローチ)を比較していく形で、TDDとテスト容易性の関係について説明していきたいと思う。 無防備なテストラストの弊害 まず前提の話になるけど、取りあえず何も考えずにテストラスト(後からテストを書くアプローチ)で単体テス

    TDDとテスト容易性(試験性)の関係 - 千里霧中
  • TDDを真面目にやってみて気付いたこと - Masatomo Nakano Blog

    何を今更、なことかもしれないないのだけど、もしかしたらこれを知ることでTDD(Test-driven development)をやることのハードルが一気に下がる人がいるかな、と思ってメモ。 特に、ある程度プログラマとして経験があるけど、どうもTDDは慣れないという人向き。 “TDDとは、TDD以前に脳内や機上でやっていたことをコードに落とすことに過ぎない” このことが解ってから、TDDをするのが一気に苦痛ではなくなり、むしろ楽しくなった。 TDDでなくても、コーディングをするとき、temporaryなテストコードを書いたり、目視でのチェックはしたりするものだろう。たとえば、一時的に変数の値をハードコードして挙動を変えてみて、それを目視で確認したり、printデバッグとかもその一部だ。 つまり、このtemporaryなコードや目視している部分をpermanentにするのがTDDで書くテストコ

  • TDDはテスタビリティの保証をしてくれるのかも - プログラマーの脳みそ

    TDD Boot Camp 北陸行ってきました。 TDDはテストドリブンデベロップメントの略で、自働テストを書いてから実装を書くというスタイル。ここでよく誤解されるのだけど、業務でおなじみ単体テストや結合テストといった網羅的なテストを記述してから実装を書くわけではない。目の前の1歩分、ひとつだけテストを書き、すぐさま実装を書いて自働テストをグリーンにする、というやり方をするのだ。こればかりは実際にやってみないと誤解は解けないかもしれない。 さて、深夜のテストTL - Togetterや、TDDはテスト手法か否か - Togetterで議論されている「TDDは品質保証の手法ではない」という部分に関する議論。ここでいう「品質保証」はバグがないこと、ソフトウェア品質の12の属性でいう信頼性(reliability)が高いことを指す。 TDDのスタイルには網羅的な検査をしてバグをあぶりだすようなフ

    TDDはテスタビリティの保証をしてくれるのかも - プログラマーの脳みそ
  • 僕がTDDをやめた理由 - カタチづくり

    タイトルは、まあ、半分釣り。TDDな人もそうでない人も、肩の力を抜いてお気楽にどうぞ。 題に入る前に まずお礼 ここで書くことは、前の記事 TDDはYAGNIに矛盾する? - カタチづくり から派生して色んな方と意見を交わした経験が元になっています。この場を借りて、色々とアドバイスを頂いた方に心から感謝の意を表します。 特にコメント欄にお寄せいただいた きしだ さんのコメントは、コメントと言うよりももはや一つの素晴らしい記事となっていて、もう必読といってもいいレベルじゃないでしょうか。当にありがとうございます。特にBDDについて大きなヒントを頂きました。 押し付けではなく、交換 タイトルから想像がつくとおり、ここにはどうしてもTDDに対して否定的な意見ばかりが並んでしまう。でも、だからといって僕がTDDを完全に否定しているとは思わないで欲しい。 僕が今一番恐れていることは、TDDに対し

    僕がTDDをやめた理由 - カタチづくり
  • 最近の TDD 議論についてちゃんと僕の気持ちを書いてみる - 宇宙行きたい

    最初に ちょっと最近,ドタバタしてて twitter だと腰を据えて話せないなと感じたので,ちょっと最近のTDD 議論についてちゃんと僕の気持ちを書いてみようと思います. これは僕が"今"感じてる事とか考えている事を書いているだけですので,誰かを論破したいとか,誰かを説得したいという意思は無いです. 当に裏とかはなく,純粋に「"庄司嘉織"という人間は"今この時"にこういう事を感じてこういう事を考えた」というだけです. もちろん明日には考えが変わるかもしれないし,逆に過去の発言とは違うかもしれませんが,「最近はこう感じている」という事をちゃんと書いておこうと思いました. デブサミでの発表について id:babie さんにちゃんと返事をしていなかったので,まずちゃんと返事をしておこうと思います.(遅くなってしまってすいません) @kakutani は興味なくても、あのスライドだと @yosh

    最近の TDD 議論についてちゃんと僕の気持ちを書いてみる - 宇宙行きたい
  • プログラミング初等教育とTDDの相性は最高

    1年半ほど前、入社前はプログラミング経験ゼロの@chibisayoを新入社員としてチームに迎え、私がOJT担当っぽくなった時の経験から、プログラミング初等教育とTDDの相性は最高であることをきちんと文章に残しておきたかったので、このビックウェーブに乗ることにしました。

  • TDD Boot Camp 北陸 事前アンケート中間発表 - @katzchang.contexts

    自由回答欄がいい感じにいい感じなので、だーっとコピペします。 引き続き、このアンケートにご協力頂けるかたを募集しています。TDDBC北陸に参加してみたい方はもちろん、興味はあるけど参加はできなさそうな方なども、ぜひご協力ください。 アンケートは => http://bit.ly/6ToL7W イベントの参加募集は、1/12くらいから始める予定です。参加表明っぽい設問がありますが、改めて募集しますので、今しばらくお待ちください。顔。 あなたが自動テストを使って開発しているなかで、課題となっていることがあれば、教えてください。 TDDを既に実践している テストの資産価値。今後役に立たない/足枷となるテストをいかに捨てるか。 スローテスト。 テストしにくいもののテスト。JavaScriptGUI など。 「テスト」という用語がもたらす誤解。お客様には品質保証として捉えられがち。都度説明して

    TDD Boot Camp 北陸 事前アンケート中間発表 - @katzchang.contexts
  • TDD Boot Campのコード - @katzchang.contexts

    というわけで、晒します。 前半は@katzchang・@kozy4324のペア。後半は@katzchang・@yugoriのペア。 Eclipseは独自に履歴を持っているので、2パターンを引っ張り出してきました。クラス宣言部にカーソルを当てて右クリックからLocal History。たぶん20セーブくらいしか保持してないけど、たまに助かることもあります。 仕様変更直後くらい ということで、仕様変更直後くらいのセーブから。大体の時間で取っているので、REDな組み合わせかも知れません。 基的には、テストコードは下に順に追加していっています。上にある項目から順に、プロダクトコードを作り込んでいったってことです。 第一の仕様変更(キャッシュサイズを変更できるようにする)まで対応済、第二の仕様変更(一定時間が経過したデータはキャッシュから消える)に対応しようとしたら、既存機能にバグの疑いがあり、バ

    TDD Boot Campのコード - @katzchang.contexts
  • TDD Boot Campの感想 - @katzchang.contexts

    「一番大事なことは最初に言う」とのことなので、大事なことから順に書きます。 反芻してるうちに思い出したら、追記するかもしれません。 ペアプロの前半のパートナーである@kozy4324とともにミルズ賞を受賞しました。 「前半のペアでコードが綺麗だった。私はJavaはわからないが、何が書いてあるのか、どう動くのかがわかった。後半にペアを変えても、それぞれのペアで綺麗なコードを書いていた。」とのこと。最大級の栄誉です。 個人的な理由の一つは、「いわゆるJava」っぽくないJavaが好きなので、Javaに慣れていない人向けなコードを書いていたこと。もう一つは、TDD読書会で存分に予習できていたことです。 @kozy4324はもちろん、TDD読書会のメンバーにも感謝です。 TDD Boot Camp Hokurikuを企画中です。3月予定。コーチ役としてid:t-wadaは欠かせないでしょう。Mic

    TDD Boot Campの感想 - @katzchang.contexts
  • TDD Boot Camp の参加報告とか読んで - ぐるぐる~

    TDD Boot Camp には行っていないんだけど、参加者のエントリを色々読んで触発されたので思っていることをちょこっと書いておきます。 日曜日は id:a-hisame に無理言って色々と聞いた*1しね! 以下引用が多くて微妙に長文。 アクセス修飾子 デモ:coberturaに機能追加する*1 テストできそうな箇所を小さい範囲にメソッド抽出 さらに、副作用がある箇所をprotectedメソッドに抽出 サブクラスで副作用メソッドをオーバーライドして無効化 テストのために、検出用変数をprivateからpublicに変更 検出用変数にアクセスして、assertを記述 *1: この辺ちょっとうろ覚え。もし間違っていたらご指摘ください。 TDD Boot Campに参加しました - @ikikko のはてなブログ これの 4 と 5 なんだけど、個人的には package private でい

    TDD Boot Camp の参加報告とか読んで - ぐるぐる~
  • TDDを理解するためのまとめ - Logic Dice

    わんくま同盟名古屋勉強会#9に置いて、biacさんのTDDに関する話が出たので、少し自分がTDDについて思うことを纏めてみました。 TDDが説明されるのを聞く度、見る度、多分説明している人は分かっているのだろうけれど、それが他の人に当に伝わっているのかが怪しいと思ったためです。 というのも、自分が(多分)理解するまでに、酷い回り道をしたもので。 また、biacさんのTDDに関するWebサイトはこちら。 TDD.NET - http://www.tdd-net.jp/ 以下、長文注意。 背景 まず、自分がTDD(より正確に記述するなら、「テストファースト*1」が正しく、TDDではない)をまともに実践しようと思って始めたのが、大学の4年時の最初なので、今から18ヶ月程度前です。 とある研究室のプロジェクトで使いたいという話になり、そこで実践を行いました。当時の環境はJDK + JUnit

    TDDを理解するためのまとめ - Logic Dice
  • 特集 「テスト駆動開発」はプログラマのストレスを軽減するか?(2/4) - @IT

    レッド/グリーン/リファクタリングの三拍子 レッド/グリーン/リファクタリングというのは、それぞれ特に新しい用語というわけではない。レッドとグリーンは、それぞれ、NUnitのようなテスト・ツールで表示される結果を意味する。これらのツールでは、テストが進行するにつれてバーが伸びていくように表示することが多いのだが、その際、エラーがなければ緑色(グリーン)、エラーが起きると赤色(レッド)になる。つまり、レッドとはテストがパスしない状況、グリーンとはテストをパスしている状況を意味する。リファクタリングはすでに説明したが、ソース・コードをきれいな形に修正する作業である。 これらを踏まえてレッド/グリーン/リファクタリングという言葉を解釈し直せば、 テスト失敗/テスト成功/コードをきれいにする と読み替えることができる。とはいえ、 レッド/グリーン/リファクタリング といった方が格好よいし、リズム感

  • 1