タグ

TDDに関するkamatama_41のブックマーク (45)

  • 希薄化したTDD、プロダクトの成長のために必要なものは?〜『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談 (6)

    テスト書くのが当たり前、だけど・・・和田:次に意味の希薄化ですね。『Test-Driven Development by Example』の出版から15年経ち、テストコードを書く人はすごく増えました。15年前は啓蒙期で、テストコードを書きましょう、テストコードの書き方はこういう感じですというのを頑張って啓蒙する必要があった。 でも、例えば今の若手プログラマーは普通にテストコードを書く。なぜなら既存システムにはテストコードが書かれているから、開発の継続、不具合の修正とか機能追加を行う際にテストコードを書くのが普通だし、テストコードが無いとレビューは通らないしみたいな話になって、テストコードがあるという生活は普通のものになっている。そうすると、なぜテストコード書くのかとか、来こういうテストコードを書きたかったんだけどとか、こういうテストを書くべきなんだけどみたいな議論はだいぶ土俵から外れてし

    希薄化したTDD、プロダクトの成長のために必要なものは?〜『健全なビジネスの継続的成長のためには健全なコードが必要だ』対談 (6)
    kamatama_41
    kamatama_41 2018/04/03
    "モックが強くなりすぎて設計改善効果がどんどん薄れていってしまった"のくだり、わかりみがありすぎる
  • 夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに

    夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ
  • xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - 千里霧中

    最近、昔作ったTest Doubleの解説資料を参照・引用してくれる方がちらほら出ていて恐縮しているのですが、見直してみると結構わかりにくい資料なので今回文章としてまとめたいと思います。内容は世間一般的に言われているMock、Stub、Fake、Dummyといった言葉の定義になります。 Test Doubleとは Test Doubleとは、テスト実行時に、テスト対象が依存しているコンポーネントと置き換わるものです。「テスト代役」と訳されることもあります。世の中でMock、Stub、Fake、Dummyなどと呼ばれているものの総称に位置づけられます。 簡単な例を以下に示します。このコードでは、テストメソッド「テストコード()」がメソッド「テスト対象()」をテストしています。また「テスト対象()」は、中でメソッド「外部メソッド()」を実行しています。なお「外部メソッド」はテスト対象でないとし

    xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - 千里霧中
  • ユニットテストにまつわる10の勘違い | DevelopersIO

    渡辺です。さる方面からテスト系のエントリーがまだか…と催促されたので、ユニットテストについて少し考えてみたいと思います。 最近、TwitterのTLをチェックしていると、JUnitを利用しているにも関わらず違和感のあるTweetや、原因をJUnitにして来解決すべき問題から目をそらしているようなTweetを多く見かけます。そこで、JUnitをによるユニットテストに関するありがちな勘違いをまとめてみました。 なお、JUnitの部分は、RSpecでもNUnitでも適当に置き換えて読んでも構いません。 1.JUnitを使うことが目的という勘違い JUnitを利用すること自体を目的にしたところで何も得る事はありません。 ありがちな話ですが、「納品物としてJUnitのテストコード(または実行結果)を求められている」ことが理由でJUnitを利用しているならば、それは足かせでしかない可能性があります。

    ユニットテストにまつわる10の勘違い | DevelopersIO
  • テスト駆動開発とは何か、それを気に入っているのは何故か、あなたも使うべきなのは何故か | POSTD

    ペースが速い現代のソフトウェア開発環境では、テスト駆動開発(TDD)という言葉をよく聞きます。その利点だけでなく欠点についてもソフトウェア開発コミュニティでよく議論されています。TDDについて、”自己嫌悪に陥って屈辱を味わっている者に対する非現実的で効果のない道徳教育のようなものだ”と言う人もいれば [1] 、”リファクタリングを使って迅速な設計を支援するただのツールだ”と言う人もいます [2] 。 「ダメなプログラマは全てに答えを持つが、優れたテスタは全てに疑問を持つ」 Gil Zilberfeld しかし、TDDは新たな手法というわけではありません。広く知られている最も古い文献は1957年に出版されたD.D. McCracken著の『Digital Computer Programming: The First General Introduction in Book Form, St

    テスト駆動開発とは何か、それを気に入っているのは何故か、あなたも使うべきなのは何故か | POSTD
  • JJUG 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」

    This document discusses Yarn and its advantages over npm. It notes that Yarn uses yarn.lock files instead of npm-shrinkwrap.json files to lock down dependency versions. Yarn is also described as being faster, able to work offline by caching dependencies, and potentially more secure than npm with features like flat mode and module folders. The document suggests Yarn may handle dependencies and devD

    JJUG 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」
  • TDDを諦めることと、RSpecをやめること - 高柴ラボ

    2014-10-17 TDDを諦めることと、RSpecをやめること Ruby on Rails Ruby RSpec 開発手法 最近Web上でも仕事場でも、RSpecをやめて別のテストフレームワークに変えようと思っている……みたいな話をちょくちょく見聞きするようになった。僕がRuby on Railsで開発を始めた2012年8月当時、すでにRSpecはテストフレームワークのデファクトと言ってよかった。一斉を風靡したRSpecが、なぜ今見直され始めているのか。 きっかけになったのは今年4月の、Rails作者であるDavid Heinemeier Hansson(以下DHH)によるTDD is dead発言だと思う。 5月にはこの発言によるTDDへの風評被害を重く見たKent Beck*1が、レフリーにMartin Fowler*2を迎え、DHHと相対するドリームマッチが開催された。この会談の

  • テストコードを書く文化を根付かせたい─和田卓人|【Tech総研】

    におけるテスト駆動開発(TDD)のスペシャリストとして知られる和田卓人氏。講演活動やハンズオンイベントを通してテストの重要性を語り続けている。その深奥にあるプログラムの哲学とは── 父親がデータベース設計を得意にするソフトウェア・エンジニアで、受託開発の会社を経営していました。私は大学在学中からその仕事を手伝っていて、その延長で大学を出るとその会社の一員になりました。 そのころのことで一番印象に残っているのは、電子政府関連の公共システム開発に関わる大規模プロジェクトへの参加です。複数のSIerやソフトハウスが関わり、要件定義に時間をかけ、膨大な設計文書をつくっては、何千人というエンジニアを投入する、典型的な大規模システム開発です。私はそこにSEの一員として参加することになりました。 ただ、私は初日から生意気にも「Excel設計書を書き続けるために来たのではありません」と嘆願して、基盤

  • なぜクライアントJavaScriptの単体テストを書くのが難しいか、考えてみた - mizchi's blog

    ってsinonのスタブ漏れを探しながら何度目かわからない感じにキレてた。 とにかく仕事でJSのテスト書くのが辛いので考えてみる。比較的JSのテストに慣れてる自分ですら辛いのだから、世界はもっと辛いに間違いない。サーバーサイドのnode.jsの話ではない。 JavaScriptで完結しない 構造がHTMLの構造と密結合している。装飾や位置、表示/非表示はCSSによって制御されている。 クライアントJSはHTMLと密結合しており、CSSからビューは影響を受ける。それらがネットワークの結果を受け非同期に振る舞いを帰る。その最終的な値を取得するのが難しい。 もちろんサーバーサイドだってDBやネットワークという外部リソースを扱うが、モックの手法が確立しているし、局所的な複雑度は、JSの方がはるかに多い。 言語仕様が貧弱 mochaやjsmineはrspecを真似てるけど、質的にJavaScript

    なぜクライアントJavaScriptの単体テストを書くのが難しいか、考えてみた - mizchi's blog
  • テスト駆動型開発についての議論 - ワザノバ | wazanova

    http://blog.testdouble.com/posts/2014-01-25-the-failures-of-intro-to-tdd.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約7時間前 Test Double社がブログで、TDD (テスト駆動型開発) を教える場合のアプローチを提案しています。 TDDについて、同じ用語やツールを使っていても、「モックオブジェクトがありすぎて、ひどい。」「モックオブジェクトがあふれていて素晴らしい!」という異なる見解に至るケースがでてしまっているのは、理想的なゴールに至る道筋を統一したかたちで教えきれてないからだと指摘しています。 TDDの一番の効果はコードのデザインの改善であり、コードのクオリティの担保は、うまくいけば二次的な効果、まかり間違えば幻想

  • 最近行ったTDDの講演や寄稿について - t-wada の日記(旧)

    こんにちは、だんだんブログ勘を取り戻していきたい和田です。このエントリは TDD Advent Calendar 2013 の 11 日目のエントリです。このエントリでは、最近行ったテスト駆動開発関連の講演や寄稿に関して、この機会にまとめておきたいと思います。 DevLOVE 現場甲子園 まず 11/9 にDevLOVE現場甲子園2013にて「テストを書く文化を育てる戦略と戦術」というタイトルで短い講演をさせて頂きました。DevLOVE 甲子園は楽天第2タワー大広間の四隅で最大四つの講演が同時に行われるという意欲的なイベントで、話す方も気合い(と声量)が必要な場でした。 この講演では、開発者が自動テストを書く文化が無かった組織に自動テストの文化を育てる際の姿勢、心がけについて短い時間でまとめました。そのときの講演資料がこちらです(ライセンスは CC BY です)。 テストを書く文化を育てる

    最近行ったTDDの講演や寄稿について - t-wada の日記(旧)
  • Steve Freeman氏とのペアプロ雑感 #tddbc

    README.md Steve Freeman氏とのペアプロ雑感 http://tddbc.doorkeeper.jp TDD Boot Camp 2013-07 -- TDDBC で、偶然にもロンドンから来日していたSteve Freeman氏を招くことができた。ちなみに当に偶然の来日で、その日の夕方にご家族と隅田川の花火を見る予定だったらしい。貴重な時間である。 20分ほど講演していただき、さらに参加者と一緒にペアプロ課題に挑戦してもらった。しかもペアプロでっていう貴重な体験をさせてもらったので、そのことについてまとめたい。 Steve Freeman氏は書籍 "Growing Object-Oriented Software, Guided by Tests" (邦訳「実戦テスト駆動開発」)の共著者の一人で、Javaのモックフレームワーク "JMock"の開発者の一人。当然、自動販

    Steve Freeman氏とのペアプロ雑感 #tddbc
  • 「ソフトウェアテスト勉強会〜テストコードのテストケースを考えてみよう!〜」に行ってきた - marsのメモ

    http://tohoku-dev.jp/modules/news/article.php?storyid=221 (※図はイメージです) 先週のTDDBCで [twitter:@nemorine] が [twitter:@t_wada] に「TDDは不安をテストする?不安だなんて不確かなものは信じられない」ってゆってたので、どんな事するのか楽しみだったので参加してきたよ。 今日の命は策士 [twitter:@i_takehiro] がTDDBCで仕掛けた課題1-3のテストケースの洗い出し。 課題1-3 閉区間が別の閉区間と等しいか (equals) 判定しよう 閉区間が別の閉区間と接続しているか (isConnectedTo) 判定しよう で、そのテストケースとして以下の8つを導き出せれば正解なのだけれど、あたしを含め参加者の多くは7つしかケースを導出できなかった(みんな8番目のケース

    「ソフトウェアテスト勉強会〜テストコードのテストケースを考えてみよう!〜」に行ってきた - marsのメモ
  • TDDの自殺 #kyon_mmAdvent - うさぎ組

    はじめに 僕は熱心にTDDを勧めているエンジニアです。 ですが、この2年でTDDが銀の弾丸ではないことも気付き始めました。 その気づきの一つがこのTDDの自殺です。 先にFacebookで投稿したところ、評価をもらえたので投稿します。 「読み手を選ぶエントリーです、(`・ω・´)キリッ」 これを読んで「kyon_mmも落ちたものだ」と思ってもらっても構いませんし、「迷惑な話だ」ということであれば僕に猛抗議をしてもかまいません。 TDDとはなにか TDDは開発者を支援するフレームワークと定義します。 TDDは「開発者の意図を確認すること」「開発者が心地よいコードを書き始める事」を支援するフレームワークです。 TDDの基礎 TDDを支えるものとして次の要素があります。 客観的で頻繁にも実施できる検査群、確認し易い検査結果群、RED,GREEN,REFACTORのライフサイクル。 これらによって

    TDDの自殺 #kyon_mmAdvent - うさぎ組
    kamatama_41
    kamatama_41 2013/01/17
    自分の中で明確にTDDを消化した状態で行わないと、こんな感じになってしまいそう。
  • PHPer が「JUnit実践入門」を読んだ

    「JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)」を献して頂いたので読んでみました。 普段は PHPUnit でテストを書いているので、その家とも言える JUnitは興味津津でした。 実は、今でこそ PHP 三昧の日々ですが、数年前(JDK1.3 とか 1.4 の時代ですが)は Java で開発していたこともあったので、いまどきの Java、JUnit がどうなっているか知りたくもあり、興味深く読み進めることができました。 読んでみて感じた点を挙げてみます。 1. 圧倒的なボリューム まず目次をざっと見た時に感じたのがカバーしている範囲の広さです。正直よく一冊に収まってるなあと:D JUnit の解説からはじまり、JUnit を使ったテストの書き方、ソフトウェアテスト・テスト技法、ユニットテストのパターン、そして JUnit のより

    kamatama_41
    kamatama_41 2012/11/20
    Javaテストクラスタの私は買っておかなければ。
  • privateメソッドのテストについて

    瀬良 @shela_ @irof publicからprivateを含めて検証するのと、private単体だけで検証するのであれば、先にprivate単体で検証しておいた方が安心感があると思う 2012-08-25 16:38:24

    privateメソッドのテストについて
    kamatama_41
    kamatama_41 2012/08/25
    僕もテストしたいくらいのprivateは別クラスにして公開しろよ派かなぁ。
  • こんなプログラマはアジャイル出来ますって言ったらアカンやろ - メソッド屋のブログ

    最近、とある機会があって、いろんなアジャイルが出来るといってくるベンダーさんとあう機会があるけど、正直「おい!どの口がアジャイル出来るって言ってるねん!」って思う事がむっちゃくちゃ多い。 今は確かにアジャイル開発ブームで、世間では引き合いも多いらしい。いろんなベンダーの営業さんが、「うちもアジャイルできます」って言って営業してはるけど、マジでちゃんと自社でできるか調査してから営業してほしい。私はアジャイルを10年以上やってるけど、元々は「この方法やったら、お客さんにホンマにええアプリを届けれるんちゃうか?」と思ったところから来ている。 それが、今やもしゃくしもアジャイル出来ますとか言って、ろくにアジャイルも出来へんのに売りつけて、結局効果がでなくて、「やっぱアジャイルなんかアカンやん」ってなるのがむっちゃくちゃ嫌なのだ。 これって数十年昔のオブジェクト指向ブームと一緒やん。当時のオブジェ

    こんなプログラマはアジャイル出来ますって言ったらアカンやろ - メソッド屋のブログ
    kamatama_41
    kamatama_41 2012/08/11
    アジャイル(まだ)出来ませんっ!
  • テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!

    ここ数日 ruby をやってるんですけど、ruby といえばテストらしいので Test::Unit やら RSpec やらを調べてました。しかし僕はこれまでまともな TDD をやってこなかったので、先にテストとは何ぞや?TDD とは何ぞや?ってのを調べたりしていました。 この記事は、ずぶの TDD 素人がテストについて知り始めたまとめです。 1. きっかけは RSpec のドキュメント そもそも RSpec の↓紹介文の冒頭から意味不明に感じたんです。 FAQ:「RSpec って、要は Test::Unit でやっていることを別の書き方にしただけでは?」 この FAQ への短い答えはイエスです。 『スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)』 Rubyist Magazine えっ... じゃあ要らんやろソレ。いちいち手作業でチェック

    テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!
  • エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type

    エンジニアtypeは、各種エンジニアをはじめ「創る人たち」のキャリア形成に役立つ情報を発信する『@type』のコンテンツです。

    エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type
  • 「レガシーコード改善ガイド」を読みました

    以前から読もうと思っていましたがようやくレガシーコード改善ガイド (Object Oriented SELECTION)を読みました。読み始めて最初のうち、これは久しぶりに名著の予感と思いましたが、後半は自分の趣味と合わない部分が多々あったので、平均的には普通に良書という感想です。 ある意味、書は奇書です。テストコードを書くためにコードの改悪も辞さない、という態度を貫きます。改悪は著者もわかっていて、次のように冒頭で断っています。 この仕事は外科手術のようなものです。切開し、内臓をかき分けていく間、美的判断は保留にしなければなりません。 小説には奇書と呼ばれる作品群があったりします(そして一部の熱狂的支持者がいます)。技術書で奇書と呼べるようなはあまりお目にかかりません。著者の技術レベルが低くて、内容がとんでもな意味での奇書は存在しますが、技術力のある著者があえて定石を外しまくる書の