タグ

TDDに関するigrepのブックマーク (24)

  • 関数型言語Elmでテスト駆動開発 - Qiita

    Elm アドベントカレンダーの8日目です。 関数型言語Elmでテスト駆動開発シリーズのまとめです。 インデックス 1~4章 ドルの定義, timesの定義まで 5~7章 フランの定義まで 8~11章 Money, 通貨, ファクトリメソッドの定義まで 12~13章 reduceの定義まで 14章 レートを考慮したreduceの定義まで 15~16章 MoneyからExpressionに抽象度を引き上げ、様々なテストの追加まで まとめと反省 今回のシリーズを書ききって改めて、テスト駆動開発の素晴らしい書籍だと確信しています。多くの人に向けてJavaで書かれていますが、関数型言語で書かれているテスト駆動の書籍が出版されても良いとも思っています。しっかりした題材があるお陰で当初の予想以上にElmの勉強ができましたし、テスト駆動開発の手法の勉強にもなりました。反省としましては、自分の能力が低かった

    関数型言語Elmでテスト駆動開発 - Qiita
    igrep
    igrep 2017/12/09
  • 書籍「テスト駆動開発」をRustで書く #1 (chapter1...3) - Qiita

    はじめに これはRustその2 Advent Calendar 2017の9日目の記事です。 @hgsgtkです。 著書「テスト駆動開発」をrustで書いていきます。 「テスト駆動開発」は、Kent Beck著、和田 卓人さん翻訳の書籍です。この著書では、第1章から第17章にかけて、「多国通貨」というテーマでテスト駆動開発のプロセスを写経しながら体感することができる構成になっています。 著作はJavaで進められていますが、今回はそれをrustで進めていきます。 最終的に目指すコードは以下のテストが通るコードです。 通貨の異なる2つの金額を足し、通貨間の為替レートに基づいて換算された金額を得る。 金額(通貨単位あたりの額)に数値(通貨単位数)を掛け、金額を得る 目次 概要 第1章 仮実装 第2章 明白な実装 第3章 三角測量 最後に 概要 ページでは、第1章から第4章までを進めていきます。

    書籍「テスト駆動開発」をRustで書く #1 (chapter1...3) - Qiita
    igrep
    igrep 2017/12/05
  • TDD+モブプログラミングでワイワイする会 (2017/11/12 13:00〜)

    タイムテーブル 13:00 - 13:30 開場&インストラクション&チーム分け 13:30 - 16:30 ゆるゆるとモブプログラミング 16:30 - 17:00 ふりかえり モブプログラミングは、複数名で1台のコンピュータを使い、寄ってたかって1つのお題に挑戦するプラクティスです。 類するものは過去にもありましたが、モブプログラミングをきっかけにチームづくりや組織のあり方に言及している取り組みとして、Woody ZuillとChris LucianよるHunter Industries社の例(2012〜)が注目されています。 参考動画: A day of Mob Programming - YouTube A day of Mob Programming 2016 - YouTube 参加対象者 TDDに興味がある人 モブプログラミングに興味のある人 中止となったCoderetrea

    TDD+モブプログラミングでワイワイする会 (2017/11/12 13:00〜)
    igrep
    igrep 2017/11/02
    都合悪い日だけど面白そうだ
  • TddAntiPatterns - TDD のアンチパターン

    TddAntiPatterns - TDD のアンチパターン 目次 この文書について TDD のアンチパターン TDD アンチパターン・カタログ 嘘つき。 (The Liar) セットアップ過多 (Excessive Setup) 巨人 (The Giant) モック酔い (The Mockery) 検査官 (The Inspector) 太っ腹な残り物 (Generous Leftovers) 地元の英雄 (Local Hero) 小姑 (The Nitpicker) 秘密のキャッチ (The Secret Catcher) ペテン師 (The Dodger) 大声 (The Loudmouth) はらぺこキャッチ (The Greedy Catcher) 序列屋 (The Sequencer) 隠れ依存 (Hidden Dependency) 点呼 (The Enumerator)

  • これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE

    和田卓人さんによるテスト駆動開発問題解説の寄稿です! バグのないよいコードを書くには、よいテスト設計が重要です。今回は現在時刻に関する問題と、その問題で提出された実際の解答コードを紹介しながら、どのようにテスト設計し開発していくのかを解説していきます。 ゲスト解答による解答コードも公開中! by CodeIQ運営事務局 はじめに こんにちは、和田(@t_wada)です。今日は先日出題させていただいたTDDに関する問題の総評を行いつつ、テスト容易性設計について考えてみたいと思います。 問題文 私が出した問題は、以下のようなものでした。 問1. 下記の仕様をテスティングフレームワークを使ってテストコードを書きながら実装してください。 【仕様1】 「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能を作成したい。 (タイムゾーンはAsia/Tokyoとする) 朝(05:00:00以上

    これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE
    igrep
    igrep 2015/01/19
    ずっと前から思ってるんだけどこれってなんで何だろ。“一般的なテスティングフレームワークではアサーション失敗時に例外が発生し、そのテストメソッドの実行を打ち切ります。”
  • 社内テストファースト勉強会

    社内で行ったテストファースト勉強会の資料です http://sue445.hatenablog.com/entry/2015/01/15/223006

    社内テストファースト勉強会
    igrep
    igrep 2015/01/15
    うむ。
  • Haskellでデザインレシピ - あどけない話

    お茶の水女子大学 理学部 情報科学科 准教授 浅井健一さんインタビューを読んで、思い出しだので書いておきます。 デザインレシピを使ったプログラミングを実践するなら Haskell が最適です。以下に簡単な例を示します。 目的 作成するプログラムが何をするのかを考える。何を受け取り何を返すのかを特定し、それをもとにプログラムのヘッダを作成する。 例として、数字の文字列を取り整数を返す関数 stringToInt を考えましょう。まず、関数の型注釈を書いて、体を undefined にしておきます。 module Foo where -- | Converting 'String' to 'Int. stringToInt :: String -> Int stringToInt = undefined コンパイルが通ることを確認しましょう。 例 プログラムの動きをより明確かつ具体的にするた

    Haskellでデザインレシピ - あどけない話
    igrep
    igrep 2014/01/03
    要するにTDDじゃないすか!
  • 第17回 QuickCheckでデータ駆動型テストを行う

    テストには常にある種の不安が残ります。このテストは果たしてすべての場合に妥当だと言えるのか? 何か見落としてはいないか? その見落としは致命的なものではないか? Haskellの静的な型検査をすり抜けてくるバグに対処するには,実際にプログラムを動作させ,HUnitなどで動的なテストを行います。では,動的なテストをすり抜けるバグにはどう対処すればいいでしょうか? 一番単純な対策は,テスト項目数を増やすことです。たいていの場合,テスト項目は「その型の取りうる値を想像し,その例に対してきちんと動作するかどうかを確かめる」という形で記述します。単純に考えるなら,テスト項目が増えれば増えるほどテストの正確さは増していくはずです。 しかし,個々の値に対してテストを記述していくのは手間のかかる作業です。テストを行うべき値の集合に対してテストを行うツールが欲しくなりますね。それが「データ駆動型のテスト・ツ

    第17回 QuickCheckでデータ駆動型テストを行う
    igrep
    igrep 2013/10/19
    "関数自体もTestableクラスのインスタンスであるため、関数を返す関数もTestableクラスのインスタンスであるという再帰的な定義になっています。"
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist

    Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)
    igrep
    igrep 2013/05/31
    あとでじっくり読む。
  • Amazon.co.jp: マインドマップから始めるソフトウェアテスト: 池田暁, 鈴木三紀夫: 本

    Amazon.co.jp: マインドマップから始めるソフトウェアテスト: 池田暁, 鈴木三紀夫: 本
    igrep
    igrep 2013/03/10
    #nagoyatesting で聞きました。
  • Better Specs. Testing Guidelines for Developers.

    What is Better Specs Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration. Better Specs came to life at Lelylan (open source IoT cloud platform) and checking out its test suite may be of inspiration. Better Specs focus on Rails testing, but our goal is to create testing guidelines covering mos

    igrep
    igrep 2013/02/16
    一部頷けないところもあるので気が向いたら議論もおってみるか。
  • Route 477

    GitHubindexHello source: index.md View on github | Report issue Generated by middleman 3.1.6. Powered by Ruby 2.2.2.

  • TDDの自殺 #kyon_mmAdvent - うさぎ組

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

    TDDの自殺 #kyon_mmAdvent - うさぎ組
    igrep
    igrep 2013/01/16
    やべぇ眠くて分からない。後で読み直そう。
  • Introduction to QuickCheck2 - HaskellWiki

    A quick introduction to QuickCheck2, and testing Haskell code. -- I've written a function that looks similar to this one getList = find 5 where find 0 = return [] find n = do ch <- getChar if ch `elem` ['a'..'e'] then do tl <- find (n-1) return (ch : tl) else find n -- I want to test this function, without hitting the filesystem. In C++ I -- would use a istringstream. I couldn't find a function th

  • GitHub - thoughtbot/factory_bot: A library for setting up Ruby objects as test data.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - thoughtbot/factory_bot: A library for setting up Ruby objects as test data.
  • RSpec の入門とその一歩先へ - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま

    igrep
    igrep 2012/12/02
    "本実装でもテストが通らなかったときに、なぜテストが通らないのか本実装を長い時間デバッグした結果、テストコードが間違っていたのでは目も当てられません。"
  • 発展途上猿人 : 第2回 ひとりハッカソン成果発表

    2012年12月02日16:29 カテゴリひとりハッカソン 第2回 ひとりハッカソン成果発表 結構遅くなってしまいましたが第2回ひとりハッカソンの成果発表を行います。 今回行ったこと TasksControllerの各アクションに対してGETリクエストが成功するか確認するテストを追加。(POSTは未確認) TasksControllerのテストとして、タスクのリストと、タスクを追加するフォームが表示されるか確認。 TasksControllerのaddアクションに、「新しいタスクの状態は「まだやっていない」ということにする」というビジネスロジックが混ざっていることに気づき、Taskモデルを単体テストできないことに気づいたのでTaskクラスのaddメソッドのテストを作り、実装も書いた。 「タスクの名前は空文字列ではいけない」というバリデーションとそのテストを追加 タスクをフォームから追加する

    igrep
    igrep 2012/12/02
    一応昨日書いたのを載せておきます。。。
  • JUnitの知識を棚卸し #JJUG - 日々常々

    Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけなので普通に使ってる方には不要な内容かと思います。私の今持ってる知識を書き殴ってみた感じになりましたが、微妙な理解と残念な文章力の相乗効果でグダグダになってます。お察しください。 内容は Assertion->カスタムAssertion、Matcher->カスタムMatcher、Rule->カスタムRule です。 Assertion JUnitは assert があってこそです。まず org.junit.Assert にある馴染み深い assert を並べてみます。 assertEquals

    JUnitの知識を棚卸し #JJUG - 日々常々
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    igrep
    igrep 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 えっ... じゃあ要らんやろソレ。いちいち手作業でチェック

    テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!
    igrep
    igrep 2012/03/07
    "テストは 設計を実装に落とす作業のパートナーなんですね。" 僕もよく理解できてない。。。