タグ

TDDに関するatsushifxのブックマーク (58)

  • GitHub - stackframe-projects/pgmock: In-memory Postgres for unit/E2E tests

    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 - stackframe-projects/pgmock: In-memory Postgres for unit/E2E tests
    atsushifx
    atsushifx 2024/04/08
    ユニットテスト用のPostgresモック
  • https://twitter.com/nagise/status/1766285230032425072

  • 【翻訳】テスト駆動開発の定義 - t-wadaのブログ

    このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正

    【翻訳】テスト駆動開発の定義 - t-wadaのブログ
    atsushifx
    atsushifx 2024/03/09
    テストリストではプロダクトのすべてを決める必要がありそうで実践は難しい。ToDoとDoing、Not Doingリストでフィードバックループが必須な気がする
  • テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう

    **テスト駆動開発(TDD)で基礎を身につけましょう。**GoはTDDを学習するのに適した言語です。なぜなら、学習するのが簡単な言語であり、テストが組み込まれているからです。

    テスト駆動開発でGO言語を学びましょう | テスト駆動開発でGO言語を学びましょう
  • プロパティベーステストをやってみよう - Qiita

    こんにちは。NTTテクノクロスの際田です。普段は社内の開発プロセス効率化、テスト自動化周りの支援に携わっています。 最近、ラムダノート株式会社の『実践プロパティベーステスト -PropErとErlang/Elixirではじめよう-』というを読んで、プロパティベーステストという手法を知りました。 せっかく読んだしやってみよう、と思ったのですが、このの例はErlang/Elixirという通好み(?)な言語なので、お仕事でも使えそうな言語でできないかと考えました。調べたところ、fast-checkというJavaScript/TypeScriptのライブラリがあるようなので、こちらを使ってプロパティベーステストをやってみたいと思います。 プロパティベーステストとは プロパティベーステストとは、自動テストの手法の一つで、「システムのあるべき挙動を満たす条件」をプロパティと呼び、その条件を満たすで

    プロパティベーステストをやってみよう - Qiita
    atsushifx
    atsushifx 2023/12/16
    プロパティベーステスト(入力値をランダムに生成して実行するテスト)のJavaScriptによる実践例
  • LaravelでHTTPテストを実装しました - WHITEPLUS TechBlog

    はじめに こんにちは、ホワイトプラスのコアシステム開発Gのエンジニアのyamauchiです。 今回、新たにHTTPテストを実装したため、実装時に発覚した問題とその解決法を共有したいと思います。 HTTPテストとは HTTPテストとは、擬似的なHTTPリクエストを生成し対象のエンドポイントに投げ、返却されたレスポンスが期待したものかチェックするテストです。 背景 現在、コアシスが担当しているシステムでは、手動でテストを行う余地が残されており、リファクタリングを積極的に進める現状では、安全性や効率性をより高めたいという背景がありました。 そのためリグレッションテストの自動化を進め、手動で確認する割合を減らしたいと考えています。 ただし、無闇にテストの数を増やすのではなく、テストピラミッドのルールに従って効率的かつ効果的なテストを作成していく方針です。 実装方法 弊社のシステムではPHPのフレー

    LaravelでHTTPテストを実装しました - WHITEPLUS TechBlog
  • アジャイルは”再び"死んだ

    Mathew (Ford) Kern氏とMilko氏は先日,どちらも“アジャイルは死んだ(Agile is Dead)”と題した記事を書いた。この話題を,Kern氏は,アジャイルコンサルティングの飽和とハイプサイクルの速さに関連するものとし,Miko氏は,アジャイル活動の具現化したアプローチの速さを越えるために,アジャイルからDevOpsへと進化する必要性を説いている。 Kern氏の最初の記事のタイトルは,“Agile is Dead”そのものだ。意識的に物議を醸すような(そして皮肉な)スタンスを選んだ氏は,次のように言う。 アジャイルソフトウェア開発は死にました。実践している人はドアストップです。管理手法として用いている人はボートの錨です。波は過ぎ去りました,もう終わりです。騙されて資格を取った人は,残念ですがお金の無駄でした。 氏はさらに,マーケティングとマネジメントに関する流行とセン

    アジャイルは”再び"死んだ
    atsushifx
    atsushifx 2016/06/17
    アジャイルがはじまってほぼ20年。現状のDockerやChef、Jenkinsなどの回はツールの充実を考えると、インフラレベルでコードを使ってバージョン管理、テストができるのは十分な成果だろう
  • テスト(コード)レビューの方針 書きなぐり版 - うさぎ組

    牛尾さんのブログをはてブったら、「じゃぁ、その手を見せろやゴルァ」と言われたので書きました。雑です。すみません。 元記事 「自動化対象のユニットテスト(単体テスト)の仕様書を書くことは完全なる無駄である」 Blogs - Live DevOps in Japan! - Site Home - TechNet Blogs 僕のコメント 「だいたい同じ意見だけど、これで単体テスト仕様書がいらない理由にはならないかなぁと思った。テストレビューの成長方法について書かれていないしなぁ。出来る人いない現場は諦めろってことかな?」 はてなブックマーク - kyon_mm のブックマーク - 2016年1月25日 牛尾さんのコメント「どっかに書いてありますか?もしあったら記事にはります。」 僕のコメント「書いていません!」 僕のコメント「書きました!」 僕の主張 記事は僕の実験結果(経過報告)であり、

    テスト(コード)レビューの方針 書きなぐり版 - うさぎ組
    atsushifx
    atsushifx 2016/01/25
    テストの捨て方か。以外と考えたことなかったし重要な視点かも。少なくとも2.の「テストを評価できる」技術力のありなしはめいっぱい同意する
  • テスト駆動開発(TDD)はもう終わっているのか? Part 2 | POSTD

    前編はこちらです 4:テストに伴うコスト 2014年5月27日 audio 今回のテーマは、テストとTDDのマイナス面です。 テストをやりすぎることがあるか、そして機能的なコードよりテストを重視するチームには問題があるかという点について議論しました。 議事録 Davidが会話の口火を切りました。 「トレードオフについて話すなら、当然そのマイナス面について理解しなければならない。なぜなら、欠点のないトレードオフは存在しないからだ」 このあと彼は続けて、TDDは開発者に何かを強制するわけではないが、ある一定の方向に導くことは確かだと言いました。 それから、最初の問題点として、テストの過剰な実施を取り上げました。 TDDでよく言われるのは、テストに失敗せずして1行のコードも書くべきでないということです。 Davidも当初はこの考え方を合理的だと思っていましたが、そのうち、テストをやり過ぎる傾向が

    テスト駆動開発(TDD)はもう終わっているのか? Part 2 | POSTD
    atsushifx
    atsushifx 2014/10/08
    プロジェクトや言語、フレームワークによって代わるので場合によるというKent Beckの言葉は正しい。問題はリファクタリングが普及していないことだろう
  • テスト駆動開発(TDD)はもう終わっているのか? Part 1 | POSTD

    後編を公開しました(2014/10/8) これは、テスト駆動開発(TDD)とTDDがソフトウェア設計に与える影響についてKent Beck、David Heinemeier Hansson、および著者の3人で行った一連のディスカッションの議事録です。 ディスカッションに至った経緯 あるセンセーショナルな発言とブログ記事が発端となり、お互いの見解と経験について理解を深める目的で、話し合いが持たれました。 この会話のきっかけとなったのは、 DavidがRailsConfで行った基調演説です。 彼はRailsコミュニティでTDDおよびユニットテストへの不満を表明しました。 程なくして、彼はいくつかのブログ記事を公開しましたが、そのうちの最初の記事で “TDDは終わった” と宣言したのです。 それから2~3日後、Davidのその後の記事について私がタイプミスの修正を送ったところ、 Davidは彼の

    テスト駆動開発(TDD)はもう終わっているのか? Part 1 | POSTD
  • Rails でテストをどう書くべきか備忘録

    今朝聞いた今週の rebuild.fm のポッドキャストで、テストに関する話題がとても面白く勉強になりましたので備忘録メモ。全部テスト書いてたら時間が足りないし、個人的にはどの部分を重点的にテストすべきか、削っても良いのはどこかに注目して聞きました。 Rebuild: 43: Kent is More Professional (Kenn Ejima) 以下 rebuild.fm 話題から参考にしたいメモ ・テスト書くのは良いが、テスト原理主義、100%カバー、全部テストファーストにこだわるのは疑問。 ・内部構造、実装に対するテストは書かない。 ・モックは一番外側のAPI、インターフェースに対してだけ使う。(※) ・モックのためのモックとかは避ける。 ・リファクタリングのためにテストを書き換えなきゃいけないようなテストは駄目。 ・テストとコードを同時に変更すると、トラブルに気付きにくくなる

    Rails でテストをどう書くべきか備忘録
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 心理的安全性ガイドライン(あるいは権威勾配に関する一

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
    atsushifx
    atsushifx 2014/05/25
    それこそTDDを叩き込むべき話。小さくして頻繁に確認することがBugを減らす一番の近道だし、それをうながすためのユニットテストなのに。ただソフトウェア工学をきちんと勉強していないとわかりにくいのかもしれな
  • TDDという名の幻想... - Qiita

    TDDは死んだ。テスティングよ栄えよ。 by DHH http://d.hatena.ne.jp/yach/20140424#p1 【翻訳】TDD is Fun http://diskogs.hatenablog.com/entry/2014/04/25/085112 を読んで思ったことをつらつらと書いてみます。 TDDはできれば、やったほうが良いのは確か?です。 しかし、実際の開発現場で全面的に採用するのは ミドルウェア等の画面の存在しないソフトの開発以外では ほとんどの場合、無益です。 なぜなら、TDDを採用すると開発時間が膨らむ、すなわち、開発コストが 膨らむからです。そして、ソフト開発では細かな仕様は変化していきます、 するとTDDではそれに合わせ、テストを修正していかなくてはなりません。 また、TDDで書かれたテストが全てのケースを抜けなく網羅できていること は稀です、抜けは必ず

    TDDという名の幻想... - Qiita
    atsushifx
    atsushifx 2014/05/05
    生半可な知識で葉記事を書くと火傷をする好例。DHHもテスティングを否定はしてない。いわゆるウォーターフォールでもテスト工程はあるし、コスト削減でテストを省くとどうなるかはみずほ銀行などいくらでも例がある
  • 【翻訳】TDD is Fun - diskogs's diary

    @solnicが、DHHの例の記事へのカウンター的な記事をポストしてまして、自分のために読んでみたらよい内容だと思ったので、翻訳してみました。翻訳ミスとかあると思いますが、、、すみませんです。。。 TDD is Fun Posted by solnic on Apr 23 2014 著 solnic 2014年4月23日 Today DHH published a blog post about TDD being dead (to him at least). It’s really not that surprising since from what I know (please correct me if I’m wrong) David’s experience is mostly based on building web apps with Rails. I get that

    【翻訳】TDD is Fun - diskogs's diary
    atsushifx
    atsushifx 2014/04/25
    こっちのほうがしっくりくる。大事なのはテストがあることの安心感やリファクタリングであって、テストのメンテナンスではない。
  • 「実装をテストする」とは? - bluebird

    TDD界隈の議論で、「仕様のテスト」「実装のテスト」という話を聞くことがあります。 TDDのよくわからない言葉をどうやって説明するか悩んでいるという話 #SWTestAdvent — うさぎ組 明日からTDDをやってみよう! - 部屋とアジャイルと私(仮称) 今日のTDD界隈で「仕様のテスト」「実装のテスト」という言い回しを一番よくしているのは私だと思うのですが、勉強会の場などでは話をすることはあるものの、こういう形で残してこなかったので、自分の考えをまとめたいと思います。 公開されているインターフェースの仕様を満たせるなら、API(「リファクタリング」で言う「公布済みインターフェース」)のエントリポイントの内側のクラス設計をどのように組み立てるかは、実装者の裁量に任されているはずです。 品質保証の観点からは、APIの仕様を満たせるテストケースを記述すれば、ソースコードに対してのある程度の

    「実装をテストする」とは? - bluebird
    atsushifx
    atsushifx 2014/03/01
    いい記事。実装のテストはプログラミングをするときに使って書き捨てるもの。
  • プレビュー至上主義 - cmu12

    「プレビュー至上主義」 プログラマが「テストファースト」を唱えるなら、デザイナが主張すべきは何? それが「プレビュー至上主義」。書くより先に見る、書きながら見る、しかもほぼ最終成果物に近い形で。 河村 奨 (かわむらつとむ) これはCreators MeetUpで話したスライドです。ライブプレビューしながら、jade + Gruntで作っています。興味あるかたはこちらのGitHubも合わせてどうぞ。 iPhoneや大きめの画面でも見られるよう調整しました。(2014/1/19) 好きなことはなしていいらしい。なにはなそう? レスポンシブ、インブラウザデザイン、脱Photoshopの波など、ここ数年、色々ありました。それをふまえて... ライブプレビュー 少なくとも、ライブリロード ロジックレステンプレート (たぶん時間ないので、よかったら後で〜) GUIツール不在のWEBデザイン業界 今年

    プレビュー至上主義 - cmu12
    atsushifx
    atsushifx 2014/01/18
    考え方としてはペーパー・プロトタイピングみたいな感じ。頭で考えるより手を動かしてアウトプットからのフィードバックを重視するということ
  • Bitbucket | Git solution for teams using Jira

    With best-in-class Jira integration, and built-in CI/CD, Bitbucket Cloud is the native Git tool in Atlassian’s Open DevOps solution. Join millions of developers who choose to build on Bitbucket.

    Bitbucket | Git solution for teams using Jira
    atsushifx
    atsushifx 2013/12/09
    受け入れテストを前提とした開発プロセス
  • これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE

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

    これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE
    atsushifx
    atsushifx 2013/11/26
    TDDの実践的な解説。この記事を何回も読んで実際にコードをかくと、確実にプログラミング力が上がる。
  • パラメータの正当性検査とユニットテストのカバレッジ | DevelopersIO

    渡辺です。 最近はユニットテストの導入方法などに関するエントリーが多かったので、今回は実用的な小ネタとして、メソッドにおけるパラメータの正当性検査とユニットテストについて紹介したいと思います。 パラメータの正当性検査 はじめにパラメータの正当性検査について復習しましょう。Javaプログラマであれば読んでないことが許されないEffective Java(第2版P.175、ただし絶版)には次のように記述されています。 ほとんどのメソッドとコンストラクタは、パラメータとして渡される値に関して何らかの制約を持っています。たとえば、インデックス値が負であってはいけないとか、オブジェクト参照がnullであってはいけないというのが普通です。このような制約は明確に文書化すべきであり、メソッド体の初めに検査することで制約を強制すべきです。これは、エラーが発生したらできるだけ速やかにエラーを検出するようにす

    パラメータの正当性検査とユニットテストのカバレッジ | DevelopersIO
    atsushifx
    atsushifx 2013/11/15
    ここらへんはテスティングの基本なので教科書を読むべし。とはいえテスト項目が多くなってチェックしきれなく原因なのでうまく減らしたい。言語レベルでDbCができると楽だろうとは思う
  • ユニットテスト改善ガイド | DevelopersIO

    先日、日Javaユーザグループ(JJUG)主催のJJUG CCC 2013 Fallで、「ユニットテスト改善ガイド」というタイトルで登壇してきました。自分の経験を元に、ユニットテストをチームや組織へ導入する時に起こりえる問題とその解決のヒントに関するセッションです。エントリーではそのセッションの内容を再構成して公開します。 はじめに 近年のシステム開発では、ユニットテストや継続的インテグレーション(以下、CI)の導入は必要不可欠と考えられています。とはいえ、どんな組織(チーム)でも簡単に導入できているわけではありません。特に、大きな組織や古くからの慣習を残している組織では導入したくとも中々進まないと感じているところが多いのではないでしょうか?。 私は、これまでに多くの開発現場でユニットテストやCIの導入について推進してきました。成功したケースもあれば失敗したケースもあります。そして、失

    ユニットテスト改善ガイド | DevelopersIO
    atsushifx
    atsushifx 2013/11/13
    ユニットテストを効果的に書くためのHowTo。リファクタリングが中古しかないのが悔やまれる。http://www.amazon.co.jp/dp/4048678841 ならまだ安く買える